test(tests): added test suite
The test suite is extensive. Note that LLMs were used to aid in the development of the test suite. All LLM generated code was manually reviewed.
This commit is contained in:
@@ -1,53 +1,22 @@
|
||||
#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/model/finite_elements.hpp"
|
||||
#include "serif/backend/mfem/discretization/schema.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"
|
||||
#include "polytropic_model.hpp"
|
||||
|
||||
/** @brief Build term-selected spaces and inspect their physical support on an owned stellar mesh. */
|
||||
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;
|
||||
namespace blocks = serif::discretization::blocks;
|
||||
using Schema = serif::discretization::domain::schema::CoreEnvelopeVacuumDomainSchema;
|
||||
|
||||
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);
|
||||
const auto star = serif::examples::make_polytropic_model();
|
||||
const auto finite_elements = serif::model::make_stellar_discretization(star);
|
||||
const auto& density = finite_elements.template binding<blocks::density::mass>();
|
||||
const auto result = serif::backend::mfem::discretization::validate_schema<Schema>(density.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>;
|
||||
}
|
||||
std::println("Density: {} coefficients; potential: {} coefficients", density.size(),
|
||||
finite_elements.template binding<blocks::gravity::potential>().size());
|
||||
std::println("{}", serif::discretization::forms::mass<blocks::gravity::potential, blocks::gravity::potential>::name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user