include/pops/runtime/builders/block/amr_block_seam.hpp Source FileΒΆ
|
adc_cpp 0.3.0
Model-free C++23 core for coupled hyperbolic-elliptic systems on adaptive (AMR) meshes, with MPI and GPU (Kokkos) backends
|
amr_block_seam.hpp
Go to the documentation of this file.
4#include <pops/runtime/builders/compiled/amr_dsl_block.hpp> // dispatch_amr_block / dispatch_amr_compiled + AmrBuildParams
6#include <pops/runtime/builders/factory/model_factory.hpp> // dispatch_model_for + compiled bricks + ModelSpec
98AmrRuntimeBlock build_amr_block_for(TR tr, const AmrBlockBuildArgs& a, const SharedAmrLayout& S) {
118AmrCompiledHooks build_amr_compiled_for(TR tr, const ModelSpec& spec, const std::string& limiter,
159// Per-transport seam functions (defined in python/amr_block_<transport>.cpp / amr_compiled_<transport>.cpp).
163AmrRuntimeBlock build_amr_block_isothermal(const AmrBlockBuildArgs& a, const SharedAmrLayout& S);
164AmrRuntimeBlock build_amr_block_compressible(const AmrBlockBuildArgs& a, const SharedAmrLayout& S);
168AmrCompiledHooks build_amr_compiled_isothermal(const ModelSpec& spec, const std::string& limiter,
171AmrCompiledHooks build_amr_compiled_compressible(const ModelSpec& spec, const std::string& limiter,
175// ADC-359 per-flux compressible seam leaves: each defined in its own .cpp (build_amr_block_for_flux /
176// build_amr_compiled_for_flux pinned to one flux), so they compile in parallel. The thin dispatchers
177// build_amr_block_compressible / build_amr_compiled_compressible route to them by the riemann string.
add_compiled_model on the AmrSystem side: wires a COMPILED model (a CompositeModel,...
AMR multi-block engine at RUNTIME (type-erased registry keyed by name).
Assemble a CompositeModel from a ModelSpec (bricks + parameters).
Definition cluster.hpp:37
AmrRuntimeBlock build_amr_block_compressible(const AmrBlockBuildArgs &a, const SharedAmrLayout &S)
AmrRuntimeBlock build_amr_block_for(TR tr, const AmrBlockBuildArgs &a, const SharedAmrLayout &S)
VERBATIM build_multi visitor body with the transport pinned: resolve the partial IMEX mask against th...
Definition amr_block_seam.hpp:98
AmrRuntimeBlock build_amr_block_compressible_roe(const AmrBlockBuildArgs &a, const SharedAmrLayout &S)
AmrCompiledHooks build_amr_compiled_isothermal(const ModelSpec &spec, const std::string &limiter, const std::string &riemann, const AmrBuildParams &bp)
AmrCompiledHooks build_amr_compiled_compressible_hll(const ModelSpec &spec, const std::string &limiter, const AmrBuildParams &bp)
AmrCompiledHooks build_amr_compiled_compressible(const ModelSpec &spec, const std::string &limiter, const std::string &riemann, const AmrBuildParams &bp)
AmrCompiledHooks build_amr_compiled_compressible_rusanov(const ModelSpec &spec, const std::string &limiter, const AmrBuildParams &bp)
AmrCompiledHooks dispatch_amr_compiled(const Model &m, const std::string &lim, const std::string &riem, const AmrBuildParams &bp)
Dispatch of the spatial scheme (limiter x Riemann flux) -> build_amr_compiled.
Definition amr_dsl_block.hpp:953
AmrCompiledHooks build_amr_compiled_for_flux(TR tr, const ModelSpec &spec, const std::string &limiter, const AmrBuildParams &bp, DispatchFn dispatch)
ADC-359 flux subdivision: like build_amr_compiled_for, with the riemann dispatch supplied by dispatch...
Definition amr_block_seam.hpp:151
AmrRuntimeBlock build_amr_block_isothermal(const AmrBlockBuildArgs &a, const SharedAmrLayout &S)
AmrCompiledHooks build_amr_compiled_exb(const ModelSpec &spec, const std::string &limiter, const std::string &riemann, const AmrBuildParams &bp)
POPS_COLD_FN void dispatch_model_for(const ModelSpec &m, TR tr, Visitor &&visitor)
Same as dispatch_model but with the transport brick ALREADY chosen (tr).
Definition model_factory.hpp:196
AmrCompiledHooks build_amr_compiled_compressible_roe(const ModelSpec &spec, const std::string &limiter, const AmrBuildParams &bp)
AmrRuntimeBlock dispatch_amr_block(const Model &m, const std::string &lim, const std::string &riem, const SharedAmrLayout &S, const std::string &name, const std::vector< double > &density, bool has_density, double gamma, int substeps, bool recon_prim, bool imex, int stride=1, const std::vector< int > &implicit_components={}, const NewtonOptions &nopts={}, const std::vector< double > *state=nullptr, bool newton_diagnostics=false, AmrTimeMethod time_method=AmrTimeMethod::kEuler, double pos_floor=0.0)
Dispatch of the spatial scheme (limiter x Riemann flux) -> build_amr_block.
Definition amr_dsl_block.hpp:825
AmrCompiledHooks build_amr_compiled_compressible_hllc(const ModelSpec &spec, const std::string &limiter, const AmrBuildParams &bp)
std::vector< int > resolve_implicit_components_amr(const std::string &block, const VariableSet &cons, const std::vector< std::string > &names, const std::vector< std::string > &roles)
AMR partial-IMEX-mask resolution, moved out of amr_system.cpp's anonymous namespace (ADC-335) so the ...
Definition amr_block_seam.hpp:30
AmrRuntimeBlock build_amr_block_exb(const AmrBlockBuildArgs &a, const SharedAmrLayout &S)
AmrRuntimeBlock build_amr_block_for_flux(TR tr, const AmrBlockBuildArgs &a, const SharedAmrLayout &S, DispatchFn dispatch)
ADC-359 flux subdivision (compressible only): like build_amr_block_for, but the riemann dispatch is s...
Definition amr_block_seam.hpp:132
AmrRuntimeBlock build_amr_block_compressible_hllc(const AmrBlockBuildArgs &a, const SharedAmrLayout &S)
AmrCompiledHooks build_amr_compiled_for(TR tr, const ModelSpec &spec, const std::string &limiter, const std::string &riemann, const AmrBuildParams &bp)
VERBATIM single-block visitor body with the transport pinned: produce the type-erased AmrCompiledHook...
Definition amr_block_seam.hpp:118
AmrRuntimeBlock build_amr_block_compressible_hll(const AmrBlockBuildArgs &a, const SharedAmrLayout &S)
AmrRuntimeBlock build_amr_block_compressible_rusanov(const AmrBlockBuildArgs &a, const SharedAmrLayout &S)
@ kSsprk3
@ kEuler
@ Custom
VariableRole role_from_name(const std::string &s)
Forward declaration: VariableSet::index_of(const std::string&) resolves a canonical role NAME via rol...
Definition variables.hpp:130
Frozen parameters passed to the deferred build of the compiled path (add_compiled_model).
Definition amr_system.hpp:84
Type-erased closures of a compiled AMR block, produced by amr_dsl_block::build_amr_compiled and insta...
Definition amr_system.hpp:153
Type-erased closures of ONE AMR block, placed on the shared hierarchy.
Definition amr_runtime.hpp:98
Options of the local Newton of the implicit source (backward-Euler).
Definition implicit_stepper.hpp:114
A model's variable set: kind (cons/prim), names, size, canonical roles (optional, parallel to names; ...
Definition variables.hpp:58
int index_of(VariableRole role) const
Index of the component carrying role (first occurrence), -1 if absent.
Definition variables.hpp:67
Non-model inputs of a MULTI-block AMR build (the fields the build_multi visitor read off the BlockSpe...
Definition amr_block_seam.hpp:74
const std::vector< double > * state
Definition amr_block_seam.hpp:89
bool newton_diagnostics
Definition amr_block_seam.hpp:90
std::vector< std::string > implicit_roles
Definition amr_block_seam.hpp:87
std::vector< double > density
Definition amr_block_seam.hpp:79
std::vector< std::string > implicit_vars
Definition amr_block_seam.hpp:86
Descriptor of a model's variables (Vars).
Generated by