DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DNDS::CFV Namespace Reference

Namespaces

namespace  _Limiters_Internal
 

Classes

class  FiniteVolume
 
struct  finiteVolumeCellOpTest_Fixed_entry
 
struct  finiteVolumeCellOpTest_Fixed_entry< DeviceBackend::Host, nVarsFixed >
 
struct  finiteVolumeCellOpTest_SOA_ver0_entry
 
struct  finiteVolumeCellOpTest_SOA_ver0_entry< DeviceBackend::Host, nVarsFixed >
 
class  FiniteVolumeDeviceView
 
struct  FiniteVolumeSettings
 A means to translate nlohmann json into c++ primitive data types and back; and stores then during computation. More...
 
class  ModelEvaluator
 
struct  ModelSettings
 
struct  RecAtr
 
class  VariationalReconstruction
 The VR class that provides any information needed in high-order CFV. More...
 
struct  VRSettings
 A means to translate nlohmann json into c++ primitive data types and back; and stores then during computation. More...
 

Typedefs

using tPy_FiniteVolume = py_class_ssp< FiniteVolume >
 
using tPy_ModelEvaluator = py_class_ssp< ModelEvaluator >
 
template<int dim = 2>
using tPy_VariationalReconstruction = py_class_ssp< VariationalReconstruction< dim > >
 
using tCoeffPair = DNDS::ArrayPair< DNDS::ArrayEigenVector< NonUniformSize > >
 
using tCoeff = decltype(tCoeffPair::father)
 
using t3VecsPair = DNDS::ArrayPair< DNDS::ArrayEigenUniMatrixBatch< 3, 1 > >
 
using t3Vecs = decltype(t3VecsPair::father)
 
using t3VecPair = Geom::tCoordPair
 
using t3Vec = Geom::tCoord
 
using t3MatPair = DNDS::ArrayPair< DNDS::ArrayEigenMatrix< 3, 3 > >
 
using t3Mat = decltype(t3MatPair::father)
 
using tVVecPair = ::DNDS::ArrayPair< DNDS::ArrayEigenVector< DynamicSize > >
 
using tVVec = decltype(tVVecPair::father)
 
using tMatsPair = DNDS::ArrayPair< DNDS::ArrayEigenUniMatrixBatch< DynamicSize, DynamicSize > >
 
using tMats = decltype(tMatsPair::father)
 
using tVecsPair = DNDS::ArrayPair< DNDS::ArrayEigenUniMatrixBatch< DynamicSize, 1 > >
 
using tVecs = decltype(tVecsPair::father)
 
using tVMatPair = DNDS::ArrayPair< DNDS::ArrayEigenMatrix< DynamicSize, DynamicSize > >
 
using tVMat = decltype(tVMatPair::father)
 
using tRecAtrPair = DNDS::ArrayPair< DNDS::ParArray< RecAtr, 1 > >
 
using tRecAtr = decltype(tRecAtrPair::father)
 
template<int nVarsFixed>
using tURec = ArrayDof< DynamicSize, nVarsFixed >
 
template<int nVarsFixed>
using tUDof = ArrayDof< nVarsFixed, 1 >
 
template<int nVarsFixed, int gDim>
using tUGrad = ArrayDof< gDim, nVarsFixed >
 
using tScalarPair = DNDS::ArrayPair< DNDS::ArrayEigenVector< 1 > >
 
using tScalar = decltype(tScalarPair::father)
 
using tPy_RecAtr = py::classh< RecAtr >
 

Functions

template<>
void finiteVolumeCellOpTest_run< B > (FiniteVolume::t_deviceView< B > &fv, tUDof< DynamicSize >::t_deviceView< B > &u, tUGrad< DynamicSize, 3 >::t_deviceView< B > &u_grad, int nIter, const t_jsonconfig &settings)
 
template<DeviceBackend B, bool iVarOne = false>
DNDS_DEVICE_CALLABLE void finiteVolumeCellOpTest (FiniteVolume::t_deviceView< B > &fv, tUDof< DynamicSize >::t_deviceView< B > &u, tUGrad< DynamicSize, 3 >::t_deviceView< B > &u_grad, index iCell, real *local_buf, int iVar=UnInitRowsize)
 
