EulerP Module

Alternative evaluator with CUDA GPU support.

Namespace Overview

namespace EulerP

Typedefs

using TU = Eigen::Vector<real, nVarsFlow>
using TDiffU = Eigen::Matrix<real, 3, nVarsFlow>
using TUFull = Eigen::Vector<real, Eigen::Dynamic>
using TDiffUFull = Eigen::Matrix<real, 3, Eigen::Dynamic>
using TUFullMap = Eigen::Map<TUFull>
using TDiffUFullMap = Eigen::Map<TDiffUFull>
using TUDof = ArrayDof<nVarsFlow, 1>
using TUGrad = ArrayDof<3, nVarsFlow>
using TUScalar = ArrayDof<1, 1>
using TUScalarGrad = ArrayDof<3, 1>
using TUScalar2 = ArrayDof<2, 1>
using TUVec = ArrayDof<3, 1>
using TUVecGrad = ArrayDof<3, 3>
using TFiniteVolume = CFV::FiniteVolume

Enums

enum class BCType : uint8_t

Values:

enumerator Unknown
enumerator Far
enumerator Wall
enumerator WallInvis
enumerator WallIsothermal
enumerator Out
enumerator OutP
enumerator In
enumerator InPsTs
enumerator Sym
enumerator Special

Functions

