|
RadCluster
Graph-based cluster dynamics for irradiated materials
|
Adding a host material is a declaration, not a change of the solver. The Abstract core (Layer 1) never derives a rate: a host registers its size-resolved rate kernels as precomputed arrays.
A new material needs a folder materials/<name> on both sides of the code:
radcluster_code/py_utils/materials/<name>/ radcluster_code/cpp_utils/materials/<name>/
On the Python side the material:
On the C++ side the material supplies the right-hand-side callbacks. The solver driver reaches them only through the function pointer UserData::rhs_fn, so that the files in cpp_utils/core have no compile-time dependency on the kernel arithmetic of a host.
New physics follows the same order for every material:
The EUROFER-97 declaration is the worked example. See EUROFER-97.