Files
MeanField_SERiF/tests/sandbox/discritization_sandbox.cpp

53 lines
2.1 KiB
C++
Raw Normal View History

#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"
#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<CoreEnvelopeVacuumDomainSchema>(*smesh.mesh);
std::println("{}", result);
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>;
}