mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 14:15:42 -04:00
Merge remote-tracking branch 'origin/develop' into xml
This commit is contained in:
commit
a334a0d685
11 changed files with 65 additions and 47 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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, &
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
k-combined:
|
||||
0.30487324 0.00983400
|
||||
0.96880768 0.06981246
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue