#include #include "serif/discretization/domain/schema/schemas.hpp" #include "mfem.hpp" #include "serif/discretization/domain/schema/validation/all.hpp" #include "serif/discretization/domain/schema/validation/results.hpp" #include "stroid/stroid.h" #include "serif/discretization/blocks/base.hpp" #include "serif/dimensions/runtime/runtime.hpp" #include "serif/discretization/forms/forms.hpp" #include "serif/discretization/forms/form_traits.hpp" #include "serif/discretization/blocks/concepts.hpp" #include "serif/discretization/forms/concept.hpp" #include "serif/discretization/forms/runtime.hpp" #include "serif/discretization/blocks/runtime.hpp" #include "serif/discretization/blocks/concepts.hpp" #include "serif/discretization/blocks/traits.hpp" #include "serif/discretization/blocks/concepts.hpp" #include "serif/utils/misc/concepts/enumeration.hpp" #include "serif/discretization/forms/operands.hpp" #include "serif/utils/misc/concepts/filter.hpp" int main() { using serif::discretization::domain::schema::validation::SchemaValidationResult; using serif::discretization::domain::schema::validation::validate_schema; using serif::discretization::domain::schema::CoreEnvelopeVacuumDomainSchema; using namespace serif::discretization::blocks; const auto smesh_result = stroid::IO::LoadStroidMesh("sandbox.smesh"); if (not smesh_result.has_value()) { throw std::runtime_error("Failed to load sandbox.smesh"); } const stroid::StroidMesh& smesh = smesh_result.value(); SchemaValidationResult result = validate_schema(*smesh.mesh); std::println("{}", result); std::println("{}", serif::discretization::forms::mass::name); using AllTerms = serif::utils::types::TypeList< density::mass, displacement::vector, surface_deformation::coefficients, surface_deformation::shape_equilibrium, gravity::potential, gravity::gradient, enthalpy::specific >; using SpatialTerms = serif::utils::misc::concepts::FilterT; }