template<class TU> DNDS_DEVICE_CALLABLE DNDS_FORCEINLINE auto U123 (TU &&v)
template<class TU> DNDS_DEVICE_CALLABLE DNDS_FORCEINLINE auto U012 (TU &&v)
inline DNDS_DEVICE_CALLABLE void RoeEigenValueFixer (real aL, real aR, real vnL, real vnR, real dLambda, real fixScale, real &lam0, real &lam123, real &lam4)
template<DeviceBackend B, class TUL, class TUR, class TULPrim, class TURPrim> DNDS_DEVICE_CALLABLE void RoeAverageNS (TUL &&UL, TUR &&UR, TULPrim &&ULPrim, TURPrim &&URPrim, int nVars, real pL, real pR, PhysicsDeviceView< B > &phy, Geom::tPoint &veloRoe, real &vsqrRoe, real &HRoe, real &rhoRoe, real &aSqrRoe)
template<DeviceBackend B> DNDS_DEVICE_CALLABLE void RoeFluxFlow (const TU &UL, const TU &UR, real pL, real pR, const Geom::tPoint &veloRoe, real vsqrRoe, real vgn, const Geom::tPoint &n, real asqrRoe, real aRoe, real HRoe, PhysicsDeviceView< B > &phy, real lam0, real lam123, real lam4, TU &F)
DNDS_DEFINE_ENUM_JSON (BCType, { {BCType::Unknown, nullptr}, {BCType::Far, "Far"}, {BCType::Wall, "Wall"}, {BCType::WallInvis, "WallInvis"}, {BCType::WallIsothermal, "WallIsothermal"}, {BCType::Out, "Out"}, {BCType::OutP, "OutP"}, {BCType::In, "In"}, {BCType::InPsTs, "InPsTs"}, {BCType::Sym, "Sym"}, {BCType::Special, "Special"}, }) template< DeviceBackend B > using BCStorageVecDeviceView
inline void pybind11_BCType_define(py::module_ &m)
inline void pybind11_BCInput_define(py::module_ &m)
inline void pybind11_BC_define(py::module_ &m)
inline void pybind11_BCHandler_define(py::module_ &m)
inline void pybind11_BC_bind(py::module_ &m)
inline void pybind11_Evaluator_define(py::module_ &m)
inline void pybind11_Evaluator_bind(py::module_ &m)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void RecGradient_GGRec_Kernel_BndVal (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::RecGradient_Arg::Portable &arg, index iBnd, index iBndEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void RecGradient_GGRec_Kernel_BndVal< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::RecGradient_Arg::Portable &arg, index iBnd, index iBndEnd, int nVars, int nVarsScalar)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void RecGradient_GGRec_Kernel_GG (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void RecGradient_GGRec_Kernel_GG< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void RecGradient_BarthLimiter_Kernel_FlowPart (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void RecGradient_BarthLimiter_Kernel_FlowPart< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void RecGradient_BarthLimiter_Kernel_ScalarPart (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void RecGradient_BarthLimiter_Kernel_ScalarPart< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void Cons2PrimMu_Kernel (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::Cons2PrimMu_Arg::Portable &arg, index iPt, index iPtEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void Cons2PrimMu_Kernel< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::Cons2PrimMu_Arg::Portable &arg, index iPt, index iPtEnd, int nVars, int nVarsScalar)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void Cons2Prim_Kernel (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::Cons2Prim_Arg::Portable &arg, index iPt, index iPtEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void Cons2Prim_Kernel< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::Cons2Prim_Arg::Portable &arg, index iPt, index iPtEnd, int nVars, int nVarsScalar)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void EstEigenDt_GetFaceLam_Kernel (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::EstEigenDt_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void EstEigenDt_GetFaceLam_Kernel< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::EstEigenDt_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void EstEigenDt_FaceLam2CellDt_Kernel (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::EstEigenDt_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void EstEigenDt_FaceLam2CellDt_Kernel< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::EstEigenDt_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void RecFace2nd_Kernel (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::RecFace2nd_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void RecFace2nd_Kernel< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::RecFace2nd_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void Flux2nd_Kernel_FluxFace (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::Flux2nd_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void Flux2nd_Kernel_FluxFace< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::Flux2nd_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
template<DeviceBackend B = DeviceBackend::Host> DNDS_DEVICE void Flux2nd_Kernel_Face2Cell (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::Flux2nd_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
template DNDS_DEVICE void Flux2nd_Kernel_Face2Cell< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::Flux2nd_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
template<typename TU, typename TF, class TVecN> inline DNDS_DEVICE_CALLABLE void GasInviscidFlux_XY (TU &&U, int nVars, real vn, real vgn, TVecN &&n, real p, TF &F)
inline void pybind11_Physics_bind(py::module_ &m)

Variables

static constexpr int nVarsFlow = 5
static constexpr int I4 = 4
static constexpr DeviceBackend B = DeviceBackend::Host
class BC

Public Types

template<DeviceBackend B>
using t_deviceView = BC_DeviceView<B>

Public Functions

inline Geom::t_index getId() const
inline void setId(Geom::t_index n_id)
inline BCType getType() const
inline void setType(BCType n_type)
inline int32_t getNValues() const
inline real value(int i) const
inline void setValues(const std::vector<real> &v)
inline auto getValues() const
inline void to_host()
inline void to_device(DeviceBackend B)
inline DeviceBackend device()
template<DeviceBackend B>
inline t_deviceView<B> deviceView()
template<DeviceBackend B>
class BC_DeviceView

Public Functions

inline DNDS_DEVICE_CALLABLE BC_DeviceView(BCStorageVecDeviceView<B> n_values, Geom::t_index n_id, BCType n_type)
inline DNDS_DEVICE_CALLABLE Geom::t_index getId () const
inline DNDS_DEVICE_CALLABLE BCType getType () const
inline DNDS_DEVICE_CALLABLE int32_t getNValues () const
inline DNDS_DEVICE_CALLABLE real value (int32_t i) const
template<class tU, class tUOut, class tx, class tn> inline DNDS_DEVICE_CALLABLE void apply (tU &&U, tUOut &&UOut, int32_t uSiz, tx &&x, tn &&n, PhysicsDeviceView< B > &phy)
template<DeviceBackend B, BCType T>
struct BCFunc_Impl
template<DeviceBackend B>
struct BCFunc_Impl<B, BCType::Far>
template<DeviceBackend B>
struct BCFunc_Impl<B, BCType::In>
template<DeviceBackend B>
struct BCFunc_Impl<B, BCType::InPsTs>
template<DeviceBackend B>
struct BCFunc_Impl<B, BCType::Out>
template<DeviceBackend B>
struct BCFunc_Impl<B, BCType::OutP>
template<DeviceBackend B>
struct BCFunc_Impl<B, BCType::Special>
template<DeviceBackend B>
struct BCFunc_Impl<B, BCType::Sym>
template<DeviceBackend B>
struct BCFunc_Impl<B, BCType::Wall>
template<DeviceBackend B>
struct BCFunc_Impl<B, BCType::WallInvis>
template<DeviceBackend B>
struct BCFunc_Impl<B, BCType::WallIsothermal>
class BCHandler

Public Functions

inline BCHandler(const std::vector<BCInput> &bc_inputs, Geom::AutoAppendName2ID &name2id)
inline BC &id2bc(Geom::t_index id)
inline void to_host()
inline void to_device(DeviceBackend B)
inline DeviceBackend device()
template<DeviceBackend B>
inline t_deviceView<B> deviceView()
template<DeviceBackend B>
struct t_deviceView

Public Functions

t_deviceView(t_deviceView &&R) noexcept = default

Public Members

host_device_vector<BC_DeviceView<B>> bcs_device_view
BCHandlerDeviceView<B> view
template<DeviceBackend B>
class BCHandlerDeviceView

Public Functions

inline DNDS_DEVICE_CALLABLE BCHandlerDeviceView(vector_DeviceView<B, BC_DeviceView<B>, int32_t> n_bcs)
inline DNDS_DEVICE_CALLABLE BC_DeviceView< B > & id2bc (Geom::t_index id)
struct BCInput

Public Members

BCType type
std::string name
std::vector<real> value
class Evaluator

Public Functions

inline const t_jsonconfig &get_config()
template<typename Tc>
inline void set_config(Tc &&config_in)
inline void BuildFaceBufferDof(TUDof &u)
inline void BuildFaceBufferDofScalar(TUScalar &u)
inline void PrepareFaceBuffer(int nVarsScalar)
inline Evaluator(t_fv n_fv, t_bcHandler n_bcHandler, t_physics n_physics)
void PrintDataVTKHDF(std::string fname, std::string series_name, std::vector<ssp<TUScalar>> &arrCellCentScalar, const std::vector<std::string> &arrCellCentScalar_names_in, std::vector<ssp<TUVec>> &arrCellCentVec, const std::vector<std::string> &arrCellCentVec_names_in, std::vector<ssp<TUScalar>> &arrNodeScalar, const std::vector<std::string> &arrNodeScalar_names_in, std::vector<ssp<TUVec>> &arrNodeVec, const std::vector<std::string> &arrNodeVec_names_in, ssp<TUDof> uPrimCell, ssp<TUDof> uPrimNode, double t)
inline DeviceBackend device()
template<DeviceBackend B>
inline t_deviceView<B> deviceView()
inline void to_host()
inline void to_device(DeviceBackend B)
template<class TPair>
inline void checkValidUDof(const ssp<TPair> &u, const std::string &name = "unknown", int varloc = 0, bool includeSon = true, DeviceBackend B = DeviceBackend::Unknown, bool optional = false)
void RecGradient(RecGradient_Arg &arg)
void Cons2PrimMu(Cons2PrimMu_Arg &arg)
void Cons2Prim(Cons2Prim_Arg &arg)
void EstEigenDt(EstEigenDt_Arg &arg)
void RecFace2nd(RecFace2nd_Arg &arg)
void Flux2nd(Flux2nd_Arg &arg)

Public Members

t_fv fv
t_bcHandler bcHandler
t_physics physics
t_config config
TUDof u_face_bufferL
TUDof u_face_bufferR
std::vector<TUScalar> uScalar_face_bufferL
std::vector<TUScalar> uScalar_face_bufferR

Public Static Functions

static inline auto device_array_list_Buffer()
struct Cons2Prim_Arg : public DNDS::EulerP::EvaluatorArgBase<Cons2Prim_Arg>

Public Functions

inline void Validate(Evaluator &self)

Public Members

ssp<TUDof> u
std::vector<ssp<TUScalar>> uScalar
ssp<TUDof> uPrim
std::vector<ssp<TUScalar>> uScalarPrim
ssp<TUScalar> p
ssp<TUScalar> T
ssp<TUScalar> a
ssp<TUScalar> gamma

Public Static Functions

static inline auto member_list()
struct Cons2PrimMu_Arg : public DNDS::EulerP::EvaluatorArgBase<Cons2PrimMu_Arg>

Public Functions

inline void Validate(Evaluator &self)

Public Members

ssp<TUDof> u
ssp<TUGrad> uGrad
std::vector<ssp<TUScalar>> uScalar
std::vector<ssp<TUScalarGrad>> uScalarGrad
ssp<TUDof> uPrim
ssp<TUGrad> uGradPrim
std::vector<ssp<TUScalar>> uScalarPrim
std::vector<ssp<TUScalarGrad>> uScalarGradPrim
ssp<TUScalar> p
ssp<TUScalar> T
ssp<TUScalar> a
ssp<TUScalar> gamma
ssp<TUScalar> mu
std::vector<ssp<TUScalar>> muComp

Public Static Functions

static inline auto member_list()
struct EstEigenDt_Arg : public DNDS::EulerP::EvaluatorArgBase<EstEigenDt_Arg>

Public Functions

inline void Validate(Evaluator &self)

Public Members

ssp<TUDof> u
ssp<TUScalar> muCell
ssp<TUScalar> aCell
ssp<TUScalarGrad> faceLamEst
ssp<TUScalar> faceLamVisEst
ssp<TUScalar> deltaLamFace
ssp<TUScalar> deltaLamCell
ssp<TUScalar> dt

Public Static Functions

static inline auto member_list()
struct Flux2nd_Arg : public DNDS::EulerP::EvaluatorArgBase<Flux2nd_Arg>

Public Functions

inline void Validate(Evaluator &self)

Public Members

ssp<TUDof> u
ssp<TUGrad> uGrad
std::vector<ssp<TUScalar>> uScalar
std::vector<ssp<TUScalarGrad>> uScalarGrad
ssp<TUDof> uPrim
ssp<TUGrad> uGradPrim
std::vector<ssp<TUScalar>> uScalarPrim
std::vector<ssp<TUScalarGrad>> uScalarGradPrim
ssp<TUScalar> p
ssp<TUScalar> T
ssp<TUScalar> a
ssp<TUScalar> mu
std::vector<ssp<TUScalar>> muComp
ssp<TUScalar> gamma
ssp<TUScalar> deltaLamCell
ssp<TUDof> uFL
ssp<TUDof> uFR
ssp<TUGrad> uGradFF
std::vector<ssp<TUScalar>> uScalarFL
std::vector<ssp<TUScalar>> uScalarFR
std::vector<ssp<TUScalarGrad>> uScalarGradFF
ssp<TUScalar> pFL
ssp<TUScalar> pFR
ssp<TUDof> fluxFF
std::vector<ssp<TUScalar>> fluxScalarFF
ssp<TUDof> rhs
std::vector<ssp<TUScalar>> rhsScalar

Public Static Functions

static inline auto member_list()
struct RecFace2nd_Arg : public DNDS::EulerP::EvaluatorArgBase<RecFace2nd_Arg>

Public Functions

inline void Validate(Evaluator &self)

Public Members

ssp<TUDof> u
ssp<TUGrad> uGrad
std::vector<ssp<TUScalar>> uScalar
std::vector<ssp<TUScalarGrad>> uScalarGrad
ssp<TUDof> uFL
ssp<TUDof> uFR
ssp<TUGrad> uGradFF
std::vector<ssp<TUScalar>> uScalarFL
std::vector<ssp<TUScalar>> uScalarFR
std::vector<ssp<TUScalarGrad>> uScalarGradFF

Public Static Functions

static inline auto member_list()
struct RecGradient_Arg : public DNDS::EulerP::EvaluatorArgBase<RecGradient_Arg>

Public Functions

inline void Validate(Evaluator &self)

Public Members

ssp<TUDof> u
ssp<TUGrad> uGrad
std::vector<ssp<TUScalar>> uScalar
std::vector<ssp<TUScalarGrad>> uScalarGrad

Public Static Functions

static inline auto member_list()
template<DeviceBackend B>
struct t_deviceView

Public Functions

t_deviceView(t_deviceView &&R) noexcept = default
template<DeviceBackend B>
struct Evaluator_impl

Public Types

using t_Scalar_deviceViewVector_sup = std::unique_ptr<deviceViewVector<TUScalar::t_deviceView<B>, B>>
using t_ScalarGrad_deviceViewVector_sup = std::unique_ptr<deviceViewVector<TUScalarGrad::t_deviceView<B>, B>>

Public Functions

void RecGradient_GGRec(RecGradient_Arg &arg)
void RecGradient_BarthLimiter(RecGradient_Arg &arg)
void Cons2PrimMu(Cons2PrimMu_Arg &arg)
void Cons2Prim(Cons2Prim_Arg &arg)
void EstEigenDt_GetFaceLam(EstEigenDt_Arg &arg)
void EstEigenDt_FaceLam2CellDt(EstEigenDt_Arg &arg)
void RecFace2nd(RecFace2nd_Arg &arg)
void Flux2nd(Flux2nd_Arg &arg)

Public Static Functions

static void RecGradient_GGRec(RecGradient_Arg &arg)
static void RecGradient_BarthLimiter(RecGradient_Arg &arg)
static void Cons2PrimMu(Cons2PrimMu_Arg &arg)
static void Cons2Prim(Cons2Prim_Arg &arg)
static void EstEigenDt_GetFaceLam(EstEigenDt_Arg &arg)
static void EstEigenDt_FaceLam2CellDt(EstEigenDt_Arg &arg)
static void RecFace2nd(RecFace2nd_Arg &arg)
static void Flux2nd(Flux2nd_Arg &arg)
struct Cons2Prim_Arg

Public Members

EvaluatorDeviceView<B> self_view
struct Portable
struct Cons2PrimMu_Arg

Public Members

EvaluatorDeviceView<B> self_view
struct Portable

Public Members

TUDof::t_deviceView<B> u
TUGrad::t_deviceView<B> uGrad
vector_DeviceView<B, TUScalar::t_deviceView<B>> uScalar
vector_DeviceView<B, TUScalarGrad::t_deviceView<B>> uScalarGrad
TUDof::t_deviceView<B> uPrim
TUGrad::t_deviceView<B> uGradPrim
vector_DeviceView<B, TUScalar::t_deviceView<B>> uScalarPrim
vector_DeviceView<B, TUScalarGrad::t_deviceView<B>> uScalarGradPrim
TUScalar::t_deviceView<B> p
TUScalar::t_deviceView<B> T
TUScalar::t_deviceView<B> a
TUScalar::t_deviceView<B> gamma
TUScalar::t_deviceView<B> mu
vector_DeviceView<B, TUScalar::t_deviceView<B>> muComp
struct EstEigenDt_Arg

Public Members

EvaluatorDeviceView<B> self_view
struct Portable
struct Flux2nd_Arg

Public Members

EvaluatorDeviceView<B> self_view
struct Portable
struct RecFace2nd_Arg

Public Members

EvaluatorDeviceView<B> self_view
struct Portable
struct RecGradient_Arg

Public Functions

inline RecGradient_Arg(Evaluator &self_, Evaluator::RecGradient_Arg &arg)

Public Members

EvaluatorDeviceView<B> self_view
t_Scalar_deviceViewVector_sup faceBCScalarBuffer_v
t_Scalar_deviceViewVector_sup uScalar_v
t_ScalarGrad_deviceViewVector_sup uScalarGrad_v
struct Portable

Public Members

TUDof::t_deviceView<B> faceBCBuffer
vector_DeviceView<B, TUScalar::t_deviceView<B>> faceBCScalarBuffer
TUDof::t_deviceView<B> u
TUGrad::t_deviceView<B> uGrad
vector_DeviceView<B, TUScalar::t_deviceView<B>> uScalar
vector_DeviceView<B, TUScalarGrad::t_deviceView<B>> uScalarGrad
template<class TDerived>
class EvaluatorArgBase

Public Functions

inline void WaitAllPull(DeviceBackend B)
class EvaluatorConfig

Public Functions

EvaluatorConfig()
void valid_patch_keys(const t_jsonconfig &config_in)
inline void merge_patch(const t_jsonconfig &config_in)
inline const t_jsonconfig &config() const
template<DeviceBackend B>
class EvaluatorDeviceView

Public Members

t_fv fv
t_bcHandler bcHandler
t_physics physics
struct Physics

Public Types

template<DeviceBackend B>
using t_deviceView = PhysicsDeviceView<B>

Public Functions

inline  DNDS_NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_ORDERED_AND_UNORDERED_JSON (Physics, reference_values, params) void to_host()
inline void to_device(DeviceBackend B)
inline DeviceBackend device()
template<DeviceBackend B>
inline t_deviceView<B> deviceView()
inline void setPerfectGas(real Rg, real gamma)

Public Members

host_device_vector<real> reference_values
PhysicsParams params
template<DeviceBackend B>
struct PhysicsDeviceView

Public Functions

template<class tUPrim, class tDiffUPrim> inline DNDS_DEVICE_CALLABLE real getMuTot (tUPrim &&UPrim, tDiffUPrim &&DiffUPrim, int nVars, real p, real T) const
template<class tUPrim, class tU> inline DNDS_DEVICE_CALLABLE void Cons2Prim (tU &&U, tUPrim &&UPrim, int nVars) const
template<class tU, class tUPrim, class tDiffU, class tDiffUPrim> inline DNDS_DEVICE_CALLABLE void Cons2PrimDiff (tU &&U, tUPrim &&UPrim, tDiffU &&DiffU, tDiffUPrim &&DiffUPrim, int nVars) const
template<class tUPrim, class tU> inline DNDS_DEVICE_CALLABLE void Prim2Cons (tUPrim &&UPrim, tU &&U, int nVars) const
template<class tU> inline DNDS_DEVICE_CALLABLE real Cons2EInternal (tU &&U, int nVars) const
template<class tUPrim> inline DNDS_DEVICE_CALLABLE real Prim2Pressure (tUPrim &&UPrim, int nVars, real T) const
template<class tUPrim>
inline DNDS_DEVICE_CALLABLE auto Prim2GammaAcousticSpeed(tUPrim &&UPrim, int nVars, real p) const
template<class tUPrim> inline DNDS_DEVICE_CALLABLE real Prim2Temperature (tUPrim &&UPrim, int nVars) const
template<class tU> inline DNDS_DEVICE_CALLABLE real Pressure2Enthalpy (tU &&U, int nVars, real p) const
template<class tU> inline DNDS_DEVICE_CALLABLE real Enthalpy2Pressure (tU &&U, int nVars, real H) const

Public Members

vector_DeviceView<B, real, int32_t> reference_values
PhysicsParams params
struct PhysicsParams

Public Members

real gamma = 1.4
real mu0 = 1e-100
real cp = 1.
real cv = 1.
real Rg = 1.
real TRef = 273.15
int muModel = 0
namespace detail
struct FGlobalAccessor_noOp

Public Functions

inline DNDS_FORCEINLINE DNDS_DEVICE real & operator() (index iPnt, int i)

Public Members

real dummy_
struct FLocalAccessor_noOp

Public Functions

inline DNDS_FORCEINLINE DNDS_DEVICE real & operator() (int i)

Public Members

real dummy_