template<DeviceBackend B>
void finiteVolumeCellOpTest_run (FiniteVolume::t_deviceView< B > &fv, tUDof< DynamicSize >::t_deviceView< B > &u, tUGrad< DynamicSize, 3 >::t_deviceView< B > &u_grad, int nIter, const t_jsonconfig &settings)
 
template<DeviceBackend B>
void finiteVolumeCellOpTest_main (FiniteVolume &fv, tUDof< DynamicSize > &u, tUGrad< DynamicSize, 3 > &u_grad, int nIter, const t_jsonconfig &settings)
 
template<DeviceBackend B, int nVarsFixed, bool iVarOne = false>
DNDS_DEVICE_CALLABLE void finiteVolumeCellOpTest_Fixed (FiniteVolume::t_deviceView< B > &fv, typename tUDof< nVarsFixed >::template t_deviceView< B > &u, typename tUGrad< nVarsFixed, 3 >::template t_deviceView< B > &u_grad, index iCell, int iVar=UnInitRowsize)
 
template<DeviceBackend B, int nVarsFixed>
void finiteVolumeCellOpTest_Fixed_main (FiniteVolume &fv, tUDof< nVarsFixed > &u, tUGrad< nVarsFixed, 3 > &u_grad, int nIter, const t_jsonconfig &settings)
 
template<DeviceBackend B, int nVarsFixed, bool iVarOne = false>
DNDS_DEVICE_CALLABLE void finiteVolumeCellOpTest_SOA_ver0 (FiniteVolume::t_deviceView< B > &fv, std::array< tUDof< 1 >::t_deviceView< B >, nVarsFixed > &u, std::array< tUGrad< 1, 3 >::t_deviceView< B >, nVarsFixed > &u_grad, index iCell, int iVar=UnInitRowsize)
 
template<DeviceBackend B, int nVarsFixed>
void finiteVolumeCellOpTest_SOA_ver0_main (FiniteVolume &fv, std::array< tUDof< 1 >, nVarsFixed > &u, std::array< tUGrad< 1, 3 >, nVarsFixed > &u_grad, int nIter, const t_jsonconfig &settings)
 
template<DeviceBackend B>
void pybind11_BenchmarkFiniteVolume_define (py::module_ &m)
 
template<DeviceBackend B, int nVarsFixed>
void pybind11_BenchmarkFiniteVolume_define_Fixed (py::module_ &m)
 
template<DeviceBackend B, int nVarsFixed>
void pybind11_BenchmarkFiniteVolume_define_SOA_ver0 (py::module_ &m)
 
template<int nVarsFixed = 1>
void BuildUDofOnMesh (tUDof< nVarsFixed > &u, const std::string &name, const MPIInfo &mpi, const ssp< Geom::UnstructuredMesh > &mesh, int nVars, bool buildSon=true, bool buildTrans=true, Geom::MeshLoc varloc=Geom::MeshLoc::Cell)
 Build a DOF array pair matching a mesh location (cell/face/node).
 
template<int nVarsFixed, int dim>
void BuildUGradDOnMesh (tUGrad< nVarsFixed, dim > &u, const std::string &name, const MPIInfo &mpi, const ssp< Geom::UnstructuredMesh > &mesh, int nVars, bool buildSon=true, bool buildTrans=true, Geom::MeshLoc varloc=Geom::MeshLoc::Cell)
 Build a gradient DOF array pair matching a mesh location.
 
void pybind11_FiniteVolume_define (py::module_ &m)
 
template<int dim, typename ThetaArray >
Eigen::ArrayXd PolynomialSquaredNorm (const ThetaArray &theta)
 Computes the weighted polynomial squared norm of each column of theta.
 
template<int dim, typename ThetaArray1 , typename ThetaArray2 >
Eigen::ArrayXd PolynomialDotProduct (const ThetaArray1 &theta1, const ThetaArray2 &theta2)
 Computes a weighted polynomial dot product between theta1 and theta2.
 
template<typename TinOthers , typename Tout >
void FWBAP_L2_Multiway (const TinOthers &uOthers, int Nother, Tout &uOut, real n1=1.0)
 input vector<Eigen::Array-like>
 
template<typename Tin1 , typename Tin2 , typename Tout >
void FWBAP_L2_Biway (const Tin1 &u1, const Tin2 &u2, Tout &uOut, real n)
 input eigen arrays
 
