2.0 KiB
MeanField physics extension example
This directory is a small, isolated example for physicists who want to extend MeanField without first learning its internal block-matrix machinery.
Start in this order:
- Read
ideal_gas_radiation.cppm. It implements a monatomic ideal gas plus equilibrium radiation using the public EOS relation protocol. - Read
rotating_stellar_model.cppm. It composes that EOS with the existing isobaric surface, fixed-total-mass invariant, and fixed-angular-momentum invariant. - Read and run
demo.cpp. - Read the tests. They show which claims should be compile-time contracts and which claims require physical or numerical checks.
- Use
manual/physics_developer_manual.pdfas the detailed guide. Its LaTeX source is beside it.
The important boundary
makeRotatingStellarModel(...) produces a valid, strongly typed stellar-model
specification. The current equilibrium numerical core is still barotropic: it
expects density to be closed by specific enthalpy alone. An ideal-gas plus
radiation EOS depends independently on density and temperature, so a complete
thermal equilibrium solve also needs a temperature or entropy field and its
governing equation.
The example therefore proves at compile time that model composition succeeds and that the present discretizer rejects this model. It does not disguise the thermal EOS as a polytrope or claim that a missing energy equation exists.
Build only this example
From the repository root, configure as usual, then build only these targets:
cmake --build cmake-build-profile-homebrew-llvm \
--target extension_example_demo extension_example_tests
Run only the extension tests:
./cmake-build-profile-homebrew-llvm/extension_example/extension_example_tests
Compile a fresh manual into the build directory:
cmake --build cmake-build-profile-homebrew-llvm \
--target extension_example_manual
No source under libmeanfield/ belongs to this example, and the extension test
executable is separate from the main MeanField regression suite.