mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 06:05:58 -04:00
Changed timing variables and removed references to 'cycles'.
This commit is contained in:
parent
47f044c71d
commit
67a64ed417
7 changed files with 54 additions and 54 deletions
|
|
@ -30,12 +30,12 @@ contains
|
|||
|
||||
!===============================================================================
|
||||
! RUN_CRITICALITY encompasses all the main logic where iterations are performed
|
||||
! over the cycles and histories.
|
||||
! over the batches, generations, and histories.
|
||||
!===============================================================================
|
||||
|
||||
subroutine run_criticality()
|
||||
|
||||
integer(8) :: i ! index over histories in single cycle
|
||||
integer(8) :: i ! index over individual particles
|
||||
|
||||
if (master) call header("CRITICALITY TRANSPORT SIMULATION", level=1)
|
||||
|
||||
|
|
@ -82,9 +82,9 @@ contains
|
|||
call timer_stop(time_transport)
|
||||
|
||||
! Distribute fission bank across processors evenly
|
||||
call timer_start(time_intercycle)
|
||||
call timer_start(time_bank)
|
||||
call synchronize_bank()
|
||||
call timer_stop(time_intercycle)
|
||||
call timer_stop(time_bank)
|
||||
|
||||
end do GENERATION_LOOP
|
||||
|
||||
|
|
@ -154,9 +154,9 @@ contains
|
|||
|
||||
! Collect tallies
|
||||
if (tallies_on) then
|
||||
call timer_start(time_ic_tallies)
|
||||
call timer_start(time_tallies)
|
||||
call synchronize_tallies()
|
||||
call timer_stop(time_ic_tallies)
|
||||
call timer_stop(time_tallies)
|
||||
end if
|
||||
|
||||
! Calculate shannon entropy
|
||||
|
|
@ -184,7 +184,7 @@ contains
|
|||
end if
|
||||
end do
|
||||
|
||||
! Turn tallies on once inactive cycles are complete
|
||||
! Turn tallies on once inactive batches are complete
|
||||
if (current_batch == n_inactive) then
|
||||
tallies_on = .true.
|
||||
active_batches = .true.
|
||||
|
|
@ -276,7 +276,7 @@ contains
|
|||
end if
|
||||
p_sample = real(sites_needed,8)/real(total,8)
|
||||
|
||||
call timer_start(time_ic_sample)
|
||||
call timer_start(time_bank_sample)
|
||||
|
||||
! ==========================================================================
|
||||
! SAMPLE N_PARTICLES FROM FISSION BANK AND PLACE IN TEMP_SITES
|
||||
|
|
@ -351,8 +351,8 @@ contains
|
|||
finish = bank_last
|
||||
end if
|
||||
|
||||
call timer_stop(time_ic_sample)
|
||||
call timer_start(time_ic_sendrecv)
|
||||
call timer_stop(time_bank_sample)
|
||||
call timer_start(time_bank_sendrecv)
|
||||
|
||||
#ifdef MPI
|
||||
! ==========================================================================
|
||||
|
|
@ -448,7 +448,7 @@ contains
|
|||
source_bank = temp_sites(1:n_particles)
|
||||
#endif
|
||||
|
||||
call timer_stop(time_ic_sendrecv)
|
||||
call timer_stop(time_bank_sendrecv)
|
||||
|
||||
! Deallocate space for the temporary source bank on the last generation
|
||||
if (current_batch == n_batches .and. current_gen == gen_per_batch) &
|
||||
|
|
@ -657,7 +657,7 @@ contains
|
|||
#endif
|
||||
|
||||
if (current_batch == 1 .and. current_gen == 1) then
|
||||
! On the first cycle, just assume that the source is already evenly
|
||||
! On the first generation, just assume that the source is already evenly
|
||||
! distributed so that effectively the production of fission sites is not
|
||||
! biased
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ contains
|
|||
end do
|
||||
write(ERROR_UNIT,*)
|
||||
|
||||
! Write information on current cycle and particle
|
||||
! Write information on current batch, generation, and particle
|
||||
if (current_batch > 0) then
|
||||
write(ERROR_UNIT,'(1X,A,I12) ') 'Batch: ', current_batch
|
||||
write(ERROR_UNIT,'(1X,A,I12) ') 'Generation:', current_gen
|
||||
|
|
|
|||
|
|
@ -112,9 +112,9 @@ contains
|
|||
integer :: i ! loop index for state point batches
|
||||
|
||||
! Collect and accumulate tallies
|
||||
call timer_start(time_ic_tallies)
|
||||
call timer_start(time_tallies)
|
||||
call synchronize_tallies()
|
||||
call timer_stop(time_ic_tallies)
|
||||
call timer_stop(time_tallies)
|
||||
|
||||
! Write out state point if it's been specified for this batch
|
||||
do i = 1, n_state_points
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ module global
|
|||
|
||||
! Temporary k-effective values
|
||||
real(8), allocatable :: k_batch(:) ! batch estimates of k
|
||||
real(8) :: keff = ONE ! average k over active cycles
|
||||
real(8) :: keff = ONE ! average k over active batches
|
||||
real(8) :: keff_std ! standard deviation of average k
|
||||
|
||||
! Shannon entropy
|
||||
|
|
@ -216,18 +216,18 @@ module global
|
|||
! ============================================================================
|
||||
! TIMING VARIABLES
|
||||
|
||||
type(Timer) :: time_total ! timer for total run
|
||||
type(Timer) :: time_initialize ! timer for initialization
|
||||
type(Timer) :: time_read_xs ! timer for reading cross sections
|
||||
type(Timer) :: time_unionize ! timer for unionizing energy grid
|
||||
type(Timer) :: time_intercycle ! timer for intercycle synchronization
|
||||
type(Timer) :: time_ic_tallies ! timer for intercycle accumulate tallies
|
||||
type(Timer) :: time_ic_sample ! timer for intercycle sampling
|
||||
type(Timer) :: time_ic_sendrecv ! timer for intercycle SEND/RECV
|
||||
type(Timer) :: time_inactive ! timer for inactive cycles
|
||||
type(Timer) :: time_active ! timer for active cycles
|
||||
type(Timer) :: time_transport ! timer for transport only
|
||||
type(Timer) :: time_finalize ! timer for finalization
|
||||
type(Timer) :: time_total ! timer for total run
|
||||
type(Timer) :: time_initialize ! timer for initialization
|
||||
type(Timer) :: time_read_xs ! timer for reading cross sections
|
||||
type(Timer) :: time_unionize ! timer for unionizing energy grid
|
||||
type(Timer) :: time_bank ! timer for fission bank synchronization
|
||||
type(Timer) :: time_bank_sample ! timer for fission bank sampling
|
||||
type(Timer) :: time_bank_sendrecv ! timer for fission bank SEND/RECV
|
||||
type(Timer) :: time_tallies ! timer for accumulate tallies
|
||||
type(Timer) :: time_inactive ! timer for inactive batches
|
||||
type(Timer) :: time_active ! timer for active batches
|
||||
type(Timer) :: time_transport ! timer for transport only
|
||||
type(Timer) :: time_finalize ! timer for finalization
|
||||
|
||||
! ===========================================================================
|
||||
! VARIANCE REDUCTION VARIABLES
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ contains
|
|||
! call for making a dataset of type long
|
||||
call hdf5_make_double(hdf5_output_file, "n_particles", real(n_particles,8))
|
||||
|
||||
! Use H5LT interface to write n_cycles, n_inactive, and n_active
|
||||
! Use H5LT interface to write n_batches, n_inactive, and n_active
|
||||
call hdf5_make_integer(hdf5_output_file, "n_batches", n_batches)
|
||||
call hdf5_make_integer(hdf5_output_file, "n_inactive", n_inactive)
|
||||
call hdf5_make_integer(hdf5_output_file, "n_active", n_active)
|
||||
|
|
@ -88,13 +88,13 @@ contains
|
|||
|
||||
! Add description of each variable
|
||||
call h5ltset_attribute_string_f(hdf5_output_file, "n_particles", &
|
||||
"description", "Number of particles per cycle", hdf5_err)
|
||||
"description", "Number of particles per generation", hdf5_err)
|
||||
call h5ltset_attribute_string_f(hdf5_output_file, "n_batches", &
|
||||
"description", "Total number of batches", hdf5_err)
|
||||
call h5ltset_attribute_string_f(hdf5_output_file, "n_inactive", &
|
||||
"description", "Number of inactive cycles", hdf5_err)
|
||||
"description", "Number of inactive batches", hdf5_err)
|
||||
call h5ltset_attribute_string_f(hdf5_output_file, "n_active", &
|
||||
"description", "Number of active cycles", hdf5_err)
|
||||
"description", "Number of active batches", hdf5_err)
|
||||
call h5ltset_attribute_string_f(hdf5_output_file, "gen_per_batch", &
|
||||
"description", "Number of generations per batch", hdf5_err)
|
||||
end if
|
||||
|
|
@ -743,10 +743,10 @@ contains
|
|||
call hdf5_make_double(timing_group, "time_read_xs", time_read_xs % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_unionize", time_unionize % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_transport", time_transport % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_intercycle", time_intercycle % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_tallies", time_ic_tallies % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_sample", time_ic_sample % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_sendrecv", time_ic_sendrecv % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_bank", time_bank % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_bank_sample", time_bank_sample % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_bank_sendrecv", time_bank_sendrecv % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_tallies", time_tallies % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_inactive", time_inactive % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_active", time_active % elapsed)
|
||||
call hdf5_make_double(timing_group, "time_finalize", time_finalize % elapsed)
|
||||
|
|
@ -761,14 +761,14 @@ contains
|
|||
"description", "Time unionizing energy grid (s)", hdf5_err)
|
||||
call h5ltset_attribute_string_f(timing_group, "time_transport", &
|
||||
"description", "Time in transport only (s)", hdf5_err)
|
||||
call h5ltset_attribute_string_f(timing_group, "time_intercycle", &
|
||||
"description", "Total time between generations (s)", hdf5_err)
|
||||
call h5ltset_attribute_string_f(timing_group, "time_bank", &
|
||||
"description", "Total time synchronizing fission bank (s)", hdf5_err)
|
||||
call h5ltset_attribute_string_f(timing_group, "time_bank_sample", &
|
||||
"description", "Time between generations sampling source sites (s)", hdf5_err)
|
||||
call h5ltset_attribute_string_f(timing_group, "time_bank_sendrecv", &
|
||||
"description", "Time between generations SEND/RECVing source sites (s)", hdf5_err)
|
||||
call h5ltset_attribute_string_f(timing_group, "time_tallies", &
|
||||
"description", "Time between cycles accumulating tallies (s)", hdf5_err)
|
||||
call h5ltset_attribute_string_f(timing_group, "time_sample", &
|
||||
"description", "Time between cycles sampling source sites (s)", hdf5_err)
|
||||
call h5ltset_attribute_string_f(timing_group, "time_sendrecv", &
|
||||
"description", "Time between cycles SEND/RECVing source sites (s)", hdf5_err)
|
||||
"description", "Time between batches accumulating tallies (s)", hdf5_err)
|
||||
call h5ltset_attribute_string_f(timing_group, "time_inactive", &
|
||||
"description", "Total time in inactive batches (s)", hdf5_err)
|
||||
call h5ltset_attribute_string_f(timing_group, "time_active", &
|
||||
|
|
|
|||
|
|
@ -1270,7 +1270,7 @@ contains
|
|||
|
||||
!===============================================================================
|
||||
! PRINT_RUNTIME displays the total time elapsed for the entire run, for
|
||||
! initialization, for computation, and for intercycle synchronization.
|
||||
! initialization, for computation, and for intergeneration synchronization.
|
||||
!===============================================================================
|
||||
|
||||
subroutine print_runtime()
|
||||
|
|
@ -1294,10 +1294,10 @@ contains
|
|||
if(cmfd_run) write(ou,100) "Total CMFD time", time_cmfd % elapsed
|
||||
write(ou,100) " Time in inactive batches", time_inactive % elapsed
|
||||
write(ou,100) " Time in active batches", time_active % elapsed
|
||||
write(ou,100) " Time between generations", time_intercycle % elapsed
|
||||
write(ou,100) " Accumulating tallies", time_ic_tallies % elapsed
|
||||
write(ou,100) " Sampling source sites", time_ic_sample % elapsed
|
||||
write(ou,100) " SEND/RECV source sites", time_ic_sendrecv % elapsed
|
||||
write(ou,100) " Time synchronizing fission bank", time_bank % elapsed
|
||||
write(ou,100) " Sampling source sites", time_bank_sample % elapsed
|
||||
write(ou,100) " SEND/RECV source sites", time_bank_sendrecv % elapsed
|
||||
write(ou,100) " Time accumulating tallies", time_tallies % elapsed
|
||||
write(ou,100) "Total time for finalization", time_finalize % elapsed
|
||||
write(ou,100) "Total time elapsed", time_total % elapsed
|
||||
|
||||
|
|
@ -1338,8 +1338,8 @@ contains
|
|||
write(ou,*)
|
||||
|
||||
! format for write statements
|
||||
100 format (1X,A,T35,"= ",ES11.4," seconds")
|
||||
101 format (1X,A,T35,"= ",A," neutrons/second")
|
||||
100 format (1X,A,T36,"= ",ES11.4," seconds")
|
||||
101 format (1X,A,T36,"= ",A," neutrons/second")
|
||||
102 format (1X,A,T30,"= ",F8.5," +/- ",F8.5)
|
||||
|
||||
end subroutine print_runtime
|
||||
|
|
|
|||
|
|
@ -1622,7 +1622,7 @@ contains
|
|||
!===============================================================================
|
||||
! ADD_TO_SCORE accumulates a scoring contribution to a specific tally bin and
|
||||
! specific response function. Note that we don't need to add the square of the
|
||||
! contribution since that is done at the cycle level, not the history level
|
||||
! contribution since that is done at the batch level, not the history level
|
||||
!===============================================================================
|
||||
|
||||
subroutine add_to_score(score, val)
|
||||
|
|
@ -1645,9 +1645,9 @@ contains
|
|||
|
||||
real(8) :: val
|
||||
|
||||
! Add the sum and square of the sum of contributions from each cycle
|
||||
! within a cycle to the variables sum and sum_sq. This will later allow us
|
||||
! to calculate a variance on the tallies
|
||||
! Add the sum and square of the sum of contributions from a tally score to
|
||||
! the variables sum and sum_sq. This will later allow us to calculate a
|
||||
! variance on the tallies.
|
||||
|
||||
val = score % value/total_weight
|
||||
score % sum = score % sum + val
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue