OpenMC/ChangeLog
2011-06-24 11:02:10 -04:00

443 lines
20 KiB
Text

2011-06-22 Paul Romano <romano7@mit.edu>
* .gitignore: Specifies intentionally untracked files for git
version control
* src/ace.f90: Added capability to read unresolved resonance
probability tables.
* src/global.f90: Added log file unit.
* src/logging.f90: Added module for handling a log file.
* src/main.f90: Added call to create log.
* src/types.f90: Extended AceContinuous to handle unresolved
resonance probability table data.
2011-04-25 Paul Romano <romano7@mit.edu>
* ace.f90: Fixed indentation of get_int and get_real. Added
subroutine get_macro_xs.
* fileio.f90: Added ability to read tally cards through read_tally
subroutine. Changed ERROR_CODE to ERROR_INT.
* global.f90: Added variables for tallies. Changed ERROR_CODE to
ERROR_INT and added ERROR_REAL.
* input_sample: Added tally card.
* main.f90: Use tallies_on variable when appropriate.
* output.f90: Add preliminary tally printing capabilites through
print_tally subroutine.
* physics.f90: Add call to score_tally for tallies. Changed
Sigma_t to Sigam_rxn.
* score.f90: Added score_tally and add_to_score subroutine.
* search.f90: Added interpolate subroutine.
* string.f90: Added is_number function.
* tallies.f90: CHANGED NAME TO score.f90
* types.f90: Added list of tallies to Universe, Lattice and
Cell. Modified Tally type.
2011-04-22 Paul Romano <romano7@mit.edu>
* geometry.f90: Deallocated count lists in neighbor_lists.
* global.f90: Deallocate arrays that were not previously
deallocated (xs_continuous, xs_thermal, e_grid, lattices).
* mpi_routines.f90: Added variable p_sample to lessen calculation
inside of sampling loop.
* physics.f90: Commented warning about low particle energy.
* source.f90: Changed source and fission banks to be allocated
maxwork instead of n_particles.
2011-04-21 Paul Romano <romano7@mit.edu>
* main.f90: Moved RN_init_particle at end of cycle to
synchronize_bank routine.
* mcnp_random.f90: Added RN_skip subroutine since RN_skip_ahead
was private and needed a specific seed. RN_skip is used in
synchronize_bank.
* mpi_routines.f90: Dramatically overhauled the fission bank
synchronization algorithm. The algorithm was non-scalable due to
each processor needing to iterate over the global list of fission
sites when sampling. This has been modified so that each processor
samples sites locally without knowledge of how many sites other
processors have sampled. Essentially, this requires an extra
MPI_EXSCAN and MPI_BCAST, but should be much faster than what was
there before.
* source.f90: Set uid of particle during get_source_particle
2011-04-21 Paul Romano <romano7@mit.edu>
* geometry.f90: Removed level on calls to message().
* global.f90: Adjustments to make necessary integers into 8-byte
integers. Changed PI to non-compiler dependent constant.
* lattice_sample: Changed lattice to 20 x 20.
* main.f90: New timing data from fission bank synchronization
* mpi_routines.f90: Switching to 8-byte integers, more comments,
changed timing variables.
* output.f90: Made the level argument in message subroutine
optional.
* physics.f90: Fixed bug in sample_angle whereby mu could possibly
be greater than one (very rarely). This caused rotate_angle to
fail when given mu>1. Removed level from message calls.
* source.f90: Change necessary variables to integer(8)
* tallies.f90: Change MPI_REDUCE to use MPI_INTEGER8
* types.f90: Change Bank type to use integer(8) for uid.
2011-04-13 Paul Romano <romano7@mit.edu>
* main.f90: Simple timing for total time elapsed and bank
synchronization.
* Makefile: Added USE_MPI flag and ifeq block.
* mpi_routines.f90: Timing of fission bank synchronization.
2011-04-12 Paul Romano <romano7@mit.edu>
* global.f90: Added ifdef MPI sections
* main.f90: Added ifdef MPI sections
* Makefile: Made switching between compiling with or without MPI
more seamless by adding -DMPI flag on F90FLAGS.
* mpi_routines.f90: Added ifdef MPI sections
* tallies.f90: Added ifdef MPI sections
2011-04-12 Paul Romano <romano7@mit.edu>
* ace.f90: Fixed bug relating to 'use' of str_to_real from wrong
module
* cross_section.f90: Fixed bug relating to 'use' of str_to_real
from wrong module
* fileio.f90: Fixed bug relating to 'use' of str_to_real from wrong
module
2011-04-01 Paul Romano <romano7@mit.edu>
* ace.f90: Added ability to read S(a,b) data through the
read_ACE_thermal and read_thermal_data subroutines.
* endf.f90: Replaced many integer values of MTs with constants
introduced in global module
* fileio.f90: Added check for no boundary conditions.
* global.f90: Introduced parameters to represent different
reactions. Added real_to_str function and moved str_to_real
function here instead of being in string module.
* output.f90: Changed printing of real(8)s to use the real_to_str
function. Changed print_material to show density of each nuclide.
* physics.f90: Replaced actual integer values of MTs with
constants introduced in global module
* string.f90: Moved str_to_real function to global module.
2011-03-30 Paul Romano <romano7@mit.edu>
* benchmarks: Added boundary conditions to PU-MET-FAST-001, 002,
and 005.
* fileio.f90: Added ability to read boundary conditions through
the new read_bc subroutine and a modification to adjust_indices.
* global.f90: Added parameter for periodic boundary conditions.
* input_sample: Added boundary conditions.
* lattice_sample: Sample lattice geometry file added.
* output.f90: Modified print_surface to show boundary condition.
2011-03-28 Paul Romano <romano7@mit.edu>
* fileio.f90: Ability to read lattice entries.
* geometry.f90: Added lattice capabilities. Changed cross_boundary
to cross_surface. Added many comments. In many places, changed
testing of c%fill to c%type instead since fill could be universe
or lattice.
* Makefile: Added -traceback
* output.f90: Added print_lattice, other minor changes. (Fixed
indentation so looks like everything changed)
* physics.f90: Call cross_lattice if crossing lattice boundary
instead of surface.
* source.f90: Set values for xyz_local, lattice indices
* types.f90: Extending Lattice type, modified Particle type to
include local coordinates, current lattice, and lattice indices.
2011-03-25 Paul Romano <romano7@mit.edu>
* physics.f90: Resample outgoing energy if sampled energy is
greater than 20 MeV. Some cross sections go up to 150 MeV but
others do not.
* source.f90: Resample outgoing energy if >= 20 MeV.
2011-03-25 Paul Romano <romano7@mit.edu>
* ace.f90: Added ability to read delayed neutron energy
distributions and precursor yields/constants. Created function
length_energy_dist from inner section of read_energy_dist so that
it could used for delayed neutrons as well. Added many comments
where they were previously missing.
* fileio.f90: Added many comments.
* global.f90: Added lattice types
* physics.f90: Added sampling of delayed neutrons (delayed/prompt,
precursor group, outgoing energy). Added many comments.
* types.f90: Moved all delayed neutron precursor data into one
array. Made delayed neutron energy distribution allocatable (since
there are 6 groups, each with a dist). Added many comments.
2011-03-24 Paul Romano <romano7@mit.edu>
* geometry.f90: Fixed significant bug in how quadratic surfaces
were handled. Changed x**2 to x*x in the interest of efficiency.
* global.f90: Added more interpolation types to prepare for
interpolation other than histogram or lin-lin.
* physics.f90: Fixed bug in E1 and EK energies for Law 4 (used NE
instead of NP).
2011-03-22 Paul Romano <romano7@mit.edu>
* benchmarks: Added PU-MET-FAST-002 and PU-MET-FAST-005 benchmark
problems.
* mpi_routines.f90: Added check for no fission bank sites.
* output.f90: Changed error subroutine to work when run in
parallel.
* physics.f90: Fixed sampling of seconary angle for elastic
scattering. Changed sampling of reaction. Changed n_gamma to
n_absorption and now includes (n,p), etc. Reverted sample_angle
routine to arguments u,v,w,mu.
2011-03-22 Paul Romano <romano7@mit.edu>
* cross_section.f90: Calculation of material total cross section
was completely wrong -- fixed it up.
* global.f90: Added default keff.
* mpi_routines.f90: Fixed major bug in how MPI_BANK type was
created. Solution should be machine independent. Parallel fission
bank now works.
* physics.f90: Combined level_scatter into inelastic_scatter since
the physics is the same. Simplifying sampling of angle (isotropic
cases handled inside sample_angle). Fixed interpolation in many
places (f and (1-f) were swapped). Fixed distance to
collision. Fixed major bug in evaporation spectrum (restriction
energy was wrong).
* source.f90: Moved initial sampling of Watt spectrum for first
cycle particles to init_source inside of being in physics module.
* tallies.f90: Initial addition of tallies module. Only has one
routine, calculate_keff, that is used to do end-of-cycle keff
calculations. This will probably change significantly.
* unittest.f90: Added test_mpi_bank useful for debugging the
MPI_BANK type.
2011-03-21 Paul Romano <romano7@mit.edu>
* ace.f90: Adjusted locators energy and angle distributions for
Law 61.
* global.f90: Added 'work' variable.
* main.f90: History loop is generalized. Added call to
synchronize_bank.
* mpi_routines.f90: Added fission bank synchronization from prior
code. Introduced MPI_bank type in setup_mpi.
* physics.f90: Added ability to simulate (n,xn), inelastic
scattering reactions. Further extended energy sampling to include
Law 61 (correlated energy-angle distributions). Fixed cases where
nu values outside of array for binary_search are treated
correctly. Fixed bugs in energy sampling (changed %energy to
%data).
* source.f90: Changed init_source to work in parallel. Minor
changes to get_source_particle. Added copy_from_bank for fission
bank synchronization.
2011-03-18 Paul Romano <romano7@mit.edu>
* ace.f90: Added ability to read nu data through the read_nu_data
subroutine. Changed names of subroutines with 'parse' to
'read'. Change 'size' variable to 'length' to prevent conflict
with SIZE intrinsic. Adjusted angle and energy distributions to
fit new types. Adjusted locator arrays within energy and angle
distribution data array.
* fileio.f90: Can now read verbosity from input file rather than
setting it arbitrarily in my source.
* geometry.f90: Set current pointers particle attributes in
find_cell.
* global.f90: Added keff, bank indices, parallel processing
variables, nu types. Moved default verbosity to set_defults.
* mpi_routines.f90: First addition on MPI parallelization
* output.f90: Added print_particle and print_reaction routines,
moved ou and eu to be module variables so that every routine
doesn't have to define them.
* physics.f90: Added n_fission and level_scatter
subroutines. Fixed bugs in sample_angle subroutine. Changed
rotate_angle to operate on particle. Added sample_energy
subroutine -- currently includes tabular equiprobable bins,
inelastic level scattering, continuous tabular distribution,
Maxwell spectrum, evaporation spectrum, Watt spectrum, and
Kalbach-Mann correlated scattering.
* source.f90: Added default values for source particles. Temporary
add_bank_sites routine written -- not sure if it will be used here
or elsewhere.
* types.f90: Added n_coll attribite to particle. Extended Bank
type to include direction and energy. Added AceDistAngle and
AceDistEnergy types and changed AceReaction accordingly. Changed
how nu data is stored in AceContinuous.
2011-03-10 Paul Romano <romano7@mit.edu>
* types.f90: The major changes are that the n_items and
boundary_list attributes of 'Cell' are now n_surfaces and
surfaces. Even though this doesn't quite make sense since
parentheses and union operators are not surfaces per-se, it is
easier to understand within other modules with these names. The
'Neutron' type is now called 'Particle' and will be used for all
different particles (eventually).
* fileio.f90: Changed aforementioned names.
* geometry.f90: Changed aforementioned names.
* global.f90: Changed aforementioned names.
* main.f90: Changed aforementioned names.
* output.f90: Changed aforementioned names.
* physics.f90: Changed aforementioned names.
* source.f90: Changed aforementioned names.
2011-03-04 Paul Romano <romano7@mit.edu>
* fileio.f90: Added build_universe routine which sets pointers
betweens cells and parent cells and determines level of each
universe. Added stub for read_lattice.
* geometry.f90: Changed cross_boundary and dist_to_boundary to
take into account universe boundaries as well as cell boundaries.
* global.f90: Added initial variables for lattices.
* output.f90: Added print_surface and print_material.
* physics.f90: Added find_energy_index routine.
* types.f90: Initial Lattice type.
2011-02-27 Paul Romano <romano7@mit.edu>
* ace.f90: Fixed minor bugs associated with reading angular
distributions.
* data_structures.f90: Added dict_keys routines.
* fileio.f90: Considerably changed read_count and read_cell to be
able to handle universes.
* geometry.f90: Added universe logic to find_cell and allowed it
to be recursively called.
* global.f90: Added universe array and dictionary, cell types,
pointer to lowest universe, angular distribution types,
interpolation types, as well as ERROR_CODE and adjusted str_to_int
to return ERROR_CODE on error.
* output.f90: Added print_cell, print_universe, and print_summary
subroutines. Need a few more useful routines like this!
* physics.f90: Added ability to sample cosine of scattering angle
from a 32-equiprobable bin distribution or a tabular
distribution. This is done by the sample_energy routine. The
rotate_angle subroutine takes a particles direction and applies
that scattering angle to it. Also added some logic for universes.
* types.f90: Changed some attributes in the Neutron structure,
added type to angular distribution within AceReaction.
2011-02-22 Paul Romano <romano7@mit.edu>
* ace.f90: Added read_angular_dist and read_energy_dist
subroutines that read the energy and angle distributions for
secondary neutrons for reactions with MT < 100. Note that these
routines don't actually parse the distributions since their form
will depend on the secondary law is for that particle reaction.
* global.f90: Incremented minor version
* types.f90: Put angular and energy distribution information
within AceReaction since it is unique to each reaction
2011-02-13 Paul Romano <romano7@mit.edu>
* ace.f90: Fixed xs_continuous allocation again -- cross sections
were not being assigned correctly to materials. Added elastic
scattering in list of reactions. Changed name of rxn %
energy_index to IE.
* endf.f90: New module. Includes subroutine reaction_name which
returns the name of a reaction for a given ENDF MT value.
* geometry.f90: Fixed bug in dist_to_boundary (the 'w' in uvw was
actually being set to 'z', not 'w'). Changed 0's and 1's to ZEROs
and ONEs.
* global.f90: Added ZERO and ONE.
* physics.f90: Can now sample reactions once nuclide is
selected. Added subroutines elastic_scatter, level_inelastic, and
n_gamma (level_inelastic is just a stub), and significantly
changed elastic scattering (currently based on stationary target).
* types.f90: Added n_reaction attribute on AceContinuous, changed
AceReaction % energy_index to IE.
2011-02-09 Paul Romano <romano7@mit.edu>
* ace.f90: Fixed bug in the way xs_continuous was allocated. If,
e.g., 92235.03c was listed twice in a file, two spots would be
allocated in the array instead of one.
* cross_section.f90: Added calculation of total material
cross-section.
* data_structures.f90: Added list routines for each different
type (integer, real, key/value pairs) and an interface for
them. Dictionaries can now take character keys or integer
keys. New hash function for integers is simple mod function.
* energy_grid.f90: Removed grid_count since we now have a generic
list_size routine in data_structures. Added original_indices
routine in order to do SERPENT-style double-indexing.
* fileio.f90: Fixed normalize_ao routine to include calculations
based on atom or gram density (this should probably be moved to
different module). Added get_next_line routine that reads a full
line of input including any continuation lines marked by an
ampersand.
* global.f90: Added separate dictionary types (CI and II), added
pointers for current cell, surface, and material. Added e_grid and
n_grid
* physics.f90: Neutron energy sampled at beginning of
transport. Added watt_spectrum and maxwell_spectrum
routines. Changed collision routine so that actual nuclide is
sampled.
* search.f90: Fixed binary_search routine
* string.f90: Changed concatenate subroutine into a function
* types.f90: Moved List and Dictionary types from data_structures
to here (including new types). LinkedListGrid is now ListReal.
2011-02-03 Paul Romano <romano7@mit.edu>
* ace.f90: Added initial routines for reading continuous-energy
ACE cross section tables. No secondary energy/angle distributions
or nu data is read.
* cross_section.f90: Added read_xsdata routine which reads
information from an xsdata file from SERPENT.
* data_structures.f90: Moved derived types to the types module and
change dict_create so that one doesn't need to add a (key,value)
pair on initialization.
* energy_grid.f90: First routines for energy grid unionization
based on insertion sorts.
* fileio.f90: Added routines for reading integer and real data,
particularly from cross-section libraries. Made an interface so
that a single routine can be called regardless of type. Ability to
read material cards and added subroutine for normalization of
atom/weight percents.
* Makefile: Added 'unittest' target
* output.f90: Fixed bug in get_today subroutine whereby the day
was displayed wrong.
* search.f90: Added binary search which will eventually be used
for energy grid searches
* unittest.f90: Added this program for unit testing.
2011-01-26 Paul Romano <romano7@mit.edu>
* physics.f90: Added collision routine, still segfaults though.
* geometry.f90: Added messages for high verbosities
* global.f90: Added verbosity parameter, key length for
dictionaries
* output.f90: Implemented verbosity for messages.
* data_structures.f90: Added implementations of linked list and
dictionaries based on the flib open source package
2011-01-23 Paul Romano <romano7@mit.edu>
* types.f90: Added cell, surface, and alive attributes to Neutron
* fileio.f90: External source no longer array
* geometry.f90: Changed cell_contains slightly so that it can
evaluate simple cell logical expressions. Added find_cell and
cross_boundary subroutines. Changed dist_to_boundary to also give
back closest surface
* global.f90: Added set_defaults subroutine
* source.f90: Isotropic angle is now sampled in init_source, fixed
sampling in box, checks for external source type. Added
get_source_particle function.
2011-01-22 Paul Romano <romano7@mit.edu>
* input_sample: Added a sample input file
* main.f90: Added run_problem subroutine
* mcnp_random.f90: Added random number generator based on MCNP's
linear congruential generator
* fileio.f90: Completely changed how cells, surfaces, and
materials are allocated. Now there is a first pass through the
input file made by read_count which allows the arrays to be
pre-allocated, then read_input actually parses the input data.
* geometry.f90: Only formatting changes
* output.f90: Added the echo_input subroutine, made formatting
changes
* string.f90: Moved int_to_str to the global module, changed
string splitting to recognize tab characters
* types.f90: Deleted List types, added Isotope, Material, and
Source
* source.f90: Added init_source routine which initializes source
particles