feat(surface): surface deformation prescriptions
restricted the unknown state vector to surface deformation and implemented one prescription, NodalRadialSurface, while the full volumetric displacment field is reconstructed analytically from that. This reduced the number of degrees of freedom in the system by a factor of 80 while also removing many null vectors from the system.
This commit is contained in:
@@ -303,22 +303,68 @@ export namespace field_dof_test_utils {
|
||||
} // namespace field_dof_test_utils
|
||||
|
||||
export namespace tags {
|
||||
inline constexpr auto geometry = make_tag("geometry");
|
||||
inline constexpr auto physics = make_tag("physics");
|
||||
inline constexpr auto unit = make_tag("unit");
|
||||
inline constexpr auto mesh = make_tag("mesh");
|
||||
inline constexpr auto integration = make_tag("integration");
|
||||
inline constexpr auto solver = make_tag("solver");
|
||||
inline constexpr auto integrator = make_tag("integrator");
|
||||
inline constexpr auto mapping = make_tag("mapping");
|
||||
inline constexpr auto utils = make_tag("utils");
|
||||
inline constexpr auto mfem_operators = make_tag("operators");
|
||||
inline constexpr auto initialization = make_tag("initialization");
|
||||
inline constexpr auto accuracy = make_tag("accuracy");
|
||||
inline constexpr auto closure = make_tag("closure");
|
||||
inline constexpr auto kernels = make_tag("kernels");
|
||||
inline constexpr auto surface = make_tag("surface");
|
||||
inline constexpr auto model = make_tag("model");
|
||||
inline constexpr auto geometry = make_tag("geometry");
|
||||
inline constexpr auto physics = make_tag("physics");
|
||||
inline constexpr auto unit = make_tag("unit");
|
||||
inline constexpr auto mesh = make_tag("mesh");
|
||||
inline constexpr auto integration = make_tag("integration");
|
||||
inline constexpr auto solver = make_tag("solver");
|
||||
inline constexpr auto integrator = make_tag("integrator");
|
||||
inline constexpr auto mapping = make_tag("mapping");
|
||||
inline constexpr auto utils = make_tag("utils");
|
||||
inline constexpr auto mfem_operators = make_tag("operators");
|
||||
inline constexpr auto initialization = make_tag("initialization");
|
||||
inline constexpr auto accuracy = make_tag("accuracy");
|
||||
inline constexpr auto closure = make_tag("closure");
|
||||
inline constexpr auto kernels = make_tag("kernels");
|
||||
inline constexpr auto surface = make_tag("surface");
|
||||
inline constexpr auto model = make_tag("model");
|
||||
inline constexpr auto deformation = geometry & solver & make_tag("deformation");
|
||||
inline constexpr auto deformation_type_contract = deformation & unit & make_tag("type_contract");
|
||||
inline constexpr auto surface_deformation = deformation & surface & make_tag("surface_deformation");
|
||||
inline constexpr auto interior_deformation_extension = deformation & make_tag("interior_extension");
|
||||
inline constexpr auto vacuum_deformation_extension = deformation & make_tag("vacuum_extension");
|
||||
inline constexpr auto deformation_pullback = deformation & make_tag("pullback");
|
||||
inline constexpr auto surface_deformation_type_contract = deformation & surface & unit &
|
||||
make_tag("surface_deformation") &
|
||||
make_tag("type_contract") & make_tag("pullback");
|
||||
inline constexpr auto interior_deformation_extension_type_contract =
|
||||
deformation & unit & make_tag("interior_extension") & make_tag("type_contract") & make_tag("pullback");
|
||||
inline constexpr auto vacuum_deformation_extension_type_contract =
|
||||
deformation & unit & make_tag("vacuum_extension") & make_tag("type_contract") & make_tag("pullback");
|
||||
inline constexpr auto surface_deformation_dof =
|
||||
surface & geometry & mesh & make_tag("surface_deformation") & make_tag("dof");
|
||||
inline constexpr auto surface_deformation_dof_unit = surface_deformation_dof & unit;
|
||||
inline constexpr auto surface_deformation_dof_topology =
|
||||
surface_deformation_dof & integration & make_tag("topology");
|
||||
inline constexpr auto surface_deformation_dof_schema = surface_deformation_dof & integration & make_tag("schema");
|
||||
inline constexpr auto surface_deformation_dof_parallel =
|
||||
surface_deformation_dof & integration & make_tag("parallel");
|
||||
inline constexpr auto nodal_radial_surface =
|
||||
surface & geometry & make_tag("surface_deformation") & make_tag("nodal_radial");
|
||||
inline constexpr auto nodal_radial_surface_validation = nodal_radial_surface & unit & make_tag("validation");
|
||||
inline constexpr auto nodal_radial_surface_analytic =
|
||||
nodal_radial_surface & integration & accuracy & make_tag("analytic_comparison");
|
||||
inline constexpr auto nodal_radial_surface_linearization =
|
||||
nodal_radial_surface & integration & make_tag("jacobian") & make_tag("adjoint");
|
||||
inline constexpr auto radial_deformation_extension = deformation & mapping & make_tag("radial_extension");
|
||||
inline constexpr auto radial_deformation_extension_validation =
|
||||
radial_deformation_extension & unit & make_tag("validation");
|
||||
inline constexpr auto radial_deformation_extension_analytic =
|
||||
radial_deformation_extension & integration & accuracy & make_tag("analytic_comparison");
|
||||
inline constexpr auto radial_deformation_extension_linearization =
|
||||
radial_deformation_extension & integration & make_tag("jacobian") & make_tag("adjoint");
|
||||
inline constexpr auto radial_deformation_extension_mapping =
|
||||
radial_deformation_extension & integration & make_tag("determinant");
|
||||
inline constexpr auto domain_deformation = deformation & mapping & solver & make_tag("domain_deformation");
|
||||
inline constexpr auto domain_deformation_type_contract = domain_deformation & unit & make_tag("type_contract");
|
||||
inline constexpr auto domain_deformation_composition = domain_deformation & integration & make_tag("composition");
|
||||
inline constexpr auto domain_deformation_linearization =
|
||||
domain_deformation & integration & make_tag("jacobian") & make_tag("adjoint");
|
||||
inline constexpr auto domain_deformation_geometry =
|
||||
domain_deformation & integration & geometry & make_tag("determinant");
|
||||
inline constexpr auto reduced_stellar_geometry =
|
||||
domain_deformation & integration & physics & make_tag("reduced_coordinates");
|
||||
|
||||
inline constexpr auto field = sub_tag(mesh & physics, "field");
|
||||
inline constexpr auto field_dof = field & make_tag("dof");
|
||||
@@ -412,10 +458,13 @@ export namespace tags {
|
||||
equation_of_state_consumer_contract & make_tag("pressure_force");
|
||||
inline constexpr auto structure_seed_equation_of_state_contract =
|
||||
equation_of_state_consumer_contract & make_tag("structure_seed");
|
||||
inline constexpr auto stellar_model_type_contract = barotrope & model & unit & make_tag("type_contract");
|
||||
inline constexpr auto stellar_model_runtime_view = barotrope & model & unit & make_tag("runtime_view");
|
||||
inline constexpr auto surface_prescription_type_contract =
|
||||
surface & physics & unit & make_tag("prescription") & make_tag("type_contract");
|
||||
inline constexpr auto stellar_model_type_contract = barotrope & model & unit & make_tag("type_contract");
|
||||
inline constexpr auto stellar_model_runtime_view = barotrope & model & unit & make_tag("runtime_view");
|
||||
inline constexpr auto stellar_model_deformation_ownership = model & deformation & unit & make_tag("ownership");
|
||||
inline constexpr auto stellar_model_deformation_compilation =
|
||||
model & deformation & integration & make_tag("compilation");
|
||||
inline constexpr auto surface_condition_type_contract =
|
||||
surface & physics & unit & make_tag("condition") & make_tag("type_contract");
|
||||
inline constexpr auto surface_constraint_compilation =
|
||||
surface & physics & unit & make_tag("constraint_compilation");
|
||||
inline constexpr auto surface_constraint_jacobian = surface_constraint_compilation & jacobian;
|
||||
|
||||
Reference in New Issue
Block a user