Application frontend¶
The frontend turns JSON or TOML settings into a simulation object graph. Read the application pipeline and the minimal custom application tutorial before using these ownership types directly.
pfc::ui::App¶
-
template<class ConcreteModel>
class App JSON-driven MPI application entry point for a concrete physics model.
Public Functions
-
inline void set_field_modifier_catalog(FieldModifierCatalog catalog)
Use
catalogwhen wiring ICs/BCs from JSON instead of the global default catalog.Must be called before
main()if used (typically frommainafter constructing the app, or from a thin wrapper).
-
inline void set_field_modifier_catalog(FieldModifierCatalog catalog)
pfc::ui::SpectralCpuStack¶
-
class SpectralCpuStack
Non-copyable, non-movable holder for the CPU spectral pipeline from JSON.
Mirrors the construction order used by the UI session: world → decomposition → HeFFTe CPU FFT → time. The MPI communicator is stored for downstream
Simulatorwiring (same comm passed into FFT creation).Public Functions
-
inline explicit SpectralCpuStack(const nlohmann::json &settings, MPI_Comm comm, int rank_id, int num_ranks)
- Parameters:
settings – Parsed application JSON (world, time, plan_options, …)
comm – MPI communicator for FFT creation and later simulator context
rank_id – This rank index for FFT creation
num_ranks – Number of ranks for decomposition
-
inline MPI_Comm mpi_comm() const noexcept
Communicator passed at construction (FFT + simulator)
-
inline explicit SpectralCpuStack(const nlohmann::json &settings, MPI_Comm comm, int rank_id, int num_ranks)
pfc::ui::SpectralSimulationSession¶
-
template<class ConcreteModel>
class SpectralSimulationSession Heap-owned spectral (HeFFTe CPU FFT) simulation stack from settings.
- Template Parameters:
ConcreteModel – Physics model type (e.g. from an application target)
Public Functions
-
inline explicit SpectralSimulationSession(const nlohmann::json &settings, MPI_Comm comm, int rank_id, int num_ranks)
Build world, decomposition, FFT, time, model, and simulator.
- Parameters:
settings – Parsed application JSON (world, time, plan_options, …)
comm – MPI communicator for FFT and simulator modifier context
rank_id – This rank index for FFT creation
num_ranks – Number of ranks for decomposition
-
inline void wire_simulator_from_settings(const nlohmann::json &settings, int mpi_rank, bool rank0, const FieldModifierCatalog &modifier_catalog, const ResultsWriterCatalog &writer_catalog)
Register writers/modifiers and apply optional
"simulator"JSON keys.Uses the same MPI communicator as FFT construction (
SpectralCpuStack).- Parameters:
modifier_catalog – Factories for JSON
typestrings.writer_catalog – Factories for JSON
fields[].writer(e.g.default_results_writer_catalog()for built-in writers).
-
inline void wire_simulator_from_settings(const nlohmann::json &settings, const JsonWiringSession &session)
Same as the overload taking
(mpi_rank, rank0, catalogs); uses the stack communicator with rank flags fromsession.ctx