IModel< NV > Struct Template ReferenceΒΆ
|
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
|
Hyperbolic model seen behind a virtual interface (runtime dispatch). More...
#include <dynamic_model.hpp>
Inheritance diagram for pops::IModel< NV >:
Collaboration diagram for pops::IModel< NV >:Public Types | |
| using | State = StateVec< NV > |
Public Member Functions | |
| virtual | ~IModel ()=default |
| virtual State | flux (const State &u, const Aux &a, int dir) const =0 |
| virtual Real | max_wave_speed (const State &u, const Aux &a, int dir) const =0 |
| virtual State | source (const State &, const Aux &) const |
| Source term S(U, aux) (default: zero, model without source). | |
| virtual Real | elliptic_rhs (const State &) const |
| Elliptic right-hand side f(U) of the system Poisson (default: zero, no coupling). | |
| virtual State | to_primitive (const State &u) const |
| Conservative -> primitive conversion (P = M.to_primitive(U)). | |
| virtual State | to_conservative (const State &p) const |
| Primitive -> conservative conversion (U = M.to_conservative(P)). | |
| virtual int | n_aux () const |
| Width of the aux channel that the model READS (cf. | |
Static Public Attributes | |
| static constexpr int | n_vars = NV |
Detailed Description
struct pops::IModel< NV >
Hyperbolic model seen behind a virtual interface (runtime dispatch).
Member Typedef Documentation
◆ State
| using pops::IModel< NV >::State = StateVec<NV> |
Constructor & Destructor Documentation
◆ ~IModel()
|
virtualdefault |
Member Function Documentation
◆ elliptic_rhs()
|
inlinevirtual |
Elliptic right-hand side f(U) of the system Poisson (default: zero, no coupling).
◆ flux()
|
pure virtual |
Here is the caller graph for this function:◆ max_wave_speed()
|
pure virtual |
Here is the caller graph for this function:◆ n_aux()
|
inlinevirtual |
Width of the aux channel that the model READS (cf.
aux_comps). Lets the System runtime size and marshal the right number of components to the host path (B_z...). Default: base contract (phi/grad), for a model that does not read any extra field.
Reimplemented in pops::ModelAdapter< M >.
◆ source()
|
inlinevirtual |
Source term S(U, aux) (default: zero, model without source).
Here is the caller graph for this function:◆ to_conservative()
|
inlinevirtual |
Primitive -> conservative conversion (U = M.to_conservative(P)).
Counterpart of to_primitive; used by System::set_primitive_state (init from primitives). Identity by default.
◆ to_primitive()
|
inlinevirtual |
Conservative -> primitive conversion (P = M.to_primitive(U)).
The DSL/CompositeModel exposes it (hyperbolic brick); a model without conversion (pure scalar) leaves it as the IDENTITY (prim == cons), which is exact for scalar transport. Used by host marshaling of System::get_primitive_state. Prim shares the same NV width as State (cf. concept).
Here is the caller graph for this function:Member Data Documentation
◆ n_vars
|
staticconstexpr |
The documentation for this struct was generated from the following file:
- include/pops/runtime/dynamic/dynamic_model.hpp
Generated by