9#include <nlohmann/json.hpp>
37 static const int dim = 2;
48 using TVec = Eigen::Matrix<real, dim, 1>;
49 using TMat = Eigen::Matrix<real, dim, dim>;
50 using TU = Eigen::Matrix<real, nVarsFixed, 1>;
51 using TDiffU = Eigen::Matrix<real, dim, nVarsFixed>;
56 : mesh(std::move(mesh_)), vfv(std::move(vfv_)), settings(settings_)
58 vfv->BuildUGrad(uGradBuf, nVars);
66 return [
this, t](
const auto &u,
const auto &uMean,
index iCell,
index iFace,
int iG,
69 static const auto Seq012 = Eigen::seq(Eigen::fix<0>, Eigen::fix<dim - 1>);
71 TVec normV = norm(Seq012);
75 normV, Geom::NormBuildLocalBaseV<dim>(normV),
107 const EvaluateRHSOptions &options = EvaluateRHSOptions{});
113 bool putIntoNew =
false,
114 bool recordInc =
false,
115 bool uRecIsZero =
false)
117 vfv->DoReconstructionIter<
nVarsFixed>(uRec, uRecNew, u,
119 putIntoNew, recordInc, uRecIsZero);
pybind11-style configuration registration with macro-based field declaration and namespace-scoped tag...
#define DNDS_FIELD(name_, desc_,...)
Register a field inside a DNDS_DECLARE_CONFIG body.
Core type aliases, constants, and metaprogramming utilities for the DNDS framework.
Primary solver state container: an ArrayEigenMatrix pair with MPI-collective vector-space operations.
Eigen::Matrix< real, dim, dim > TMat
void EvaluateRHS(tUDof< nVarsFixed > &rhs, tUDof< nVarsFixed > &u, tURec< nVarsFixed > &uRec, real t, const EvaluateRHSOptions &options=EvaluateRHSOptions{})
static const int nVarsFixed
Eigen::Matrix< real, nVarsFixed, 1 > TU
ModelSettings & get_settings()
void DoReconstructionIter(tURec< nVarsFixed > &uRec, tURec< nVarsFixed > &uRecNew, tUDof< nVarsFixed > &u, real t, bool putIntoNew=false, bool recordInc=false, bool uRecIsZero=false)
typename tvfv::TFBoundary< nVarsFixed > Tvfv_FBoundary
ModelEvaluator(decltype(mesh) mesh_, decltype(vfv) vfv_, const ModelSettings &settings_, int nVars)
Eigen::Matrix< real, dim, nVarsFixed > TDiffU
Tvfv_FBoundary get_FBoundary(real t)
Eigen::Matrix< real, dim, 1 > TVec
TU generateBoundaryValue(TU &ULxy, const TU &ULMeanXy, index iCell, index iFace, int iG, const TVec &uNorm, const TMat &normBase, const Geom::tPoint &pPhysics, real t, Geom::t_index btype, bool fixUL=false, int geomMode=0, int linMode=0)
The VR class that provides any information needed in high-order CFV.
RangeTag range(double min)
Create a minimum-only range constraint.
DNDS_CONSTANT const rowsize DynamicSize
Template parameter flag: "row width is set at runtime but uniform".
int64_t index
Global row / DOF index type (signed 64-bit; handles multi-billion-cell meshes).
std::shared_ptr< T > ssp
Shortened alias for std::shared_ptr used pervasively in DNDSR.
double real
Canonical floating-point scalar used throughout DNDSR (double precision).
DNDS_DECLARE_CONFIG(ModelSettings)