Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
da5d9da
First commit
May 20, 2026
feeafe4
ImplicitSurface, TPMS and ImplicitFunction implementation.
May 23, 2026
9b1fdba
Removed dead code in rmul.\nAdd docstring to Cached to document corre…
May 26, 2026
74e5281
*** Major commit Implicit Functions
Jun 1, 2026
edca619
Added implicit settings
Jun 2, 2026
59185a5
Added regression tests and completed unit tests on settings, surface …
Jun 5, 2026
ff79bd6
Cache: lazy gradient to avoid solid ray plot error. Settings: check i…
Jun 5, 2026
8fe28cc
Update sphere classic (no need implicit solver settings)
Jun 5, 2026
9ca5936
Update new regression tests for more diversified functions
Jun 5, 2026
82cb717
Added Min Max nodes
Jun 5, 2026
99793b9
Wrote documentation.
Jun 6, 2026
0ae47fc
Updated Cache to improve performance.
Jun 11, 2026
3217c11
Added relevant include to implicit.h for compiuler robustness.
Jun 11, 2026
6f4c9cd
fixed redudndant surface issue
Jun 17, 2026
e298127
***Last commit v1, test update, surface compatibility with array of p…
Jul 10, 2026
d92d2c3
Merge branch 'develop' into ImplicitFunction
Jul 10, 2026
4b77cba
Update solver parameter
Jul 10, 2026
bbc6353
add clang-format to install README
Jul 10, 2026
1dd9fda
change install instructions to README
Jul 11, 2026
d9f382d
manual clang-format on src
Jul 11, 2026
9986a12
Updated test and README.md to pass CI tests
Jul 11, 2026
2fa1976
Renamed regression tests for more clarity
Jul 11, 2026
6125408
updated Diamond Test to match paper example
Jul 11, 2026
724039f
Removed redundant lines in TPMS helper class
Jul 28, 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
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,8 @@ list(APPEND libopenmc_SOURCES
src/geometry_aux.cpp
src/hdf5_interface.cpp
src/ifp.cpp
src/implicit.cpp
src/implicit_solvers.cpp
src/initialize.cpp
src/lattice.cpp
src/material.cpp
Expand Down
35 changes: 35 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,38 @@
# For Implicit Function development
This branch aims to develop a framework to create any surface defined by an implicit function. A dedicated solver and architecture is proposed.

Developer cross sections : https://anl.box.com/shared/static/teaup95cqv8s9nn56hfn7ku8mmelr95p.xz

## Quick install

```sh
conda create -n openmc-IF compilers=1.9.0 cmake hdf5 python libpng
git clone --recurse-submodules https://github.com/pferney05/openmc-dev.git
cd openmc
git checkout ImplicitFunction
mkdir build
cd build
cmake -DOPENMC_ENABLE_STRICT_FP=on -DOPENMC_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX ..
make -j 12
make install
cd ..
python -m pip install .[test]
```
To get git-clang-format:
```sh
conda install clang-format=18.1.8 wget
curl -L \
https://raw.githubusercontent.com/llvm/llvm-project/llvmorg-18.1.8/clang/tools/clang-format/git-clang-format \
-o "$CONDA_PREFIX/bin/git-clang-format"
chmod +x "$CONDA_PREFIX/bin/git-clang-format"
./tools/dev/install-commit-hooks.sh
```

## Local Notes:
- TPMS: max event particles, to be checked
- TPMS: Particle could not be located after crossing a boundary of lattice
- SolidRayTracing, aliasing effect, to be checked

# OpenMC Monte Carlo Particle Transport Code

[![License](https://img.shields.io/badge/license-MIT-green)](https://docs.openmc.org/en/latest/license.html)
Expand Down
11 changes: 11 additions & 0 deletions docs/source/pythonapi/base.rst
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ Building geometry
openmc.XTorus
openmc.YTorus
openmc.ZTorus
openmc.ImplicitSurface
openmc.TPMS
openmc.Halfspace
openmc.Intersection
openmc.Union
Expand All @@ -106,6 +108,15 @@ Many of the above classes are derived from several abstract classes:
openmc.Region
openmc.Lattice

Implicit surfaces are defined with a

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

openmc.ImplicitFunction

.. _pythonapi_tallies:

Constructing Tallies
Expand Down
32 changes: 32 additions & 0 deletions docs/source/pythonapi/implicit.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
.. _pythonapi_implicit:

--------------------------------------------
:mod:`openmc.implicit` -- Implicit Functions
--------------------------------------------

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

openmc.implicit.ImplicitFunction
openmc.implicit.X
openmc.implicit.Y
openmc.implicit.Z
openmc.implicit.Constant
openmc.implicit.Add
openmc.implicit.Sub
openmc.implicit.Neg
openmc.implicit.Scale
openmc.implicit.Mul
openmc.implicit.Div
openmc.implicit.Pow
openmc.implicit.Sin
openmc.implicit.Cos
openmc.implicit.Sqrt
openmc.implicit.Exp
openmc.implicit.Log
openmc.implicit.Abs
openmc.implicit.Min
openmc.implicit.Max
openmc.implicit.Cached
1 change: 1 addition & 0 deletions docs/source/pythonapi/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ or class.
model
examples
deplete
implicit
mgxs
stats
data
Expand Down
Loading