template<typename Tin1 , typename Tin2 , typename Tout >
void FWBAP_L2_Cut_Biway (const Tin1 &u1, const Tin2 &u2, Tout &uOut, real n)
 
template<typename Tin1 , typename Tin2 , typename Tout >
void FMINMOD_Biway (const Tin1 &u1, const Tin2 &u2, Tout &uOut, real n)
 input eigen arrays
 
template<typename Tin1 , typename Tin2 , typename Tout >
void FVanLeer_Biway (const Tin1 &u1, const Tin2 &u2, Tout &uOut, real n)
 input eigen arrays
 
template<int dim, int nVarsFixed, typename Tin1 , typename Tin2 , typename Tout >
void FWBAP_L2_Biway_PolynomialNorm (const Tin1 &u1, const Tin2 &u2, Tout &uOut, real n)
 
template<int dim, int nVarsFixed, typename Tin1 , typename Tin2 , typename Tout >
void FMEMM_Biway_PolynomialNorm (const Tin1 &u1, const Tin2 &u2, Tout &uOut, real n)
 
template<typename Tin1 , typename Tin2 , typename Tout >
void FWBAP_L2_Biway_PolynomialOrth (const Tin1 &u1, const Tin2 &u2, Tout &uOut, real n)
 
void pybind11_ModelEvaluator_define (py::module_ &m)
 
template<int dim, int powV = 1, class TDiffI , class TDiffJ >
void AccumulateDiffOrderContributions (const Eigen::MatrixBase< TDiffI > &DiffI, const Eigen::MatrixBase< TDiffJ > &DiffJ, MatrixXR &Conj, const Eigen::Vector< real, Eigen::Dynamic > &wgd, int cnDiffs, real faceL)
 Accumulates the weighted diff-order tensor inner product into Conj across all polynomial orders present in the given diff vectors.
 
template<int dim = 2>
void pybind11_VariationalReconstruction_define (py::module_ &m)
 
template<int dim, int nVarsFixed, typename Tin1 , typename Tin2 , typename Tout >
void DispatchBiwayLimiter (int limiterBiwayAlter, const Tin1 &uThis, const Tin2 &uOther, Tout &uOut, real n)
 Dispatches the biway limiter function selected by limiterBiwayAlter.
 
 DNDS_SWITCH_INTELLISENSE (template< int dim > template< int nVarsFixed >, template<> template<>) auto VariationalReconstruction< dim >
 
template<int dim>
std::pair< int, int > GetRecDOFRange (int pOrder)
 Returns the reconstruction DOF index range [start, end] (inclusive) for a given polynomial order within the given spatial dimension.
 
template<int nVarsFixed>
void pybind11_define_tURec_alias (py::module_ &m, py::module_ &m_dnds)
 
template<int nVarsFixed>
void pybind11_define_tUDof_alias (py::module_ &m, py::module_ &m_dnds)
 
template<int nVarsFixed>
void pybind11_define_tUGrad_alias (py::module_ &m, py::module_ &m_dnds)
 
void pybind11_define_tVVecPair_alias (py::module_ &m, py::module_ &m_dnds)
 
void pybind11_define_tMatsPair_alias (py::module_ &m, py::module_ &m_dnds)
 
void pybind11_define_RecAtr (py::module_ &m)
 
void pybind11_define_RecAtrArrayPair_and_alias (py::module_ &m)
 
