Merge remote-tracking branch 'origin/develop' into xml

This commit is contained in:
Bryan Herman 2013-08-23 12:06:44 -04:00
commit a334a0d685
11 changed files with 65 additions and 47 deletions

View file

@ -43,6 +43,7 @@ following commands in a terminal:
git clone git://github.com/mit-crpg/openmc.git
cd openmc/src
git checkout master
make
sudo make install

View file

@ -102,6 +102,12 @@ repository::
git clone git://github.com/mit-crpg/openmc.git
By default, the cloned repository will be set to the development branch. To
switch to the source of the latest stable release, run the following commands::
cd openmc/src
git checkout master
.. _GitHub: https://github.com/mit-crpg/openmc
.. _git: http://git-scm.com
.. _ssh: http://en.wikipedia.org/wiki/Secure_Shell

View file

@ -10,7 +10,7 @@ module ace
use material_header, only: Material
use output, only: write_message
use set_header, only: SetChar
use string, only: str_to_int, str_to_real, lower_case, to_str
use string, only: to_str
implicit none

View file

@ -1,6 +1,6 @@
module cmfd_slepc_solver
#ifdef PETSC
#ifdef SLEPC
use cmfd_loss_operator, only: loss_operator, init_M_operator, &
build_loss_matrix, destroy_M_operator
use cmfd_prod_operator, only: prod_operator, init_F_operator, &

View file

@ -98,6 +98,9 @@ contains
! END OF RUN WRAPUP
if (master) call header("SIMULATION FINISHED", level=1)
! Clear particle
call p % clear()
end subroutine run_eigenvalue

View file

@ -409,6 +409,19 @@ contains
if (allocated(xs_listings)) deallocate(xs_listings)
if (allocated(micro_xs)) deallocate(micro_xs)
! Deallocate external source
if (allocated(external_source % params_space)) &
deallocate(external_source % params_space)
if (allocated(external_source % params_angle)) &
deallocate(external_source % params_angle)
if (allocated(external_source % params_energy)) &
deallocate(external_source % params_energy)
! Deallocate k and entropy
if (allocated(k_generation)) deallocate(k_generation)
if (allocated(entropy)) deallocate(entropy)
if (allocated(entropy_p)) deallocate(entropy_p)
! Deallocate tally-related arrays
if (allocated(meshes)) deallocate(meshes)
if (allocated(tallies)) then
@ -450,6 +463,9 @@ contains
call nuclide_dict % clear()
call sab_dict % clear()
call xs_listing_dict % clear()
! Clear statepoint batch set
call statepoint_batch % clear()
end subroutine free_memory

View file

@ -417,6 +417,8 @@ contains
integer, allocatable :: index_cell_in_univ(:) ! the index in the univ%cells
! array for each universe
type(ElemKeyValueII), pointer :: pair_list => null()
type(ElemKeyValueII), pointer :: current => null()
type(ElemKeyValueII), pointer :: next => null()
type(Universe), pointer :: univ => null()
type(Cell), pointer :: c => null()
@ -428,11 +430,12 @@ contains
! cells_in_univ_dict, it's the id of the universe and the number of cells.
pair_list => universe_dict % keys()
do while (associated(pair_list))
current => pair_list
do while (associated(current))
! find index of universe in universes array
i_univ = pair_list % value
i_univ = current % value
univ => universes(i_univ)
univ % id = pair_list % key
univ % id = current % key
! check for lowest level universe
if (univ % id == 0) BASE_UNIVERSE = i_univ
@ -445,7 +448,9 @@ contains
univ % n_cells = n_cells_in_univ
! move to next universe
pair_list => pair_list % next
next => current % next
deallocate(current)
current => next
end do
! Also allocate a list for keeping track of where cells have been assigned

View file

@ -77,6 +77,7 @@ module particle_header
contains
procedure :: initialize => initialize_particle
procedure :: clear => clear_particle
end type Particle
contains
@ -110,6 +111,9 @@ contains
class(Particle) :: this
! Clear coordinate lists
call this % clear()
! Set particle to neutron that's alive
this % type = NEUTRON
this % alive = .true.
@ -126,9 +130,6 @@ contains
this % wgt_bank = ZERO
this % n_collision = 0
! remove any original coordinates
call deallocate_coord(this % coord0)
! Set up base level coordinates
allocate(this % coord0)
this % coord0 % universe = BASE_UNIVERSE
@ -136,4 +137,20 @@ contains
end subroutine initialize_particle
!===============================================================================
! CLEAR_PARTICLE
!===============================================================================
subroutine clear_particle(this)
class(Particle) :: this
! remove any coordinate levels
call deallocate_coord(this % coord0)
! Make sure coord pointer is nullified
nullify(this % coord)
end subroutine clear_particle
end module particle_header

View file

@ -322,49 +322,18 @@ contains
end function str_to_int
!===============================================================================
! STR_TO_REAL converts an arbitrary string to a real(8). Generally this function
! is intended for strings for which the exact format is not known. If the format
! of the number is known a priori, the appropriate format descriptor should be
! used in lieu of this routine because of the extra overhead.
!
! Arguments:
! string = character(*) containing number to convert
! STR_TO_REAL converts an arbitrary string to a real(8)
!===============================================================================
function str_to_real(string) result(num)
character(*), intent(in) :: string
real(8) :: num
real(8) :: num
integer :: index_decimal ! index of decimal point
integer :: index_exponent ! index of exponent character
integer :: w ! total field width
integer :: d ! number of digits to right of decimal point
integer :: ioError
character(8) :: fmt ! format for reading string
! Determine total field width
w = len_trim(string)
! Determine number of digits to right of decimal point
index_decimal = index(string, '.')
index_exponent = max(index(string, 'd'), index(string, 'D'), &
index(string, 'e'), index(string, 'E'))
if (index_decimal > 0) then
if (index_exponent > 0) then
d = index_exponent - index_decimal - 1
else
d = w - index_decimal
end if
else
d = 0
end if
! Create format specifier for reading string
write(fmt, '("(E",I2,".",I2,")")') w, d
integer :: ioError
! Read string
read(UNIT=string, FMT=fmt, IOSTAT=ioError) num
read(UNIT=string, FMT=*, IOSTAT=ioError) num
if (ioError > 0) num = ERROR_REAL
end function str_to_real

View file

@ -2,8 +2,9 @@
<materials>
<material id="1">
<density value="4.5" units="g/cc" />
<nuclide name="U-235" xs="70c" ao="1.0" />
<density value="19.5" units="g/cc" />
<nuclide name="U-235" xs="70c" ao="2.0" />
<nuclide name="U-238" xs="70c" ao="1.0" />
</material>
</materials>

View file

@ -1,2 +1,2 @@
k-combined:
0.30487324 0.00983400
0.96880768 0.06981246