Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
184 commits
Select commit Hold shift + click to select a range
e6c5f56
Fixing plot xs for when plotting element string reaction (#3029)
shimwell Jun 10, 2024
88f3e4d
Allow mesh material homogenization to include or exclude voids (#3000)
paulromano Jun 10, 2024
12a278b
Enforce lower_left in lattice geometry (#2982)
kmeag Jun 10, 2024
e971bd1
added error checking on cylindrical mesh (#2977)
hsameer481 Jun 10, 2024
8b33615
fix shannon entropy broken link (#3034)
icmeyer Jun 12, 2024
1f32804
Make sure skewed dataset is cast to bool properly (#3001)
paulromano Jun 12, 2024
dcb8033
Eliminate deprecation warnings from scipy and pandas (#2951)
paulromano Jun 12, 2024
3e16c03
only add png or h5 extension if not present in plots.py (#3036)
gridley Jun 12, 2024
b1b8a4c
Set OpenMCOperator materials to the model materials when diff_burnabl…
Kladdy Jun 13, 2024
5222b34
Fixed Source Random Ray (#2988)
jtramm Jun 17, 2024
8be35cd
Fix bug with invalidated iterators when enforcing precedence in regio…
paulromano Jun 17, 2024
89d4daf
Implement policy for Python, C++, and CMake versions (#3035)
paulromano Jun 17, 2024
ce4176d
Hexagonal lattice iterators (#2921)
pshriwise Jun 17, 2024
97537d5
Rename max_splits to max_history_splits, set default value to 1.0e7 (…
vanessalulla Jun 18, 2024
b0732cb
add dagmc fill materials to homogenized materials method (#3026)
church89 Jun 18, 2024
e33e66a
Fix #2994, non-existent path causes segmentation fault when saving pl…
pitkajuh Jun 18, 2024
f6d3ee7
Update IsogonalOctagon to use xz basis and update tests (#3045)
ybadr16 Jun 18, 2024
84f561c
sets used instead of lists when membership testing (#3021)
shimwell Jun 19, 2024
ddc9526
Storing surface source points using a cell ID (#2888)
JoffreyDorville Jun 19, 2024
3bedd04
update math function unit test with catch2 (#2955)
lhchg Jun 19, 2024
3dff03f
Resolve warnings related to numpy 2.0 (#3044)
paulromano Jun 19, 2024
390005e
Make sure time boundary doesn't prevent secondary particle creation (…
paulromano Jun 20, 2024
78ee851
Determine whether nuclides are fissionable in volume calc mode (#3047)
paulromano Jun 20, 2024
4bd0b09
Avoiding more numpy 2.0 deprecation warnings (#3049)
eepeterson Jun 20, 2024
00faa7d
Set DAGMC cell instances on surface crossing (#3052)
pshriwise Jun 21, 2024
55b52b7
Release of version 0.15.0 (#3050)
paulromano Jun 22, 2024
8ce81d1
Change version number to 0.15.1-dev (#3058)
paulromano Jun 24, 2024
a8171cb
Implementation of Shannon Entropy for Random Ray (#3030)
ethankrammer Jun 27, 2024
ac0ad0b
Fix hyperlinks in `random_ray.rst` (#3064)
yardasol Jun 28, 2024
391450c
Random Ray Normalization Improvements (#3051)
jtramm Jun 28, 2024
653d883
Add missing show_overlaps option to plots.xml input file documentatio…
johvincau Jul 3, 2024
1b22dd2
Random Ray Testing Simplification (#3061)
jtramm Jul 3, 2024
b11f8b7
Enforce sequence type when setting Setting.track (#3071)
johvincau Jul 8, 2024
e74dc50
Enforce non-negative percents for material.add_nuclide to prevent uni…
johvincau Jul 8, 2024
a5a26bb
Add -DCMAKE_BUILD_TYPE=Release flag for MOAB in Dockerfile (#3077)
nplinden Jul 9, 2024
cbec1ab
Correct openmc.Geometry initializer to accept iterables of openmc.Cel…
johvincau Jul 10, 2024
2107af5
Moving most of setup.py to pyproject.toml (#3074)
shimwell Jul 12, 2024
58f9092
Include batch statistics discussion in methodology introduction (#3076)
johvincau Jul 16, 2024
fd47df4
Linear Source Random Ray (#3072)
RufusN Jul 17, 2024
32440ad
Remove use of pkg_resources package (#3069)
paulromano Jul 18, 2024
4c0e08b
Replace all deprecated Python typing imports and syntax with updated …
johvincau Jul 18, 2024
e5cc925
removed unused which function in CI scripts (#3095)
shimwell Jul 24, 2024
0ad0033
packages used for testing moved to tests section of pyprojects.tom (#…
shimwell Jul 24, 2024
467b8e9
Fix ParticleFilter to work with set inputs (#3092)
johvincau Jul 30, 2024
9d9b2da
Improve description of probabilities for openmc.stats.Tabular class (…
valderrama-juan Jul 30, 2024
346f751
Adjust decay data reader to better handle non-normalized branching ra…
johvincau Aug 13, 2024
3ef54ec
Replacing endf c functions with package (#3101)
shimwell Aug 14, 2024
ae245e0
Ensure RegularMesh repr shows value for width of the mesh (#3100)
pitkajuh Aug 14, 2024
9483cce
Remove resonance reconstruction and Cython dependency (#3111)
jon-proximafusion Aug 14, 2024
10c511a
Nuclide temperatures - solution to issue #3102 (#3110)
zoeprieto Aug 15, 2024
e7bc9ba
Added error if cross sections path is a folder (#3115)
ybadr16 Aug 15, 2024
b22656e
Fix random ray solver to correctly simulate fixed source problems wit…
jtramm Aug 16, 2024
54c28b7
run microxs with mpi (#3028)
church89 Aug 16, 2024
4ef1faf
Add delta_function convenience function (#3090)
paulromano Aug 16, 2024
39a2d46
Implement bounding_box operation for meshes (#3119)
paulromano Aug 19, 2024
86fc40a
Add OrthogonalBox composite surface (#3118)
paulromano Aug 19, 2024
5bc04b5
Alternative Random Ray Volume Estimators (#3060)
jtramm Aug 23, 2024
bd43d75
Tweaking title of feature issue template (#3127)
pshriwise Sep 5, 2024
57816e6
Fix a typo in feature request template (#3128)
paulromano Sep 7, 2024
890cab5
Correct failure due to progress bar values (#3143)
pshriwise Sep 26, 2024
8b77a8d
Adding source option to plot (#2863)
shimwell Sep 26, 2024
1645e3b
Mat ids reset (#3125)
azimgivron Sep 27, 2024
b54de4d
Fix check for trigger score name (#3155)
paulromano Oct 2, 2024
9686851
Write surface source files per batch (#3124)
zoeprieto Oct 3, 2024
3a5b218
adapt the openmc-update-inputs script for surfaces (#3131)
rayanhaddad169 Oct 3, 2024
8364286
[docs] theory on PCG random number generator (#3134)
rzehumat Oct 4, 2024
1a520c9
Adding material.get_element_atom_densities (#3103)
shimwell Oct 4, 2024
c285a2c
Implement filter for cosine of angle of surface crossing (#2768)
zoeprieto Oct 4, 2024
9070b8b
Prepare point query data structures on meshes when applying Weight Wi…
pshriwise Oct 5, 2024
2450eef
Introduce ParticleList class for manipulating a list of source partic…
zoeprieto Oct 5, 2024
34f0426
Update fmt submodule to version 11.0.2 (#3162)
paulromano Oct 5, 2024
c0acc28
Add dose coefficients from ICRP 74 (#3020)
MatteoZammataro Oct 8, 2024
e047138
Fix for UWUW Macro Conflict (#3150)
ahnaf-tahmid-chowdhury Oct 9, 2024
fb3aaa4
Improve Detection of libMesh Installation via `LIBMESH_ROOT` and CMak…
ahnaf-tahmid-chowdhury Oct 10, 2024
579777a
Consistency in treatment of paths for files specified within the Mode…
paulromano Oct 10, 2024
91fd60b
Immediately resolve complement operators for regions (#3145)
paulromano Oct 10, 2024
b4a796e
Avoid writing subnormal nuclide densities to XML (#3144)
paulromano Oct 10, 2024
04ecf54
Improve clipping of Mixture distributions (#3154)
paulromano Oct 11, 2024
fc3de1c
Add ConicalFrustum composite surface (#3151)
paulromano Oct 11, 2024
8263f05
Update quickinstall instructions for macOS (#3130)
sohhae Oct 12, 2024
dcb2557
avoid zero division if source rate of previous result is zero (#3169)
church89 Oct 14, 2024
c19b9b1
added subfolders to txt search command in pyproject (#3174)
shimwell Oct 18, 2024
82a6f9e
Update `fmt` Formatters for Compatibility with Versions below 11 (#3172)
ahnaf-tahmid-chowdhury Oct 18, 2024
9c9a13c
enable polymorphisme for mix_materials (#3180)
rayanhaddad169 Oct 28, 2024
7552123
added list to doc string arg for plot_xs (#3178)
shimwell Oct 29, 2024
339d78c
Fix plot_xs type hint (#3184)
paulromano Nov 6, 2024
754f6fa
Reset values of lattice offset tables when allocated (#3188)
pshriwise Nov 8, 2024
9983ee1
allowing varible offsets for polygon.offset (#3120)
shimwell Nov 8, 2024
70807b1
Update surface_composite.py (#3189)
azimgivron Nov 9, 2024
c05132c
add export_model_xml arguments to Model.plot_geometry and Model.calcu…
nplinden Nov 9, 2024
c920779
Fixes in MicroXS.from_multigroup_flux (#3192)
paulromano Nov 11, 2024
3e2a042
Fix documentation typo in `boundary_type` (#3196)
pshriwise Nov 12, 2024
0ecd45c
Add a vessel composite surface with ellipsoids on top and bottom. (#3…
nsedayilmaz Nov 12, 2024
58400cb
Add PointCloud spatial distribution (#3161)
gonuke Nov 13, 2024
d30b2e8
Fix docstring for Model.plot (#3198)
paulromano Nov 13, 2024
fbb1159
Apply weight windows at collisions in multigroup transport mode. (#3199)
pshriwise Nov 18, 2024
172867b
Random Ray Adjoint Mode (#3191)
jtramm Nov 20, 2024
ae37d6c
Statistical weights in IndependentSource (#3195)
zoeprieto Nov 22, 2024
dd01c40
Enable adaptive mesh support on libMesh tallies (#3185)
nuclearkevin Nov 23, 2024
2d988a6
External sources alias sampler (#3201)
magnoxemo Nov 23, 2024
a9fe2a0
Fix bin index to DoF ID mapping bug in adaptive libMesh meshes (#3206)
nuclearkevin Nov 27, 2024
a940216
Ensure libMesh::ReplicatedMesh is used for LibMesh tallies (#3208)
nuclearkevin Dec 3, 2024
de8132a
adding unstrucutred mesh file suffix to docstring (#3211)
shimwell Dec 3, 2024
775c415
Write and read mesh name attribute (#3221)
pshriwise Dec 16, 2024
3a001d3
updated link to log mapping technique (#3241)
shimwell Jan 6, 2025
3933348
Adding '#define _USE_MATH_DEFINES' to make M_PI declared in Intel and…
MAS-OUD Jan 7, 2025
5ad1a4a
Differentiate materials in DAGMC universes (#3056)
bam241 Jan 7, 2025
8c7200f
Enable UWUW library when building with DAGMC in CI (#3246)
pshriwise Jan 7, 2025
6a5d80e
updated docker file to latest DAGMC (#3251)
shimwell Jan 8, 2025
10a63bb
Move to support python 3.13 (#3165)
MicahGale Jan 8, 2025
4492f9d
Fix type comparison (#3244)
makeclean Jan 8, 2025
8ba66f9
Fix for erroneously non-zero tally results of photon threshold reacti…
nelsonag Jan 8, 2025
0d4a85d
Remove top-level import of openmc.lib (#3250)
paulromano Jan 8, 2025
1eca46f
Write mesh type as a dataset always (#3253)
pshriwise Jan 9, 2025
7c142a3
Change `Zernike` documentation in polynomial.py (#3258)
jfsIV Jan 10, 2025
51f0e6f
Add Patrick Shriwise to technical committee (#3255)
paulromano Jan 10, 2025
c226c78
Bug fix for Polygon 'yz' basis (#3259)
eepeterson Jan 10, 2025
d2edf0c
Fix path handling for thermal ACE generation (#3171)
janmalec Jan 11, 2025
cf3f020
Update to a consistent definition of the r2 parameter for cones (#3254)
pshriwise Jan 12, 2025
d39a414
Set Model attributes only if needed (#3209)
azimgivron Jan 13, 2025
549cc09
Enable the LegendreFilter filter to be used in photon tallies for ord…
nelsonag Jan 14, 2025
6d73193
Fix bug in WeightWindowGenerator for empty energy bounds (#3263)
paulromano Jan 15, 2025
32662b4
Add constant for invalid surface tokens. (#3260)
pshriwise Jan 16, 2025
bd874f1
Update plots.py for PathLike to string handling error (#3261)
jeinstei Jan 16, 2025
3bf1486
Fix bug in Surface.normalize (#3270)
paulromano Jan 20, 2025
9170bf3
Update recognized thermal scattering materials for ENDF/B-VIII.1 (#3267)
paulromano Jan 20, 2025
560bd22
Tweak To Sphinx Install Documentation (#3271)
jtramm Jan 21, 2025
7089780
Add test for flux bias with weight windows in multigroup mode (#3202)
pshriwise Jan 24, 2025
f207d42
Adding methods to automatically apply results to existing Tally objec…
pshriwise Jan 24, 2025
7a18108
Adjust for secondary particle energy directly in heating scores (#3227)
pshriwise Jan 25, 2025
2bea7f3
Added missing documentation (#3275)
makeclean Jan 25, 2025
a8768b7
FW-CADIS Weight Window Generation with Random Ray (#3273)
jtramm Jan 28, 2025
8626ce5
Rely on std::filesystem for file_utils (#3042)
drewejohnson Jan 28, 2025
27f3afe
Fix the bug in the Material.from_xml_element function (#3278)
cn-skywalker Jan 28, 2025
860d739
Doc typo fix for rand ray mgxs (#3280)
shimwell Jan 28, 2025
d9c8e59
fix the bug in function differentiate_mats() (#3277)
cn-skywalker Jan 28, 2025
59c398b
Consolidate plotting capabilities in Model.plot (#3282)
paulromano Jan 31, 2025
6e0f156
Fix Tabular.from_xml_element for histogram case (#3287)
paulromano Feb 4, 2025
7e033b2
added terminal output showing compile options selected (#3291)
shimwell Feb 11, 2025
27ce2ce
Updates for building with NCrystal support (and fix CI) (#3274)
tkittel Feb 11, 2025
0439320
Random Ray Source Region Refactor (#3288)
jtramm Feb 11, 2025
e9ddf88
Correct normalization of thermal elastic in non standard ENDF-6 files…
marquezj Feb 12, 2025
18c3112
Adding tmate action to CI for debugging (#3138)
pshriwise Feb 12, 2025
78bf4cf
Add VTU export for Unstructured meshes (#3290)
rherrero-pf Feb 13, 2025
0ceb49b
Avoid error in CI from newlines in commit message (#3302)
paulromano Feb 14, 2025
02e225b
Avoid end of life ubuntu 20.04 in ReadTheDocs runner (#3301)
shimwell Feb 14, 2025
be4396c
adding non elastic MT number (#3285)
shimwell Feb 14, 2025
1158778
removed old command line scripts (#3300)
shimwell Feb 15, 2025
a5b26de
Random ray consistency changes (#3298)
yardasol Feb 17, 2025
81b7388
Raytrace plots (#2655)
gridley Feb 18, 2025
3011a14
Random Ray Explicit Void Treatment (#3299)
jtramm Feb 18, 2025
d96e686
Randomized Quasi-Monte Carlo Sampling in The Random Ray Method (#3268)
spasmann Feb 19, 2025
06a8852
Relax requirement on polar/azimuthal axis for wwinp conversion (#3307)
paulromano Feb 19, 2025
bcc2a4c
simplify mechanism to detect if geometry entity is DAG (#3269)
gridley Feb 19, 2025
aa4de82
remove gsl-lite dependency (#3225)
gridley Feb 20, 2025
7638661
Add nuclides_to_ignore argument on Model export methods (#3309)
paulromano Feb 20, 2025
2b788ea
Streamline use of CompositeSurface with SurfaceFilter (#3167)
zoeprieto Feb 21, 2025
d643ad0
Simulation of decay photons through the D1S method (#3235)
paulromano Feb 21, 2025
6ae2001
Enable overlap plotting from Python API (#3310)
pshriwise Feb 21, 2025
fefe825
Handle reflex angles in CylinderSector (#3303)
paulromano Feb 21, 2025
a2a5c2a
Add Versioning Support from `version.txt` (#3140)
ahnaf-tahmid-chowdhury Feb 21, 2025
5306676
Random Ray Void Accuracy Fix (#3316)
jtramm Feb 24, 2025
c794065
Fix access order issues after applying tally results from `Model.run`…
pshriwise Feb 24, 2025
cba132c
Random Ray Linear Source Stability Improvement (#3322)
jtramm Feb 24, 2025
244d630
Clarify effect of CMAKE_BUILD_TYPE in docs (#3321)
paulromano Feb 24, 2025
fed4b28
Mark a canonical URL for docs (#3324)
MicahGale Feb 25, 2025
1729b3b
Fixes for problems encountered with version determination (#3320)
paulromano Feb 25, 2025
27258c0
Random Ray Adjoint Source Logic Improvement (#3325)
jtramm Feb 25, 2025
865c80a
Reflect multigroup MicroXS in IndependentOperator docstrings (#3327)
yardasol Feb 25, 2025
e060534
Compute material volumes in mesh elements based on raytracing (#3129)
paulromano Feb 26, 2025
c26fde6
Adding per kg as unit option on material functions (#3329)
shimwell Feb 28, 2025
8fb48f1
Manually fix broken links (#3331)
rzehumat Feb 28, 2025
39ad29d
Fix reading of horizontal field of view for ray-traced plots (#3330)
paulromano Feb 28, 2025
e2557bb
Update pugixml to v1.15 (#3332)
paulromano Mar 1, 2025
239f7fe
Implement user-configurable random number stride (#3067)
ahman24 Mar 4, 2025
ced8929
NCrystal becomes runtime rather than buildtime dependency (#3328)
tkittel Mar 5, 2025
557b714
add continue feature for depletion (#3272)
lewisgross1296 Mar 6, 2025
e878933
Fix bug in Mesh::material_volumes for void materials (#3337)
paulromano Mar 6, 2025
e12c65d
openmc.Material.mix_materials() allows for **kwargs (#3336)
SteSeg Mar 6, 2025
e360cb4
added stable and unstable nuclides to the Chain object (#3338)
shimwell Mar 6, 2025
9bfce4e
Determine nuclides correctly for DAGMC models in d1s.get_radionuclide…
SteSeg Mar 6, 2025
e8c9134
Add option for survival biasing source normalization (#3070)
yrrepy Mar 7, 2025
9b5678b
Random Ray Source Region Mesh Subdivision (Cell-Under-Voxel Geometry)…
jtramm Mar 7, 2025
906548d
Release notes for 0.15.1 (#3340)
paulromano Mar 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .git_archival.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
commit: $Format:%H$
commit-date: $Format:%cI$
describe-name: $Format:%(describe:tags=true,match=*[0-9]*)$
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.git_archival.txt export-subst
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: Feature request
name: Feature or enhancement request
about: Suggest a new feature or enhancement to existing capabilities
title: ''
labels: ''
Expand Down
57 changes: 34 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,54 +25,43 @@ jobs:
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: ["3.10"]
python-version: ["3.11"]
mpi: [n, y]
omp: [n, y]
dagmc: [n]
ncrystal: [n]
libmesh: [n]
event: [n]
vectfit: [n]

include:
- python-version: "3.8"
omp: n
mpi: n
- python-version: "3.9"
omp: n
mpi: n
- python-version: "3.11"
- python-version: "3.12"
omp: n
mpi: n
- python-version: "3.12"
- python-version: "3.13"
omp: n
mpi: n
- dagmc: y
python-version: "3.10"
python-version: "3.11"
mpi: y
omp: y
- ncrystal: y
python-version: "3.10"
mpi: n
omp: n
- libmesh: y
python-version: "3.10"
python-version: "3.11"
mpi: y
omp: y
- libmesh: y
python-version: "3.10"
python-version: "3.11"
mpi: n
omp: y
- event: y
python-version: "3.10"
python-version: "3.11"
omp: y
mpi: n
- vectfit: y
python-version: "3.10"
python-version: "3.11"
omp: n
mpi: y
name: "Python ${{ matrix.python-version }} (omp=${{ matrix.omp }},
mpi=${{ matrix.mpi }}, dagmc=${{ matrix.dagmc }}, ncrystal=${{ matrix.ncrystal }},
mpi=${{ matrix.mpi }}, dagmc=${{ matrix.dagmc }},
libmesh=${{ matrix.libmesh }}, event=${{ matrix.event }}
vectfit=${{ matrix.vectfit }})"

Expand All @@ -81,7 +70,6 @@ jobs:
PHDF5: ${{ matrix.mpi }}
OMP: ${{ matrix.omp }}
DAGMC: ${{ matrix.dagmc }}
NCRYSTAL: ${{ matrix.ncrystal }}
EVENT: ${{ matrix.event }}
VECTFIT: ${{ matrix.vectfit }}
LIBMESH: ${{ matrix.libmesh }}
Expand All @@ -93,7 +81,10 @@ jobs:
RDMAV_FORK_SAFE: 1

steps:
- uses: actions/checkout@v4
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
Expand All @@ -102,9 +93,18 @@ jobs:

- name: Environment Variables
run: |
echo "DAGMC_ROOT=$HOME/DAGMC"
echo "OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml" >> $GITHUB_ENV
echo "OPENMC_ENDF_DATA=$HOME/endf-b-vii.1" >> $GITHUB_ENV
# get the sha of the last branch commit
# for push and workflow_dispatch events, use the current reference head
BRANCH_SHA=HEAD
# for a pull_request event, use the last reference of the parents of the merge commit
if [ "${{ github.event_name }}" == "pull_request" ]; then
BRANCH_SHA=$(git rev-list --parents -n 1 HEAD | rev | cut -d" " -f 1 | rev)
fi
COMMIT_MESSAGE=$(git log $BRANCH_SHA -1 --pretty=%B | tr '\n' ' ')
echo ${COMMIT_MESSAGE}
echo "COMMIT_MESSAGE=${COMMIT_MESSAGE}" >> $GITHUB_ENV

- name: Apt dependencies
shell: bash
Expand Down Expand Up @@ -137,6 +137,11 @@ jobs:
echo "$HOME/NJOY2016/build" >> $GITHUB_PATH
$GITHUB_WORKSPACE/tools/ci/gha-install.sh

- name: display-config
shell: bash
run: |
openmc -v

- name: cache-xs
uses: actions/cache@v4
with:
Expand All @@ -155,6 +160,12 @@ jobs:
CTEST_OUTPUT_ON_FAILURE=1 make test -C $GITHUB_WORKSPACE/build/
$GITHUB_WORKSPACE/tools/ci/gha-script.sh

- name: Setup tmate debug session
continue-on-error: true
if: ${{ contains(env.COMMIT_MESSAGE, '[gha-debug]') }}
uses: mxschmitt/action-tmate@v3
timeout-minutes: 10

- name: after_success
shell: bash
run: |
Expand Down
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
[submodule "vendor/pugixml"]
path = vendor/pugixml
url = https://github.com/zeux/pugixml.git
[submodule "vendor/gsl-lite"]
path = vendor/gsl-lite
url = https://github.com/martinmoene/gsl-lite.git
[submodule "vendor/xtensor"]
path = vendor/xtensor
url = https://github.com/xtensor-stack/xtensor.git
Expand Down
13 changes: 9 additions & 4 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
version: 2

build:
os: "ubuntu-20.04"
os: "ubuntu-24.04"
tools:
python: "3.9"

python: "3.12"
jobs:
post_checkout:
- git fetch --unshallow || true
sphinx:
configuration: docs/source/conf.py

python:
install:
- requirements: docs/requirements-rtd.txt
- method: pip
path: .
extra_requirements:
- docs
112 changes: 42 additions & 70 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
project(openmc C CXX)

# Set version numbers
set(OPENMC_VERSION_MAJOR 0)
set(OPENMC_VERSION_MINOR 14)
set(OPENMC_VERSION_RELEASE 1)
set(OPENMC_VERSION ${OPENMC_VERSION_MAJOR}.${OPENMC_VERSION_MINOR}.${OPENMC_VERSION_RELEASE})
# Set module path
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)

include(GetVersionFromGit)

# Output version information
message(STATUS "OpenMC version: ${OPENMC_VERSION}")
message(STATUS "OpenMC dev state: ${OPENMC_DEV_STATE}")
message(STATUS "OpenMC commit hash: ${OPENMC_COMMIT_HASH}")
message(STATUS "OpenMC commit count: ${OPENMC_COMMIT_COUNT}")

# Generate version.h
configure_file(include/openmc/version.h.in "${CMAKE_BINARY_DIR}/include/openmc/version.h" @ONLY)

# Setup output directories
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

# Set module path
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)

# Allow user to specify <project>_ROOT variables
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.12)
cmake_policy(SET CMP0074 NEW)
endif()

# Enable correct usage of CXX_EXTENSIONS
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.22)
cmake_policy(SET CMP0128 NEW)
Expand All @@ -38,9 +37,18 @@ option(OPENMC_USE_DAGMC "Enable support for DAGMC (CAD) geometry"
option(OPENMC_USE_LIBMESH "Enable support for libMesh unstructured mesh tallies" OFF)
option(OPENMC_USE_MPI "Enable MPI" OFF)
option(OPENMC_USE_MCPL "Enable MCPL" OFF)
option(OPENMC_USE_NCRYSTAL "Enable support for NCrystal scattering" OFF)
option(OPENMC_USE_UWUW "Enable UWUW" OFF)

message(STATUS "OPENMC_USE_OPENMP ${OPENMC_USE_OPENMP}")
message(STATUS "OPENMC_BUILD_TESTS ${OPENMC_BUILD_TESTS}")
message(STATUS "OPENMC_ENABLE_PROFILE ${OPENMC_ENABLE_PROFILE}")
message(STATUS "OPENMC_ENABLE_COVERAGE ${OPENMC_ENABLE_COVERAGE}")
message(STATUS "OPENMC_USE_DAGMC ${OPENMC_USE_DAGMC}")
message(STATUS "OPENMC_USE_LIBMESH ${OPENMC_USE_LIBMESH}")
message(STATUS "OPENMC_USE_MPI ${OPENMC_USE_MPI}")
message(STATUS "OPENMC_USE_MCPL ${OPENMC_USE_MCPL}")
message(STATUS "OPENMC_USE_UWUW ${OPENMC_USE_UWUW}")

# Warnings for deprecated options
foreach(OLD_OPT IN ITEMS "openmp" "profile" "coverage" "dagmc" "libmesh")
if(DEFINED ${OLD_OPT})
Expand Down Expand Up @@ -110,15 +118,6 @@ macro(find_package_write_status pkg)
endif()
endmacro()

#===============================================================================
# NCrystal Scattering Support
#===============================================================================

if(OPENMC_USE_NCRYSTAL)
find_package(NCrystal REQUIRED)
message(STATUS "Found NCrystal: ${NCrystal_DIR} (version ${NCrystal_VERSION})")
endif()

#===============================================================================
# DAGMC Geometry Support - need DAGMC/MOAB
#===============================================================================
Expand Down Expand Up @@ -226,8 +225,6 @@ endif()
#===============================================================================
# Update git submodules as needed
#===============================================================================

find_package(Git)
if(GIT_FOUND AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
option(GIT_SUBMODULE "Check submodules during build" ON)
if(GIT_SUBMODULE)
Expand Down Expand Up @@ -272,31 +269,13 @@ endif()
# xtensor header-only library
#===============================================================================

# CMake 3.13+ will complain about policy CMP0079 unless it is set explicitly
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.13)
cmake_policy(SET CMP0079 NEW)
endif()

find_package_write_status(xtensor)
if (NOT xtensor_FOUND)
add_subdirectory(vendor/xtl)
set(xtl_DIR ${CMAKE_CURRENT_BINARY_DIR}/vendor/xtl)
add_subdirectory(vendor/xtensor)
endif()

#===============================================================================
# GSL header-only library
#===============================================================================

find_package_write_status(gsl-lite)
if (NOT gsl-lite_FOUND)
add_subdirectory(vendor/gsl-lite)

# Make sure contract violations throw exceptions
target_compile_definitions(gsl-lite-v1 INTERFACE GSL_THROW_ON_CONTRACT_VIOLATION)
target_compile_definitions(gsl-lite-v1 INTERFACE gsl_CONFIG_ALLOWS_NONSTRICT_SPAN_COMPARISON=1)
endif()

#===============================================================================
# Catch2 library
#===============================================================================
Expand Down Expand Up @@ -346,6 +325,7 @@ list(APPEND libopenmc_SOURCES
src/boundary_condition.cpp
src/bremsstrahlung.cpp
src/cell.cpp
src/chain.cpp
src/cmfd_solver.cpp
src/cross_sections.cpp
src/dagmc.cpp
Expand Down Expand Up @@ -373,6 +353,7 @@ list(APPEND libopenmc_SOURCES
src/mgxs.cpp
src/mgxs_interface.cpp
src/ncrystal_interface.cpp
src/ncrystal_load.cpp
src/nuclide.cpp
src/output.cpp
src/particle.cpp
Expand All @@ -390,6 +371,9 @@ list(APPEND libopenmc_SOURCES
src/random_ray/random_ray_simulation.cpp
src/random_ray/random_ray.cpp
src/random_ray/flat_source_domain.cpp
src/random_ray/linear_source_domain.cpp
src/random_ray/moment_matrix.cpp
src/random_ray/source_region.cpp
src/reaction.cpp
src/reaction_product.cpp
src/scattdata.cpp
Expand Down Expand Up @@ -424,6 +408,8 @@ list(APPEND libopenmc_SOURCES
src/tallies/filter_meshborn.cpp
src/tallies/filter_meshsurface.cpp
src/tallies/filter_mu.cpp
src/tallies/filter_musurface.cpp
src/tallies/filter_parent_nuclide.cpp
src/tallies/filter_particle.cpp
src/tallies/filter_polar.cpp
src/tallies/filter_sph_harm.cpp
Expand Down Expand Up @@ -491,22 +477,10 @@ if (OPENMC_USE_MPI)
target_compile_definitions(libopenmc PUBLIC -DOPENMC_MPI)
endif()

# Set git SHA1 hash as a compile definition
if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE GIT_SHA1_SUCCESS
OUTPUT_VARIABLE GIT_SHA1
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
if(GIT_SHA1_SUCCESS EQUAL 0)
target_compile_definitions(libopenmc PRIVATE -DGIT_SHA1="${GIT_SHA1}")
endif()
endif()

# target_link_libraries treats any arguments starting with - but not -l as
# linker flags. Thus, we can pass both linker flags and libraries together.
target_link_libraries(libopenmc ${ldflags} ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES}
xtensor gsl::gsl-lite-v1 fmt::fmt ${CMAKE_DL_LIBS})
xtensor fmt::fmt ${CMAKE_DL_LIBS})

if(TARGET pugixml::pugixml)
target_link_libraries(libopenmc pugixml::pugixml)
Expand All @@ -517,6 +491,14 @@ endif()
if(OPENMC_USE_DAGMC)
target_compile_definitions(libopenmc PRIVATE DAGMC)
target_link_libraries(libopenmc dagmc-shared)

if(OPENMC_USE_UWUW)
target_compile_definitions(libopenmc PRIVATE OPENMC_UWUW)
target_link_libraries(libopenmc uwuw-shared)
endif()
elseif(OPENMC_USE_UWUW)
set(OPENMC_USE_UWUW OFF)
message(FATAL_ERROR "DAGMC must be enabled when UWUW is enabled.")
endif()

if(OPENMC_USE_LIBMESH)
Expand Down Expand Up @@ -548,16 +530,6 @@ if (OPENMC_USE_MCPL)
target_link_libraries(libopenmc MCPL::mcpl)
endif()

if(OPENMC_USE_NCRYSTAL)
target_compile_definitions(libopenmc PRIVATE NCRYSTAL)
target_link_libraries(libopenmc NCrystal::NCrystal)
endif()

if (OPENMC_USE_UWUW)
target_compile_definitions(libopenmc PRIVATE UWUW)
target_link_libraries(libopenmc uwuw-shared)
endif()

#===============================================================================
# Log build info that this executable can report later
#===============================================================================
Expand All @@ -580,9 +552,9 @@ target_compile_options(openmc PRIVATE ${cxxflags})
target_include_directories(openmc PRIVATE ${CMAKE_BINARY_DIR}/include)
target_link_libraries(openmc libopenmc)

# Ensure C++14 standard is used and turn off GNU extensions
target_compile_features(openmc PUBLIC cxx_std_14)
target_compile_features(libopenmc PUBLIC cxx_std_14)
# Ensure C++17 standard is used and turn off GNU extensions
target_compile_features(openmc PUBLIC cxx_std_17)
target_compile_features(libopenmc PUBLIC cxx_std_17)
set_target_properties(openmc libopenmc PROPERTIES CXX_EXTENSIONS OFF)

#===============================================================================
Expand Down
Loading