mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 06:05:58 -04:00
Merge branch 'master' into lost_particle_plotting01
This commit is contained in:
commit
b557ad5e55
8 changed files with 38 additions and 46 deletions
|
|
@ -19,7 +19,7 @@ New Features
|
|||
|
||||
- Python script for mesh tally plotting
|
||||
- Isotopic abundances based on IUPAC 2009 when using <element>
|
||||
- Particle restart file
|
||||
- Particle restart files for debugging
|
||||
- Code will abort after certain number of lost particles (defaults to 10)
|
||||
- Region outside lattice can be filled with material (void by default)
|
||||
- 3D voxel plots
|
||||
|
|
@ -41,6 +41,7 @@ Bug Fixes
|
|||
- a3c593_: Fixed bug in use of free gas scattering for H-1.
|
||||
- 3a66e3_: Fixed bug in 2D mesh tally implementation.
|
||||
- ab0793_: Corrected PETSC_NULL references to their correct types.
|
||||
- 182ebd_: Use analog estimator with energyout filter.
|
||||
|
||||
.. _7632f3: https://github.com/mit-crpg/openmc/commit/7632f3
|
||||
.. _f85ac4: https://github.com/mit-crpg/openmc/commit/f85ac4
|
||||
|
|
@ -53,3 +54,4 @@ Bug Fixes
|
|||
.. _a3c593: https://github.com/mit-crpg/openmc/commit/a3c593
|
||||
.. _3a66e3: https://github.com/mit-crpg/openmc/commit/3a66e3
|
||||
.. _ab0793: https://github.com/mit-crpg/openmc/commit/ab0793
|
||||
.. _182ebd: https://github.com/mit-crpg/openmc/commit/182ebd
|
||||
|
|
|
|||
|
|
@ -239,7 +239,8 @@ Cross Section Configuration
|
|||
In order to run a simulation with OpenMC, you will need cross section data for
|
||||
each nuclide in your problem. Since OpenMC uses ACE format cross sections, you
|
||||
can use nuclear data that was processed with NJOY, such as that distributed with
|
||||
MCNP_ or Serpent_.
|
||||
MCNP_ or Serpent_. The TALYS-based evaluated nuclear data library, TENDL_, is
|
||||
openly available in ACE format.
|
||||
|
||||
Using JEFF Cross Sections from OECD/NEA
|
||||
---------------------------------------
|
||||
|
|
@ -292,6 +293,7 @@ file.
|
|||
.. _here: http://www.oecd-nea.org/dbdata/pubs/jeff312-cd.html
|
||||
.. _MCNP: http://mcnp.lanl.gov
|
||||
.. _Serpent: http://montecarlo.vtt.fi
|
||||
.. _TENDL: ftp://ftp.nrg.eu/pub/www/talys/tendl2012/tendl2012.html
|
||||
|
||||
--------------
|
||||
Running OpenMC
|
||||
|
|
|
|||
|
|
@ -259,7 +259,6 @@ neat:
|
|||
# Rules
|
||||
#===============================================================================
|
||||
|
||||
.SUFFIXES: .F90 .o
|
||||
.PHONY: all xml-fortran install uninstall clean neat distclean
|
||||
|
||||
%.o: %.F90
|
||||
|
|
|
|||
|
|
@ -36,11 +36,6 @@ contains
|
|||
cmfd_act_flush, current_batch, keff, &
|
||||
n_batches, message, master, mpi_err, rank
|
||||
|
||||
logical :: leave_cmfd
|
||||
|
||||
! set leave cmfd to false
|
||||
leave_cmfd = .false.
|
||||
|
||||
! stop cmfd timer
|
||||
if (master) then
|
||||
call time_cmfd % start()
|
||||
|
|
@ -60,17 +55,6 @@ contains
|
|||
|
||||
end if
|
||||
|
||||
! check to hold weights
|
||||
if (cmfd_hold_weights) then
|
||||
message = 'Not Modifying Weights - Albedo estimate not good, increase batch size.'
|
||||
call warning()
|
||||
cmfd_hold_weights = .false.
|
||||
if (cmfd_feedback) call cmfd_reweight(.false.)
|
||||
leave_cmfd = .true.
|
||||
end if
|
||||
call MPI_BCAST(leave_cmfd, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, mpi_err)
|
||||
if (leave_cmfd) return
|
||||
|
||||
! filter processors (lowest PETSc group)
|
||||
if (rank < n_procs_cmfd) then
|
||||
|
||||
|
|
@ -100,19 +84,6 @@ contains
|
|||
|
||||
end if
|
||||
|
||||
! check to hold weights
|
||||
if ((abs(cmfd%keff-keff)/keff > cmfd_keff_tol)) then
|
||||
if (current_batch >= cmfd_inact_flush(1) .or. &
|
||||
current_batch >= cmfd_act_flush - 1 ) then
|
||||
message = 'Not Modifying Weights - keff %diff > 0.005, up batch size'
|
||||
call warning()
|
||||
if (cmfd_feedback) call cmfd_reweight(.false.)
|
||||
leave_cmfd = .true.
|
||||
end if
|
||||
end if
|
||||
call MPI_BCAST(leave_cmfd, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, mpi_err)
|
||||
if (leave_cmfd) return
|
||||
|
||||
! calculate fission source
|
||||
call calc_fission_source()
|
||||
|
||||
|
|
|
|||
|
|
@ -555,7 +555,8 @@ contains
|
|||
end select
|
||||
|
||||
! Set new particle direction
|
||||
p % coord0 % uvw = (/ u, v, w /)
|
||||
norm = sqrt(u*u + v*v + w*w)
|
||||
p % coord0 % uvw = [u, v, w] / norm
|
||||
|
||||
! Reassign particle's cell and surface
|
||||
p % coord0 % cell = last_cell
|
||||
|
|
|
|||
|
|
@ -1764,6 +1764,9 @@ contains
|
|||
tally_(i) % filter(j) % bins(k))
|
||||
end do
|
||||
|
||||
! Set to analog estimator
|
||||
t % estimator = ESTIMATOR_ANALOG
|
||||
|
||||
case default
|
||||
! Specified tally filter is invalid, raise error
|
||||
message = "Unknown filter type '" // trim(tally_(i) % &
|
||||
|
|
@ -1975,6 +1978,7 @@ contains
|
|||
end if
|
||||
case ('scatter')
|
||||
t % score_bins(j) = SCORE_SCATTER
|
||||
|
||||
case ('nu-scatter')
|
||||
t % score_bins(j) = SCORE_NU_SCATTER
|
||||
|
||||
|
|
@ -2565,7 +2569,9 @@ contains
|
|||
|
||||
! create dictionary entry for both name and alias
|
||||
call xs_listing_dict % add_key(listing % name, i)
|
||||
call xs_listing_dict % add_key(listing % alias, i)
|
||||
if (listing % alias /= '') then
|
||||
call xs_listing_dict % add_key(listing % alias, i)
|
||||
end if
|
||||
end do
|
||||
|
||||
end subroutine read_cross_sections_xml
|
||||
|
|
|
|||
|
|
@ -186,10 +186,11 @@ contains
|
|||
|
||||
integer, optional :: level ! verbosity level
|
||||
|
||||
integer :: i_start ! starting position
|
||||
integer :: i_end ! ending position
|
||||
integer :: line_wrap ! length of line
|
||||
integer :: length ! length of message
|
||||
integer :: i_start ! starting position
|
||||
integer :: i_end ! ending position
|
||||
integer :: line_wrap ! length of line
|
||||
integer :: length ! length of message
|
||||
integer :: last_space ! index of last space (relative to start)
|
||||
|
||||
! Set length of line
|
||||
line_wrap = 80
|
||||
|
|
@ -210,11 +211,17 @@ contains
|
|||
|
||||
else
|
||||
! Determine last space in current line
|
||||
i_end = i_start + index(message(i_start+1:i_start+line_wrap), &
|
||||
last_space = index(message(i_start+1:i_start+line_wrap), &
|
||||
' ', BACK=.true.)
|
||||
if (last_space == 0) then
|
||||
i_end = min(length + 1, i_start+line_wrap) - 1
|
||||
write(ou, fmt='(1X,A)') message(i_start+1:i_end)
|
||||
else
|
||||
i_end = i_start + last_space
|
||||
write(ou, fmt='(1X,A)') message(i_start+1:i_end-1)
|
||||
end if
|
||||
|
||||
! Write up to last space
|
||||
write(ou, fmt='(1X,A)') message(i_start+1:i_end-1)
|
||||
|
||||
! Advance starting position
|
||||
i_start = i_end
|
||||
|
|
@ -1420,16 +1427,20 @@ contains
|
|||
gen_per_batch) / time_active % elapsed
|
||||
end if
|
||||
else
|
||||
speed_inactive = real(n_particles * n_inactive * gen_per_batch) / &
|
||||
time_inactive % elapsed
|
||||
if (n_inactive > 0) then
|
||||
speed_inactive = real(n_particles * n_inactive * gen_per_batch) / &
|
||||
time_inactive % elapsed
|
||||
end if
|
||||
speed_active = real(n_particles * n_active * gen_per_batch) / &
|
||||
time_active % elapsed
|
||||
end if
|
||||
|
||||
! display calculation rate
|
||||
string = to_str(speed_inactive)
|
||||
if (.not. (restart_run .and. (restart_batch >= n_inactive))) &
|
||||
write(ou,101) "Calculation Rate (inactive)", trim(string)
|
||||
if (.not. (restart_run .and. (restart_batch >= n_inactive)) &
|
||||
.and. n_inactive > 0) then
|
||||
string = to_str(speed_inactive)
|
||||
write(ou,101) "Calculation Rate (inactive)", trim(string)
|
||||
end if
|
||||
string = to_str(speed_active)
|
||||
write(ou,101) "Calculation Rate (active)", trim(string)
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
<typedef name="ace_table_xml">
|
||||
<component name="name" type="word" length="15" />
|
||||
<component name="alias" type="word" length="15" />
|
||||
<component name="alias" type="word" length="15" default="''" />
|
||||
<component name="type" type="word" length="10" default="'neutron'" />
|
||||
<component name="zaid" type="integer" default="0" />
|
||||
<component name="metastable" type="integer" default="0" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue