2026-09-15 10:42:00 -04:00
|
|
|
#include <print>
|
|
|
|
|
|
|
|
|
|
#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"
|
2026-09-19 07:35:57 -04:00
|
|
|
#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"
|
2026-09-15 10:42:00 -04:00
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
using serif::discretization::domain::schema::validation::SchemaValidationResult;
|
|
|
|
|
using serif::discretization::domain::schema::validation::validate_schema;
|
|
|
|
|
using serif::discretization::domain::schema::CoreEnvelopeVacuumDomainSchema;
|
2026-09-19 07:35:57 -04:00
|
|
|
using namespace serif::discretization::blocks;
|
2026-09-15 10:42:00 -04:00
|
|
|
|
|
|
|
|
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<CoreEnvelopeVacuumDomainSchema>(*smesh.mesh);
|
|
|
|
|
std::println("{}", result);
|
2026-09-19 07:35:57 -04:00
|
|
|
|
|
|
|
|
std::println("{}", serif::discretization::forms::mass<serif::discretization::blocks::gravity::gradient, serif::discretization::blocks::gravity::gradient>::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<AllTerms, IsSpatialTerm>;
|
2026-09-15 10:42:00 -04:00
|
|
|
}
|