void pybind11_VRDefines_define (py::module_ &m, py::module_ &m_dnds)
 
 DNDS_DEFINE_ENUM_JSON (VRSettings::FunctionalSettings::ScaleType, {{VRSettings::FunctionalSettings::ScaleType::UnknownScale, nullptr}, {VRSettings::FunctionalSettings::ScaleType::MeanAACBB, "MeanAACBB"}, {VRSettings::FunctionalSettings::ScaleType::BaryDiff, "BaryDiff"}, {VRSettings::FunctionalSettings::ScaleType::CellMax, "CellMax"}}) DNDS_DEFINE_ENUM_JSON(VRSettings
 
 DNDS_DEFINE_ENUM_JSON (VRSettings::FunctionalSettings::GeomWeightScheme, {{VRSettings::FunctionalSettings::GeomWeightScheme::UnknownGeomWeight, nullptr}, {VRSettings::FunctionalSettings::GeomWeightScheme::GWNone, "GWNone"}, {VRSettings::FunctionalSettings::GeomWeightScheme::HQM_SD, "HQM_SD"}, {VRSettings::FunctionalSettings::GeomWeightScheme::SD_Power, "SD_Power"}}) DNDS_DEFINE_ENUM_JSON(VRSettings
 

Typedef Documentation

◆ t3Mat

using DNDS::CFV::t3Mat = typedef decltype(t3MatPair::father)

Definition at line 42 of file VRDefines.hpp.

◆ t3MatPair

Definition at line 41 of file VRDefines.hpp.

◆ t3Vec

using DNDS::CFV::t3Vec = typedef Geom::tCoord

Definition at line 40 of file VRDefines.hpp.

◆ t3VecPair

Definition at line 39 of file VRDefines.hpp.

◆ t3Vecs

using DNDS::CFV::t3Vecs = typedef decltype(t3VecsPair::father)

Definition at line 38 of file VRDefines.hpp.

◆ t3VecsPair

Definition at line 37 of file VRDefines.hpp.

◆ tCoeff

using DNDS::CFV::tCoeff = typedef decltype(tCoeffPair::father)

Definition at line 36 of file VRDefines.hpp.

◆ tCoeffPair

◆ tMats

using DNDS::CFV::tMats = typedef decltype(tMatsPair::father)

Definition at line 47 of file VRDefines.hpp.

◆ tMatsPair

◆ tPy_FiniteVolume

Definition at line 9 of file FiniteVolume_bind.hpp.

◆ tPy_ModelEvaluator

◆ tPy_RecAtr

using DNDS::CFV::tPy_RecAtr = typedef py::classh<RecAtr>

Definition at line 49 of file VRDefines_bind.hpp.

◆ tPy_VariationalReconstruction

Definition at line 15 of file VariationalReconstruction_bind.hpp.

◆ tRecAtr

using DNDS::CFV::tRecAtr = typedef decltype(tRecAtrPair::father)

Definition at line 72 of file VRDefines.hpp.

◆ tRecAtrPair

Definition at line 71 of file VRDefines.hpp.

◆ tScalar

using DNDS::CFV::tScalar = typedef decltype(tScalarPair::father)

Definition at line 88 of file VRDefines.hpp.

◆ tScalarPair

Definition at line 87 of file VRDefines.hpp.

◆ tUDof

template<int nVarsFixed>
using DNDS::CFV::tUDof = typedef ArrayDof<nVarsFixed, 1>

Definition at line 82 of file VRDefines.hpp.

◆ tUGrad

template<int nVarsFixed, int gDim>
using DNDS::CFV::tUGrad = typedef ArrayDof<gDim, nVarsFixed>

Definition at line 85 of file VRDefines.hpp.

◆ tURec

template<int nVarsFixed>
using DNDS::CFV::tURec = typedef ArrayDof<DynamicSize, nVarsFixed>

Definition at line 79 of file VRDefines.hpp.

◆ tVecs

using DNDS::CFV::tVecs = typedef decltype(tVecsPair::father)

Definition at line 49 of file VRDefines.hpp.

◆ tVecsPair

◆ tVMat

using DNDS::CFV::tVMat = typedef decltype(tVMatPair::father)

Definition at line 51 of file VRDefines.hpp.

◆ tVMatPair

◆ tVVec

using DNDS::CFV::tVVec = typedef decltype(tVVecPair::father)

Definition at line 45 of file VRDefines.hpp.

◆ tVVecPair

Function Documentation

◆ AccumulateDiffOrderContributions()

template<int dim, int powV = 1, class TDiffI , class TDiffJ >
void DNDS::CFV::AccumulateDiffOrderContributions ( const Eigen::MatrixBase< TDiffI > &  DiffI,
const Eigen::MatrixBase< TDiffJ > &  DiffJ,
MatrixXR Conj,
const Eigen::Vector< real, Eigen::Dynamic > &  wgd,
int  cnDiffs,
real  faceL 
)
inline

Accumulates the weighted diff-order tensor inner product into Conj across all polynomial orders present in the given diff vectors.

Replaces the 4 copies of the switch(cnDiffs) fallthrough pattern in FFaceFunctional. Iterates over all (i,j) pairs and accumulates NormSymDiffOrderTensorV contributions for each polynomial order.

Template Parameters
dimSpatial dimension (2 or 3)
powVCombinatorial power (1 unless USE_ECCENTRIC_COMB_POW_2)
Parameters
DiffIDiff base values for left side (cnDiffs x nColsI)
DiffJDiff base values for right side (cnDiffs x nColsJ)
ConjOutput conjugation matrix (nColsI x nColsJ), accumulated into
wgdSquared face weight vector (one entry per order)
cnDiffsNumber of diff rows (= total NDOF for the max order present)
faceLLength scale; pass 0 for anisotropic path (all faceLPow = 1)

Definition at line 33 of file VariationalReconstruction.hpp.

◆ BuildUDofOnMesh()

template<int nVarsFixed = 1>
void DNDS::CFV::BuildUDofOnMesh ( tUDof< nVarsFixed > &  u,
const std::string &  name,
const MPIInfo mpi,
const ssp< Geom::UnstructuredMesh > &  mesh,
int  nVars,
bool  buildSon = true,
bool  buildTrans = true,
Geom::MeshLoc  varloc = Geom::MeshLoc::Cell 
)

Build a DOF array pair matching a mesh location (cell/face/node).

Creates father+son arrays, optionally sets up ghost communication by borrowing the indexing from the mesh's corresponding adjacency.

Definition at line 18 of file DOFFactory.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ BuildUGradDOnMesh()

template<int nVarsFixed, int dim>
void DNDS::CFV::BuildUGradDOnMesh ( tUGrad< nVarsFixed, dim > &  u,
const std::string &  name,
const MPIInfo mpi,
const ssp< Geom::UnstructuredMesh > &  mesh,
int  nVars,
bool  buildSon = true,
bool  buildTrans = true,
Geom::MeshLoc  varloc = Geom::MeshLoc::Cell 
)

Build a gradient DOF array pair matching a mesh location.

Definition at line 89 of file DOFFactory.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DispatchBiwayLimiter()

template<int dim, int nVarsFixed, typename Tin1 , typename Tin2 , typename Tout >
void DNDS::CFV::DispatchBiwayLimiter ( int  limiterBiwayAlter,
const Tin1 &  uThis,
const Tin2 &  uOther,
Tout &  uOut,
real  n 
)
inline

Dispatches the biway limiter function selected by limiterBiwayAlter.

Consolidates the switch(limiterBiwayAlter) block that appeared identically in both DoLimiterWBAP_C and DoLimiterWBAP_3.

Definition at line 14 of file VariationalReconstruction_LimiterProcedure.hxx.

Here is the call graph for this function:

◆ DNDS_DEFINE_ENUM_JSON() [1/2]

◆ DNDS_DEFINE_ENUM_JSON() [2/2]

◆ DNDS_SWITCH_INTELLISENSE()

DNDS::CFV::DNDS_SWITCH_INTELLISENSE ( template< int dim > template< int nVarsFixed >  ,
template<> template<>   
)

need fixing?

need fixing?

warning, periodic not implemented here

need fixing?

need fixing?

warning, periodic not implemented here

need fixing?

Definition at line 13 of file VariationalReconstruction_Reconstruction.hxx.

◆ finiteVolumeCellOpTest()

template<DeviceBackend B, bool iVarOne = false>
DNDS_DEVICE_CALLABLE void DNDS::CFV::finiteVolumeCellOpTest ( FiniteVolume::t_deviceView< B > &  fv,
tUDof< DynamicSize >::t_deviceView< B > &  u,
tUGrad< DynamicSize, 3 >::t_deviceView< B > &  u_grad,
index  iCell,
real local_buf,
int  iVar = UnInitRowsize 
)

ignoreing BC here

Definition at line 12 of file BenchmarkFiniteVolume.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ finiteVolumeCellOpTest_Fixed()

template<DeviceBackend B, int nVarsFixed, bool iVarOne = false>
DNDS_DEVICE_CALLABLE void DNDS::CFV::finiteVolumeCellOpTest_Fixed ( FiniteVolume::t_deviceView< B > &  fv,
typename tUDof< nVarsFixed >::template t_deviceView< B > &  u,
typename tUGrad< nVarsFixed, 3 >::template t_deviceView< B > &  u_grad,
index  iCell,
int  iVar = UnInitRowsize 
)

ignoreing BC here

Definition at line 116 of file BenchmarkFiniteVolume.hpp.

Here is the call graph for this function:

◆ finiteVolumeCellOpTest_Fixed_main()

template<DeviceBackend B, int nVarsFixed>
void DNDS::CFV::finiteVolumeCellOpTest_Fixed_main ( FiniteVolume fv,
tUDof< nVarsFixed > &  u,
tUGrad< nVarsFixed, 3 > &  u_grad,
int  nIter,
const t_jsonconfig settings 
)

Definition at line 212 of file BenchmarkFiniteVolume.hpp.

Here is the call graph for this function:

◆ finiteVolumeCellOpTest_main()

template<DeviceBackend B>
void DNDS::CFV::finiteVolumeCellOpTest_main ( FiniteVolume fv,
tUDof< DynamicSize > &  u,
tUGrad< DynamicSize, 3 > &  u_grad,
int  nIter,
const t_jsonconfig settings 
)

Definition at line 94 of file BenchmarkFiniteVolume.hpp.

Here is the call graph for this function:

◆ finiteVolumeCellOpTest_run()

template<DeviceBackend B>
void DNDS::CFV::finiteVolumeCellOpTest_run ( FiniteVolume::t_deviceView< B > &  fv,
tUDof< DynamicSize >::t_deviceView< B > &  u,
tUGrad< DynamicSize, 3 >::t_deviceView< B > &  u_grad,
int  nIter,
const t_jsonconfig settings 
)

◆ finiteVolumeCellOpTest_run< B >()

template<>
void DNDS::CFV::finiteVolumeCellOpTest_run< B > ( FiniteVolume::t_deviceView< B > &  fv,
tUDof< DynamicSize >::t_deviceView< B > &  u,
tUGrad< DynamicSize, 3 >::t_deviceView< B > &  u_grad,
int  nIter,
const t_jsonconfig settings 
)

Definition at line 11 of file BenchmarkFiniteVolume.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ finiteVolumeCellOpTest_SOA_ver0()

template<DeviceBackend B, int nVarsFixed, bool iVarOne = false>
DNDS_DEVICE_CALLABLE void DNDS::CFV::finiteVolumeCellOpTest_SOA_ver0 ( FiniteVolume::t_deviceView< B > &  fv,
std::array< tUDof< 1 >::t_deviceView< B >, nVarsFixed > &  u,
std::array< tUGrad< 1, 3 >::t_deviceView< B >, nVarsFixed > &  u_grad,
index  iCell,
int  iVar = UnInitRowsize 
)

ignoring BC here

Definition at line 235 of file BenchmarkFiniteVolume.hpp.

Here is the call graph for this function:

◆ finiteVolumeCellOpTest_SOA_ver0_main()

template<DeviceBackend B, int nVarsFixed>
void DNDS::CFV::finiteVolumeCellOpTest_SOA_ver0_main ( FiniteVolume fv,
std::array< tUDof< 1 >, nVarsFixed > &  u,
std::array< tUGrad< 1, 3 >, nVarsFixed > &  u_grad,
int  nIter,
const t_jsonconfig settings 
)

Definition at line 318 of file BenchmarkFiniteVolume.hpp.

Here is the call graph for this function:

◆ FMEMM_Biway_PolynomialNorm()

template<int dim, int nVarsFixed, typename Tin1 , typename Tin2 , typename Tout >
void DNDS::CFV::FMEMM_Biway_PolynomialNorm ( const Tin1 &  u1,
const Tin2 &  u2,
Tout &  uOut,
real  n 
)
inline

hard code max 4thorder

Definition at line 541 of file Limiters.hpp.

Here is the call graph for this function:

◆ FMINMOD_Biway()

template<typename Tin1 , typename Tin2 , typename Tout >
void DNDS::CFV::FMINMOD_Biway ( const Tin1 &  u1,
const Tin2 &  u2,
Tout &  uOut,
real  n 
)
inline

input eigen arrays

Definition at line 503 of file Limiters.hpp.

Here is the caller graph for this function:

◆ FVanLeer_Biway()

template<typename Tin1 , typename Tin2 , typename Tout >
void DNDS::CFV::FVanLeer_Biway ( const Tin1 &  u1,
const Tin2 &  u2,
Tout &  uOut,
real  n 
)
inline

input eigen arrays

Definition at line 512 of file Limiters.hpp.

Here is the caller graph for this function:

◆ FWBAP_L2_Biway()

template<typename Tin1 , typename Tin2 , typename Tout >
void DNDS::CFV::FWBAP_L2_Biway ( const Tin1 &  u1,
const Tin2 &  u2,
Tout &  uOut,
real  n 
)
inline

input eigen arrays

safe version

Definition at line 432 of file Limiters.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FWBAP_L2_Biway_PolynomialNorm()

template<int dim, int nVarsFixed, typename Tin1 , typename Tin2 , typename Tout >
void DNDS::CFV::FWBAP_L2_Biway_PolynomialNorm ( const Tin1 &  u1,
const Tin2 &  u2,
Tout &  uOut,
real  n 
)
inline

hard code max 4thorder

Definition at line 518 of file Limiters.hpp.

Here is the call graph for this function:

◆ FWBAP_L2_Biway_PolynomialOrth()

template<typename Tin1 , typename Tin2 , typename Tout >
void DNDS::CFV::FWBAP_L2_Biway_PolynomialOrth ( const Tin1 &  u1,
const Tin2 &  u2,
Tout &  uOut,
real  n 
)
inline

Definition at line 577 of file Limiters.hpp.

Here is the call graph for this function:

◆ FWBAP_L2_Cut_Biway()

template<typename Tin1 , typename Tin2 , typename Tout >
void DNDS::CFV::FWBAP_L2_Cut_Biway ( const Tin1 &  u1,
const Tin2 &  u2,
Tout &  uOut,
real  n 
)
inline

Definition at line 483 of file Limiters.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FWBAP_L2_Multiway()

template<typename TinOthers , typename Tout >
void DNDS::CFV::FWBAP_L2_Multiway ( const TinOthers &  uOthers,
int  Nother,
Tout &  uOut,
real  n1 = 1.0 
)
inline

input vector<Eigen::Array-like>

safe version

Definition at line 361 of file Limiters.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetRecDOFRange()

template<int dim>
std::pair< int, int > DNDS::CFV::GetRecDOFRange ( int  pOrder)
inline

Returns the reconstruction DOF index range [start, end] (inclusive) for a given polynomial order within the given spatial dimension.

Reconstruction DOFs exclude the cell mean (order-0 DOF), so the indices are 0-based into the rec coefficient matrix rows. For example, in 2D: order 1 -> [0, 1] (2 DOFs: dx, dy) order 2 -> [2, 4] (3 DOFs: dxx, dxy, dyy) order 3 -> [5, 8] (4 DOFs: dxxx, dxxy, dxyy, dyyy)

Parameters
pOrderPolynomial order (must be 1, 2, or 3)
Returns
std::pair<int, int> {LimStart, LimEnd} (both inclusive)

Definition at line 28 of file VRDefines.hpp.

◆ PolynomialDotProduct()

template<int dim, typename ThetaArray1 , typename ThetaArray2 >
Eigen::ArrayXd DNDS::CFV::PolynomialDotProduct ( const ThetaArray1 &  theta1,
const ThetaArray2 &  theta2 
)
inline

Computes a weighted polynomial dot product between theta1 and theta2.

Uses the same weight structure as PolynomialSquaredNorm<dim>. Only used for dim=2 in FMEMM_Multiway_Polynomial2D.

Definition at line 105 of file Limiters.hpp.

◆ PolynomialSquaredNorm()

template<int dim, typename ThetaArray >
Eigen::ArrayXd DNDS::CFV::PolynomialSquaredNorm ( const ThetaArray &  theta)
inline

Computes the weighted polynomial squared norm of each column of theta.

The weights follow from the L2 inner product structure of the polynomial basis: pure-order terms get weight 1, mixed terms get reduced weights proportional to the combinatorial mixing of coordinate directions.

For dim=2: nRows=2: theta(0)^2 + theta(1)^2 nRows=3: theta(0)^2 + theta(1)^2 * 0.5 + theta(2)^2 nRows=4: theta(0)^2 + theta(1)^2 * (1/3) + theta(2)^2 * (1/3) + theta(3)^2

For dim=3: nRows=3: uniform weight 1 nRows=6: first 3 weight 1, next 3 weight 0.5 nRows=10: first 3 weight 1, next 6 weight 1/3, last 1 weight 1/6

Template Parameters
dimSpatial dimension (2 or 3)
Parameters
thetaArray of shape (nRows, nCols), normalized polynomial coefficients
Returns
Eigen::ArrayXd of shape (nCols) containing the weighted squared norms

Definition at line 28 of file Limiters.hpp.

◆ pybind11_BenchmarkFiniteVolume_define()

template<DeviceBackend B>
void DNDS::CFV::pybind11_BenchmarkFiniteVolume_define ( py::module_ &  m)

Definition at line 11 of file BenchmarkFiniteVolume_bind.hpp.

Here is the call graph for this function:

◆ pybind11_BenchmarkFiniteVolume_define_Fixed()

template<DeviceBackend B, int nVarsFixed>
void DNDS::CFV::pybind11_BenchmarkFiniteVolume_define_Fixed ( py::module_ &  m)

Definition at line 28 of file BenchmarkFiniteVolume_bind.hpp.

Here is the call graph for this function:

◆ pybind11_BenchmarkFiniteVolume_define_SOA_ver0()

template<DeviceBackend B, int nVarsFixed>
void DNDS::CFV::pybind11_BenchmarkFiniteVolume_define_SOA_ver0 ( py::module_ &  m)

Definition at line 45 of file BenchmarkFiniteVolume_bind.hpp.

Here is the call graph for this function:

◆ pybind11_define_RecAtr()

void DNDS::CFV::pybind11_define_RecAtr ( py::module_ &  m)
inline

Definition at line 50 of file VRDefines_bind.hpp.

Here is the caller graph for this function:

◆ pybind11_define_RecAtrArrayPair_and_alias()

void DNDS::CFV::pybind11_define_RecAtrArrayPair_and_alias ( py::module_ &  m)
inline

Definition at line 62 of file VRDefines_bind.hpp.

Here is the caller graph for this function:

◆ pybind11_define_tMatsPair_alias()

void DNDS::CFV::pybind11_define_tMatsPair_alias ( py::module_ &  m,
py::module_ &  m_dnds 
)
inline

Definition at line 43 of file VRDefines_bind.hpp.

Here is the caller graph for this function:

◆ pybind11_define_tUDof_alias()

template<int nVarsFixed>
void DNDS::CFV::pybind11_define_tUDof_alias ( py::module_ &  m,
py::module_ &  m_dnds 
)
inline

Definition at line 22 of file VRDefines_bind.hpp.

Here is the call graph for this function:

◆ pybind11_define_tUGrad_alias()

template<int nVarsFixed>
void DNDS::CFV::pybind11_define_tUGrad_alias ( py::module_ &  m,
py::module_ &  m_dnds 
)
inline

Definition at line 29 of file VRDefines_bind.hpp.

Here is the call graph for this function:

◆ pybind11_define_tURec_alias()

template<int nVarsFixed>
void DNDS::CFV::pybind11_define_tURec_alias ( py::module_ &  m,
py::module_ &  m_dnds 
)
inline

Definition at line 15 of file VRDefines_bind.hpp.

Here is the call graph for this function:

◆ pybind11_define_tVVecPair_alias()

void DNDS::CFV::pybind11_define_tVVecPair_alias ( py::module_ &  m,
py::module_ &  m_dnds 
)
inline

Definition at line 37 of file VRDefines_bind.hpp.

Here is the caller graph for this function:

◆ pybind11_FiniteVolume_define()

void DNDS::CFV::pybind11_FiniteVolume_define ( py::module_ &  m)

Definition at line 8 of file FiniteVolume_bind.cpp.

Here is the call graph for this function:

◆ pybind11_ModelEvaluator_define()

void DNDS::CFV::pybind11_ModelEvaluator_define ( py::module_ &  m)

Definition at line 6 of file ModelEvaluator_bind.cpp.

Here is the call graph for this function:

◆ pybind11_VariationalReconstruction_define()

template<int dim = 2>
void DNDS::CFV::pybind11_VariationalReconstruction_define ( py::module_ &  m)

Definition at line 19 of file VariationalReconstruction_bind.hpp.

Here is the call graph for this function:

◆ pybind11_VRDefines_define()

void DNDS::CFV::pybind11_VRDefines_define ( py::module_ &  m,
py::module_ &  m_dnds 
)
inline

Definition at line 74 of file VRDefines_bind.hpp.

Here is the call graph for this function: