26 static void Validate(
const nlohmann::json &config,
27 const nlohmann::json &runtime,
28 bool axisymmetric_build)
30 if (config.contains(
"compileTime") &&
31 config[
"compileTime"].contains(
"AXISYMMETRIC"))
33 const bool requested =
34 config[
"compileTime"][
"AXISYMMETRIC"].get<
bool>();
35 if (requested != axisymmetric_build)
37 throw std::invalid_argument(
38 std::string(
"compileTime.AXISYMMETRIC requests ") +
39 (requested ?
"an axisymmetric" :
"a Cartesian") +
40 " executable, but this executable was built " +
41 (axisymmetric_build ?
"with" :
"without") +
46 if (!axisymmetric_build)
54 throw std::invalid_argument(
55 "axisymmetric simulations require runTime.dim = 2");
58 const int num_equations =
62 throw std::invalid_argument(
63 "swirl-free axisymmetric simulations require "
64 "runTime.num_equations = 4");
73 throw std::invalid_argument(
74 "axisymmetric meshes must have topological and spatial dimension 2");
77 for (
int vertex = 0; vertex < mesh.GetNV(); ++vertex)
80 if (!std::isfinite(radius) ||
83 throw std::invalid_argument(
84 "axisymmetric mesh has a negative radial coordinate at vertex " +
85 std::to_string(vertex) +
": r = " + std::to_string(radius));
Definition AxisymmetricGeometry.hpp:15
static constexpr mfem::real_t radius_tolerance
Definition AxisymmetricGeometry.hpp:22
static constexpr int axial_coordinate
Definition AxisymmetricGeometry.hpp:19
static constexpr int radial_coordinate
Definition AxisymmetricGeometry.hpp:20
static constexpr int spatial_dimension
Definition AxisymmetricGeometry.hpp:21
Foundational state and coordinate contract for swirl-free axisymmetry.
Definition AxisymmetryConfig.hpp:20
static constexpr int spatial_dimension
Definition AxisymmetryConfig.hpp:23
static void ValidateMesh(const mfem::Mesh &mesh)
Definition AxisymmetryConfig.hpp:68
static constexpr int axial_coordinate
Definition AxisymmetryConfig.hpp:21
static constexpr int conservative_equations
Definition AxisymmetryConfig.hpp:24
static constexpr int radial_coordinate
Definition AxisymmetryConfig.hpp:22
static void Validate(const nlohmann::json &config, const nlohmann::json &runtime, bool axisymmetric_build)
Definition AxisymmetryConfig.hpp:26