34 using json = nlohmann::ordered_json;
170 config.field(
static_cast<int T::*
>(&T::maxOrder),
"maxOrder",
171 "Polynomial degree of reconstruction",
173 config.field(
static_cast<int T::*
>(&T::intOrder),
"intOrder",
174 "Global integration degree",
176 config.field(
static_cast<bool T::*
>(&T::ignoreMeshGeometryDeficiency),
"ignoreMeshGeometryDeficiency",
177 "Ignore mesh geometry deficiency warnings");
178 config.field(
static_cast<int T::*
>(&T::nIterCellSmoothScale),
"nIterCellSmoothScale",
179 "Cell smooth scale iterations",
200 config.field_section(&T::baseSettings,
"baseSettings",
201 "Basis function settings");
202 config.field_section(&T::functionalSettings,
"functionalSettings",
203 "Functional/weight settings");
Eigen-matrix array: each row is an Eigen::Map<Matrix> over contiguous real storage.
Batch of uniform-sized Eigen matrices per row, with variable batch count.
Eigen-vector array: each row is an Eigen::Map over contiguous real storage.
Extended enum-to-JSON serialization macro that also exposes allowed string values for JSON Schema gen...
#define DNDS_DEFINE_ENUM_JSON(EnumType_,...)
Define JSON serialization for an enum AND expose its allowed string values.
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.
#define DNDS_DECLARE_CONFIG(Type_)
Open a config section registration body.
Core type aliases, constants, and metaprogramming utilities for the DNDS framework.
#define DNDS_DEVICE_TRIVIAL_COPY_DEFINE(T, T_Self)
#define DNDS_DEVICE_CALLABLE
#define DNDS_DEVICE_TRIVIAL_COPY_DEFINE_NO_EMPTY_CTOR(T, T_Self)
JSON-to-Eigen conversion utilities and nlohmann_json helper macros.
MPI wrappers: MPIInfo, collective operations, type mapping, CommStrategy.
RangeTag range(double min)
Create a minimum-only range constraint.
void from_json(const nlohmann::ordered_json &j, host_device_vector< real > &v)
double real
Canonical floating-point scalar used throughout DNDSR (double precision).
void to_json(nlohmann::ordered_json &j, const host_device_vector< real > &v)
A means to translate nlohmann json into c++ primitive data types and back; and stores then during com...
int intOrder
polynomial degree of reconstruction
DNDS_DEVICE_CALLABLE FiniteVolumeSettings()=default
std::array< real, 5 > manualDirWeights
enum DNDS::CFV::VRSettings::FunctionalSettings::DirWeightScheme dirWeightScheme
enum DNDS::CFV::VRSettings::FunctionalSettings::ScaleType scaleType
enum DNDS::CFV::VRSettings::FunctionalSettings::AnisotropicType anisotropicType
DNDS_DEVICE_CALLABLE FunctionalSettings()=default
bool useAnisotropicFunctional
enum DNDS::CFV::VRSettings::FunctionalSettings::GeomWeightScheme geomWeightScheme
A means to translate nlohmann json into c++ primitive data types and back; and stores then during com...
real WBAP_nStd
limiter's smooth indicator threshold
DNDS_DECLARE_CONFIG(VRSettings)
int limiterBiwayAlter
if switch to normWBAP
bool SORInstead
VR SOR/Jacobi iteration relaxation factor.
struct DNDS::CFV::VRSettings::BaseSettings baseSettings
struct DNDS::CFV::VRSettings::FunctionalSettings functionalSettings
int intOrderVRBC
integration degree for VR matrices, <0 means using intOrder
bool normWBAP
n used in WBAP limiters
bool intOrderVRBCIsSame() const
real smoothThreshold
use SOR instead of relaxed Jacobi iteration
real svdTolerance
1: gauss rule using distance for interpolation; 0: no interpolation
int intOrderVRValue() const
nlohmann::ordered_json json
bool cacheDiffBase
integration degree for VR matrices on BC faces, -1 means using int Order, < -1 means using intOrderVR...
void WriteIntoJson(json &jsonSetting) const
Backward-compatible write (used by Python bindings).
bool intOrderVRIsSame() const
void ParseFromJson(const json &jsonSetting)
Backward-compatible read (used by Python bindings).
uint8_t cacheDiffBaseSize
if cache the base function values on each of the quadrature points
int intOrderVRBCValue() const
DNDS_HOST VRSettings()=default
real bcWeight
tolerance used in svd
int subs2ndOrderGGScheme
0: vfv; 1: gauss rule; 2: least square; 11: GGMP;
DNDS_HOST VRSettings(int dim)
int subs2ndOrder
0=wbap-L2-biway, 1=minmod-biway