Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
266 commits
Select commit Hold shift + click to select a range
5e79b7b
Missing init file in new regression test
JoffreyDorville Jan 15, 2026
0c67016
Formatting
JoffreyDorville Jan 15, 2026
2ee8edb
First attempt to enable event-based mode
JoffreyDorville Mar 24, 2026
cd4443b
Revert error message for incompatibility with event-based mode
JoffreyDorville Mar 24, 2026
aef0709
Formatting
JoffreyDorville Mar 24, 2026
091925a
Cleaning
JoffreyDorville Mar 24, 2026
b0b28ba
Add distance_to_next_boundary() tests for rectilinear, cylindrical, a…
JoffreyDorville Mar 31, 2026
d886d44
Initialize coord_ with an element to be compatible with p.r() at Part…
JoffreyDorville Mar 31, 2026
cf903c8
C++ unit tests for temperature fields
JoffreyDorville Mar 31, 2026
b1e4fee
C API interface to update temperature values in the temperature field
JoffreyDorville Mar 31, 2026
68d8d9c
C API documentation update
JoffreyDorville Apr 1, 2026
614564b
Remove unused function in Python API
JoffreyDorville Apr 1, 2026
7bee829
Test that the number of temperature values given is consistent with t…
JoffreyDorville Apr 1, 2026
78529b5
Fix XML reader
JoffreyDorville Apr 1, 2026
d91a64d
Define equality function for ScalarFields
JoffreyDorville Apr 1, 2026
068b92b
Unit test for temperature field - Python API
JoffreyDorville Apr 1, 2026
027c35c
Change fatal_error to throw
JoffreyDorville Apr 1, 2026
1bd1b5c
Unit test temperature field - C++ side
JoffreyDorville Apr 1, 2026
9bd31c1
Merge branch 'develop' into temperate_from_mesh
JoffreyDorville Apr 1, 2026
242a842
Temporarily disable part of temperature field c++ unit tests
JoffreyDorville Apr 2, 2026
967090c
Revert initialization of coord_ and declare n_coord_levels in test in…
JoffreyDorville Apr 2, 2026
a8ddf99
Allow c++ test to be compiled with the DAGMC flag
JoffreyDorville Apr 2, 2026
3420117
Restore c++ unit test
JoffreyDorville Apr 2, 2026
5ddfca2
Formatting
JoffreyDorville Apr 2, 2026
d73f0cf
Change where the temperature update is performed for a field
JoffreyDorville Apr 21, 2026
1e104a9
Add unit test corresponding to the failing case
JoffreyDorville Apr 21, 2026
5e6b409
First attempt to solve the coincidence test case
JoffreyDorville Apr 21, 2026
c954785
Update unit tests
JoffreyDorville Apr 21, 2026
7f79940
Cleaning
JoffreyDorville Apr 23, 2026
d6c7a26
Cleaner minimun distance selection
JoffreyDorville Apr 23, 2026
7b7c80a
More robust search of the distance to the next boundary in structured…
JoffreyDorville Apr 23, 2026
6eaef71
Correction
JoffreyDorville Apr 23, 2026
2c51de4
Add a new attribute to particles to store information on the next tra…
JoffreyDorville Apr 30, 2026
a6f6617
Refactor history-based transport to only have one cross surface event
JoffreyDorville Apr 30, 2026
5e88589
Refactor event-based transport to only have one cross surface event
JoffreyDorville Apr 30, 2026
3bde460
Add temperature field bin and bin next
JoffreyDorville Apr 30, 2026
a5f63bf
Cleaning
JoffreyDorville Apr 30, 2026
7ca5f8f
Temporary function to calculate distance to a regular mesh when the p…
JoffreyDorville Apr 30, 2026
bcd208a
Change signature of distance_to_next_boundary to get bins information
JoffreyDorville Apr 30, 2026
92271f9
Update distance_to_next_boundary
JoffreyDorville Apr 30, 2026
0150a02
Remove unused functions
JoffreyDorville Apr 30, 2026
2311beb
Update particle temperature after locating the new cell
JoffreyDorville Apr 30, 2026
e020118
Manage temperature field bins with boundary conditions
JoffreyDorville May 1, 2026
9949c56
Clean the temperature field interface
JoffreyDorville May 1, 2026
de054db
Update DAGMC part of transport
JoffreyDorville May 1, 2026
6a9bd74
Update field cpp unit tests
JoffreyDorville May 4, 2026
b4954d1
Update regular mesh unit test with new distance to next boundary inte…
JoffreyDorville May 4, 2026
9cf6057
Add distance to mesh boundary from outside for rectilinear meshes
JoffreyDorville May 4, 2026
3c9a810
Update unit tests for rectilinear meshes
JoffreyDorville May 4, 2026
07ad591
Remove tests from features that are no longer available
JoffreyDorville May 5, 2026
d4b2140
Find the temperature field cell of secondary particles for pulse-heig…
JoffreyDorville May 5, 2026
f397a9a
Fix reflective boundary conditions with temperature field
JoffreyDorville May 5, 2026
cd906d7
Regression test - box with reflective BC
JoffreyDorville May 6, 2026
6a8f4a8
Regression test - box with vacuum BC
JoffreyDorville May 6, 2026
549beb0
Simplify the implementation and remove tf_bin_last
JoffreyDorville May 6, 2026
a9fff5a
Fix regular mesh index calculation when point is on the lower boundary
JoffreyDorville May 6, 2026
2e10a5d
Formatting
JoffreyDorville May 6, 2026
8f9f44a
Regression test - box with periodic BC
JoffreyDorville May 6, 2026
1ed498a
Regression test - surrounding box with reflective BC
JoffreyDorville May 6, 2026
2966590
Regression test - surrounding box with vacuum BC
JoffreyDorville May 6, 2026
2155926
Regression test - surrounding box with periodic BC
JoffreyDorville May 6, 2026
1901a85
Cleaning
JoffreyDorville May 14, 2026
f2e1948
Reset DAGMC history after crossing the temperature field only
JoffreyDorville May 14, 2026
6009008
Define next event in random ray transport
JoffreyDorville May 14, 2026
bd6a64f
Warn that the temperature field is ignored with random ray
JoffreyDorville May 14, 2026
0af48ac
Update test results because of the fix on regular mesh index when the…
JoffreyDorville May 15, 2026
24e3659
Manage lattices
JoffreyDorville May 15, 2026
ded9baa
Reorganize regular single cube regression tests
JoffreyDorville May 18, 2026
7f2fd78
Reorganize regular nested cubes regression tests
JoffreyDorville May 18, 2026
22f4eb1
Cleaning
JoffreyDorville May 18, 2026
edb6fb9
Reorganize regular verification scripts
JoffreyDorville May 18, 2026
f48b085
DAGMC regression tests + verification scripts
JoffreyDorville May 18, 2026
0edb912
Lattice verification scripts - nested cubes
JoffreyDorville May 19, 2026
a5952fb
Lattice verification scripts - single cube
JoffreyDorville May 19, 2026
7f96b45
Regression tests - lattices
JoffreyDorville May 19, 2026
c2bb44d
README file for temperature field regression tests
JoffreyDorville May 19, 2026
acb857a
Prepare mesh features for DNP transport
JoffreyDorville Feb 16, 2026
ebed0ba
Field refactoring + velocity field
JoffreyDorville Feb 16, 2026
f6cefc8
Add streamline integrator
JoffreyDorville Feb 16, 2026
98082d5
Retrieve settings
JoffreyDorville Feb 16, 2026
3f165c8
DNP transport function
JoffreyDorville Feb 16, 2026
1dd9a27
Add DNP transport to the main transport solver
JoffreyDorville Feb 16, 2026
c39fd56
Formatting
JoffreyDorville Feb 16, 2026
5512ba5
Cleaning
JoffreyDorville Feb 16, 2026
d11757a
Remove nodal evaluation settings
JoffreyDorville Feb 16, 2026
39edb05
Initial regression tests using regular mesh
JoffreyDorville Feb 16, 2026
0a4eda9
Cleaning
JoffreyDorville Feb 16, 2026
33489e6
Fix inconsistencies after rebase
JoffreyDorville May 20, 2026
a726599
Update regular mesh cell based regression test
JoffreyDorville May 20, 2026
fd57b75
Remove abstraction layer for nested field data
JoffreyDorville May 20, 2026
baf20c8
Formatting
JoffreyDorville May 20, 2026
52da5be
Simplify value accessors
JoffreyDorville May 20, 2026
8c1d004
Cleaning
JoffreyDorville May 22, 2026
57c948c
Evaluate the bin correctly during integration steps
JoffreyDorville May 22, 2026
4e0e010
Use raytracing systematically to determine bins after integration steps
JoffreyDorville May 22, 2026
4ce13cc
Update regression tests results
JoffreyDorville May 22, 2026
841f575
Formatting
JoffreyDorville May 26, 2026
9ad188f
Cleaning - streamline integrator
JoffreyDorville May 26, 2026
6b16dc1
Fix error in adjust_time + cleaning + documentation
JoffreyDorville May 26, 2026
b3eb6cd
Cleaning
JoffreyDorville May 26, 2026
a5698a7
Use norm() + remove distance() and distance_sqrd()
JoffreyDorville May 26, 2026
b30b782
Use get_mesh_bin() instead of get_bin()
JoffreyDorville May 26, 2026
9839411
Remove any_cast now that we simplified the data field concept
JoffreyDorville May 27, 2026
fffa768
Protect trilinear interpolation from extrapolation
JoffreyDorville May 27, 2026
78d3829
Clean field evaluation method
JoffreyDorville May 27, 2026
2251ef6
Check values/mesh size consistency
JoffreyDorville May 27, 2026
5fb13ae
Cleaning and documentation - field
JoffreyDorville May 27, 2026
d3e2953
Documentation updates
paulromano May 28, 2026
8b83aa2
Remove unnecessary docstrings on __init__
paulromano May 28, 2026
b8e2148
Reorder settings
paulromano May 28, 2026
9509b8d
Unit tests - dnp_drift linear adjustment functions
JoffreyDorville May 28, 2026
e83c75e
Use base constructor for fields
JoffreyDorville May 28, 2026
2aeeff0
Reset velocity field to default
JoffreyDorville May 28, 2026
9aab1ff
cpp unit tests - Field
JoffreyDorville Jun 2, 2026
f737d61
cpp unit tests - VelocityField
JoffreyDorville Jun 2, 2026
720d5ab
Update field.h documentation
JoffreyDorville Jun 2, 2026
c8b022b
Use bin as parameter in normalize_coordinates instead of using a call…
JoffreyDorville Jun 4, 2026
6abb6c3
Rename Field.get_mesh_bin() to Field.get_bin()
JoffreyDorville Jun 4, 2026
45c6c10
Rename Field.evaluate(r, bin) to Field.evaluate_in_mesh(r, bin)
JoffreyDorville Jun 4, 2026
3c655ec
Rename full_raytracing to bins_and_surface_bins_crossed
JoffreyDorville Jun 4, 2026
c52cc67
Rename randomly_place_on_physical_group to sample_on_physical_groups
JoffreyDorville Jun 4, 2026
b59809d
Rename get_last_bin_inside_mesh to get_bin_clamped
JoffreyDorville Jun 4, 2026
47e78d9
Rename Field.evaluate(r0, r1, bin) to Field.evaluate_clamped(r0, r1, …
JoffreyDorville Jun 4, 2026
2caa02d
Cleaning
JoffreyDorville Jun 4, 2026
f8baa84
Code documentation
JoffreyDorville Jun 4, 2026
86b032e
Use mesh fixture in cpp tests
JoffreyDorville Jun 4, 2026
3769846
Use mesh fixture in field cpp tests
JoffreyDorville Jun 4, 2026
9d95e18
Test RegularMesh.face_area()
JoffreyDorville Jun 4, 2026
0956a78
Test RegularMesh.sample_on_face()
JoffreyDorville Jun 4, 2026
16e0389
Test RegularMesh.return_vertex_unique_id()
JoffreyDorville Jun 4, 2026
42d8fd4
Cleaning
JoffreyDorville Jun 4, 2026
d7262e4
Formatting
JoffreyDorville Jun 4, 2026
664c675
Test RegularMesh.connectivity()
JoffreyDorville Jun 4, 2026
564cd6a
Add custom matcher for Position objects
JoffreyDorville Jun 5, 2026
e616ae3
Test RegularMesh.normalize_coordinates()
JoffreyDorville Jun 5, 2026
2fb2ed3
Cleaning
JoffreyDorville Jun 5, 2026
7821eb6
Test RegularMesh.bins_and_surface_bins_crossed()
JoffreyDorville Jun 5, 2026
ee67a76
Check that r0 is inside the mesh using bin0 in get_next_bin()
JoffreyDorville Jun 5, 2026
8a86e7f
Ensure values are written when the mesh is shared
JoffreyDorville Jun 15, 2026
2a0ecf1
Add openmc_temperature_field_set_temperature to the C API
JoffreyDorville Jun 15, 2026
d696229
Clean docstring for get_temperature(int)
JoffreyDorville Jun 15, 2026
376c2c8
Add settings documentation for temperature_field
JoffreyDorville Jun 15, 2026
7ff1402
Add consistency checks in field Python classes
JoffreyDorville Jun 16, 2026
98401f6
Merge branch 'develop' into temperate_from_mesh
JoffreyDorville Jun 16, 2026
c46c859
Update regression test because of the fix on get_index_direction for …
JoffreyDorville Jun 29, 2026
e517af4
Remove verification scripts and relocate them in a new repo
JoffreyDorville Jun 29, 2026
b05aeac
Update DAGMC test models
JoffreyDorville Jul 2, 2026
072089a
Remove unused event timer for temperature mesh crossing
JoffreyDorville Jul 20, 2026
6764526
Merge branch 'develop' into temperate_from_mesh
JoffreyDorville Aug 6, 2026
1227d54
Add two C API handles for the temperature field
JoffreyDorville Aug 6, 2026
028ea83
Merge branch 'temperate_from_mesh' into dnp_drift_integration
JoffreyDorville Aug 13, 2026
363ddd5
Remove unused meshes in cpp unit tests
JoffreyDorville Aug 13, 2026
f0be065
Formatting
JoffreyDorville Aug 13, 2026
b33d338
Fix __init__.py from microxs regression tests
JoffreyDorville Aug 13, 2026
7d4218e
Fix io formats documentation
paulromano Aug 14, 2026
56b1a09
Simplify type check
paulromano Aug 14, 2026
33aa6b6
Fix docstring
JoffreyDorville Aug 17, 2026
eeedc52
Update test due to PR #3934
JoffreyDorville Aug 19, 2026
04ef8be
Merge branch 'develop' into temperate_from_mesh
JoffreyDorville Aug 20, 2026
a7e013e
Formatting
JoffreyDorville Aug 20, 2026
5f4dcfc
Update skipif statement for DAGMC tests
JoffreyDorville Aug 20, 2026
5d3104a
Update error type for type check test
JoffreyDorville Aug 20, 2026
69e6c9f
Merge branch 'temperate_from_mesh' into dnp_drift_integration
JoffreyDorville Aug 21, 2026
55ab6c0
Prepare unit tests for DNP transport
JoffreyDorville Aug 21, 2026
2b76ac9
Formatting
JoffreyDorville Aug 21, 2026
cc153c2
Simplify DNP transport algorithm
JoffreyDorville Aug 21, 2026
ae81358
Change time before decay logic
JoffreyDorville Aug 21, 2026
61ba1b5
Enable failing test after fix
JoffreyDorville Aug 21, 2026
55e98b3
Manage the case where a DNP is exactly on a mesh boundary
JoffreyDorville Aug 21, 2026
4178feb
Enable unit test where DNP is exactly on a mesh boundary
JoffreyDorville Aug 21, 2026
86a17ed
Add boundary reconcialiation for drifted DNPs - initial implementation
JoffreyDorville Aug 24, 2026
aa82c1a
Update tests with new boundary reconciliation feature
JoffreyDorville Aug 24, 2026
a118647
Update C++ unit tests as well
JoffreyDorville Aug 24, 2026
8f304a6
Update test
JoffreyDorville Aug 25, 2026
d27e07e
Add get_bin_clamped() c++ unit tests
JoffreyDorville Aug 25, 2026
e3a737e
Initialize sample_on_physical_groups unit test
JoffreyDorville Aug 25, 2026
6f4d67a
Use a smart pointer for streamline_integrator
JoffreyDorville Aug 26, 2026
2c61094
Test get_bin_clamped with a rectilinear mesh
JoffreyDorville Aug 26, 2026
f48a7bf
Finalize unit tests for sample_on_physical_groups
JoffreyDorville Aug 26, 2026
eff1390
Merge regular and rectilinear mesh tests
JoffreyDorville Aug 26, 2026
189cb1a
Merge more regular and rectilinear mesh tests
JoffreyDorville Aug 26, 2026
e0e8feb
Protect sample_on_physical_groups from duplicated faces
JoffreyDorville Aug 26, 2026
ced6298
CHECK instead of REQUIRE
JoffreyDorville Aug 26, 2026
652943f
Formatting
JoffreyDorville Aug 26, 2026
95cc8c2
Update tests after sorting face_ids in sample_on_physical_groups
JoffreyDorville Aug 26, 2026
5f481a9
Formatting
JoffreyDorville Aug 26, 2026
37cbf4d
Check for duplicate face IDs in the user-declared settings
JoffreyDorville Aug 26, 2026
b95b697
Add unit tests for reconcile_precursor_drift
JoffreyDorville Aug 27, 2026
dbb51ab
Manage albedo effects on DNP
JoffreyDorville Aug 27, 2026
e54164c
Zero-initialize site
JoffreyDorville Aug 28, 2026
c8f9082
Formatting
JoffreyDorville Aug 28, 2026
e55f7f9
Temporary debug
JoffreyDorville Aug 28, 2026
b204058
Formatting
JoffreyDorville Aug 28, 2026
150a2f3
Ensure model.xml is fully written to disk before openmc_init reads it
JoffreyDorville Aug 28, 2026
e2ea3d7
Refactor boundary conditions to get access to the transformed directi…
JoffreyDorville Aug 28, 2026
6f608b2
Fix openmc_init call in test_dnp_drift.cpp
JoffreyDorville Aug 28, 2026
7e193da
Extend reconcile_precursor_drift to handle all boundary condition types
JoffreyDorville Aug 28, 2026
7ffdec2
Check positions and directions explicitly in c++ unit tests
JoffreyDorville Sep 1, 2026
2637df6
Add periodic and white BC cases in c++ unit tests
JoffreyDorville Sep 1, 2026
5e48e56
Generalize the reconcile function - prototype
JoffreyDorville Sep 1, 2026
6616ec5
Formatting
JoffreyDorville Sep 1, 2026
b2446ec
Clean reconcile function
JoffreyDorville Sep 1, 2026
dcf7272
Add c++ unit tests for particles traveling along external boundary pl…
JoffreyDorville Sep 1, 2026
445a89b
Remove internal crossing c++ unit tests
JoffreyDorville Sep 1, 2026
76fec15
Improve white boundary cases
JoffreyDorville Sep 1, 2026
ca59ff2
Update docstrings
JoffreyDorville Sep 1, 2026
e7e59b2
Use the particle ID to initialize the RNG seed used for the white BC …
JoffreyDorville Sep 1, 2026
8690dcd
Update signature of reconcile function in c++ unit tests
JoffreyDorville Sep 1, 2026
5be05ce
Apply white BC in the c++ unit test
JoffreyDorville Sep 1, 2026
63454e9
Add a RAII guard to ensure cleanup happens even if the test fails
JoffreyDorville Sep 1, 2026
169daa0
First implementation of the common Python interface for fields and fo…
JoffreyDorville Sep 3, 2026
14ccb65
Update temperature_field unit tests
JoffreyDorville Sep 3, 2026
42f8daa
Add dnp_drift Python unit tests
JoffreyDorville Sep 3, 2026
05e0b69
Update temperature field regression tests for the new XML interface
JoffreyDorville Sep 3, 2026
f41ecad
Use pointers for simulation::temperature_field and simulation::veloci…
JoffreyDorville Sep 4, 2026
d28ba34
Return number of unique vertices for rectilinear and regular meshes
JoffreyDorville Sep 4, 2026
5dccf83
Create a global container to store fields in model
JoffreyDorville Sep 5, 2026
e1e919e
Relocate the physical group map inside the <dnp_drift> XML element
JoffreyDorville Sep 5, 2026
b748111
Move mapping from <dnp_drift> to <field>
JoffreyDorville Sep 5, 2026
89bab1f
Cleaning
JoffreyDorville Sep 5, 2026
2a94ecf
Cleaning and docstring improvement
JoffreyDorville Sep 5, 2026
3cd2aa7
Remove context from get_field
JoffreyDorville Sep 5, 2026
9c3b519
Cleaning
JoffreyDorville Sep 5, 2026
a1804a4
More cleaning
JoffreyDorville Sep 5, 2026
0579cd2
Remove unused Field attributes
JoffreyDorville Sep 5, 2026
d61a4df
Update dnp_drift regression tests - no keff difference
JoffreyDorville Sep 5, 2026
86b65f3
Update dnp_drift python unit tests
JoffreyDorville Sep 5, 2026
b31e4e3
Update temperature_field python regression tests to have <mapping> in…
JoffreyDorville Sep 5, 2026
cec99cf
Update field cpp unit tests with new XML interface and MappedField
JoffreyDorville Sep 5, 2026
5b204ae
Merge branch 'develop' into dnp_drift_integration
JoffreyDorville Sep 5, 2026
2bb30ac
Simplify data attribute in MappedField
JoffreyDorville Sep 9, 2026
9bba728
Protect trilinear interpolation from inconsistent number of vertices
JoffreyDorville Sep 9, 2026
73b84cd
Protect from mesh nullptr directly in the Field constructor
JoffreyDorville Sep 9, 2026
a342f7e
Remove all default constructors
JoffreyDorville Sep 9, 2026
cd1f52f
Update and simplify MappedField constructor
JoffreyDorville Sep 9, 2026
de43079
Update derived fields constructor
JoffreyDorville Sep 9, 2026
b81d863
Cleaning
JoffreyDorville Sep 9, 2026
f7d7ae2
Use const
JoffreyDorville Sep 9, 2026
9016944
Use FieldMapping for the mapping attribute
JoffreyDorville Sep 9, 2026
59fa56d
Rename MappedField to TypedField
JoffreyDorville Sep 9, 2026
cf5d535
Formatting
JoffreyDorville Sep 9, 2026
2be2daf
Update Python API doc
JoffreyDorville Sep 10, 2026
fe2da0b
Update IO doc
JoffreyDorville Sep 11, 2026
692634e
Main DNP drift doc
JoffreyDorville Sep 11, 2026
a2dc290
Cleaning
JoffreyDorville Sep 11, 2026
be57501
Merge branch 'develop' into dnp_drift_integration
JoffreyDorville Sep 11, 2026
d8f6023
Merge branch 'develop' into dnp_drift_integration
JoffreyDorville Oct 2, 2026
d8c5a6f
Add a C++ API handle for the velocity field
JoffreyDorville Oct 7, 2026
a213c19
Additional C++ API handles
JoffreyDorville Oct 26, 2026
644b8a9
Formatting
JoffreyDorville Oct 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -341,10 +341,12 @@ list(APPEND libopenmc_SOURCES
src/distribution_energy.cpp
src/distribution_multi.cpp
src/distribution_spatial.cpp
src/dnp_drift.cpp
src/eigenvalue.cpp
src/endf.cpp
src/error.cpp
src/event.cpp
src/field.cpp
src/file_utils.cpp
src/finalize.cpp
src/geometry.cpp
Expand Down Expand Up @@ -399,6 +401,7 @@ list(APPEND libopenmc_SOURCES
src/simulation.cpp
src/source.cpp
src/state_point.cpp
src/streamline_integrator.cpp
src/string_utils.cpp
src/summary.cpp
src/surface.cpp
Expand Down
6 changes: 6 additions & 0 deletions docs/source/capi/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1027,3 +1027,9 @@ Functions
:type scores: const int*
:return: Return status (negative if an error occurred)
:rtype: int

.. doxygenfunction:: openmc_temperature_field_set_temperature

.. doxygenfunction:: openmc_temperature_field_size

.. doxygenfunction:: openmc_temperature_field_get_value
121 changes: 121 additions & 0 deletions docs/source/io_formats/settings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,70 @@ from MF=1, MT=458 on an ENDF evaluation.

*Default*: true

.. _dnp_drift_element:

-----------------------
``<dnp_drift>`` Element
-----------------------

The ``<dnp_drift>`` element configures the delayed neutron precursor (DNP) drift
feature, which models the transport of precursors along fluid velocity streamlines
in liquid-fueled systems (see :ref:`dnp_drift` for a detailed description of the
underlying methodology). It has the following sub-elements:

:velocity_field:
The integer ID of a 3D vector field (defined via a :ref:`field_element`) that
provides the fluid velocity used to transport precursor sites. The referenced
field must be of type **velocity** and its values must have three components
per node or element (:math:`v_x, v_y, v_z`).

:boundary_map:
A group of sub-elements that assigns physical group numbers to boundary
types. Each sub-element contains a whitespace-separated list of integer
physical group numbers: The following sub-elements are recognized:

:inlet:
Physical group numbers corresponding to inlet boundaries.

:outlet:
Physical group numbers corresponding to outlet boundaries.

:wall:
Physical group numbers corresponding to wall boundaries.

:physical_group_map:
A group of sub-elements that maps individual boundary faces on the velocity
mesh to their physical group number. Because the DNP drift feature is currently
limited to OpenMC regular meshes, this mapping must be provided explicitly
by the user. It contains two sub-elements:

:face_ids:
A whitespace-separated list of integer face IDs identifying each boundary
face on the mesh.

:physical_groups:
A whitespace-separated list of integer physical group numbers, one per face,
in the same order as ``face_ids``. Each entry assigns the corresponding face to
a physical group.

The two lists must have the same length.

:integrator:
The time integration scheme used to transport precursors along streamlines.
Currently, only **RK4** (fourth-order Runge-Kutta) is supported.

:integrator_dt:
The time step size (in seconds) used by the integrator.

:recycling:
Whether to enable precursor recycling. If **true**, precursors that exit through
an outlet can be re-injected at an inlet if they do not decay during the external
transit. If **false**, precursors leaving through an outlet are immediately discarded.

:external_travel_time:
The average time (in seconds) for a precursor to transit out of the modeled system
before re-entering. Only used when recycling is set to **true**.

--------------------------------
``<electron_treatment>`` Element
--------------------------------
Expand Down Expand Up @@ -275,6 +339,51 @@ history-based parallelism.

*Default*: false

.. _field_element:

-------------------------------
``<field>`` Element
-------------------------------

The ``<field>`` element describes a field combining a geometric mesh with values
for each node or element depending on the type of mapping. Fields are currently
used for the delayed neutron precursor drift feature (velocity field) and to
declare temperature using a mesh (temperature field). It has the following
attributes/sub-elements:

:id:
A unique integer that is used to identify the field.

:type:
The type of field. Currently, **temperature** and **velocity** are the two
field types supported.

:mesh:
The integer ID used to identify the associated mesh.

:mapping:
The type of mapping between the mesh and the values. Mapping can be either
**nodal** (values defined at mesh nodes) or **cell** (values defined per mesh
element and assumed constant within each element).

*Default*: 'cell'

:values:
A whitespace-separated list of floating point numbers specifying the field
data. Values are listed sequentially, with all components of a given node
or element grouped together before moving to the next (e.g., for a
three-component field:
:math:`[v_{1,1}, v_{1,2}, v_{1,3}, v_{2,1}, v_{2,2}, v_{2,3}, \ldots]`,
where the first index identifies the node/element and the second identifies
the component). The total number of values must equal
:math:`N_{\text{c}} \cdot N_{\text{l}}`, where
:math:`N_{\text{c}}` is the number of components per location
(e.g., 1 for a scalar field, 3 for a vector field) and
:math:`N_{\text{l}}` is the number of mesh nodes (for nodal mapping)
or mesh elements (for cell mapping). For a regular mesh with dimensions
:math:`(n_x, n_y, n_z)`, the number of nodes is :math:`(n_x+1)(n_y+1)(n_z+1)`
and the number of elements is :math:`n_x\cdot n_y\cdot n_z`.

--------------------------------
``<free_gas_threshold>`` Element
--------------------------------
Expand Down Expand Up @@ -1494,6 +1603,18 @@ a material default temperature.

*Default*: 293.6 K

.. _temperature_field:

-------------------------------
``<temperature_field>`` Element
-------------------------------

The ``<temperature_field>`` element specifies the ID of a scalar field (defined via
a :ref:`field_element`) that provides temperatures on a geometric mesh. The referenced
field must be of type **temperature** and its values must be scalar (one component per
node or element) and given in Kelvin. When a temperature field is provided, it is used
to assign temperatures in the model based on the underlying mesh.

.. _temperature_method:

--------------------------------
Expand Down
22 changes: 22 additions & 0 deletions docs/source/pythonapi/base.rst
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,28 @@ Meshes
openmc.SphericalMesh
openmc.UnstructuredMesh

Fields
------

.. autosummary::
:toctree: generated
:nosignatures:
:template: myclassinherit.rst

openmc.FieldBase
openmc.VelocityField
openmc.TemperatureField

DNP drift
---------

.. autosummary::
:toctree: generated
:nosignatures:
:template: myclass.rst

openmc.DNPDrift

Geometry Plotting
-----------------

Expand Down
Loading
Loading