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:
@@ -5,6 +5,12 @@ set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
set(MEAN_FIELD_UNIFORM_POLYNOMIAL_ORDER_INCREMENT 0 CACHE STRING
|
||||
"Uniform increment applied to every registered finite-element family order")
|
||||
if (NOT MEAN_FIELD_UNIFORM_POLYNOMIAL_ORDER_INCREMENT MATCHES "^[0-9]+$")
|
||||
message(FATAL_ERROR "MEAN_FIELD_UNIFORM_POLYNOMIAL_ORDER_INCREMENT must be a non-negative integer")
|
||||
endif ()
|
||||
|
||||
add_compile_options(
|
||||
-gdwarf-4
|
||||
-Wno-unused-parameter
|
||||
@@ -34,6 +40,11 @@ pkg_check_modules(stroid REQUIRED IMPORTED_TARGET stroid)
|
||||
|
||||
add_library(mean_field)
|
||||
|
||||
target_compile_definitions(mean_field
|
||||
PUBLIC
|
||||
MEAN_FIELD_UNIFORM_POLYNOMIAL_ORDER_INCREMENT=${MEAN_FIELD_UNIFORM_POLYNOMIAL_ORDER_INCREMENT}
|
||||
)
|
||||
|
||||
target_include_directories(mean_field
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libmeanfield/include>
|
||||
@@ -57,6 +68,8 @@ target_sources(mean_field
|
||||
libmeanfield/impl/integrators/viscosity.cpp
|
||||
libmeanfield/impl/mapping/domain_mapper.cpp
|
||||
libmeanfield/impl/mapping/transformations.cpp
|
||||
libmeanfield/impl/deformation/nodal_radial_surface.cpp
|
||||
libmeanfield/impl/deformation/radial_extensions.cpp
|
||||
libmeanfield/impl/operators/gravity_field.cpp
|
||||
libmeanfield/impl/operators/gravity_field_jacobian.cpp
|
||||
libmeanfield/impl/operators/kernels/gravity_kernels.cpp
|
||||
@@ -152,6 +165,13 @@ target_sources(mean_field
|
||||
libmeanfield/interface/surface/dependencies.cppm
|
||||
libmeanfield/interface/surface/compiled.cppm
|
||||
libmeanfield/interface/surface/compiler.cppm
|
||||
libmeanfield/interface/deformation/descriptors.cppm
|
||||
libmeanfield/interface/deformation/surface_prescription.cppm
|
||||
libmeanfield/interface/deformation/nodal_radial_surface.cppm
|
||||
libmeanfield/interface/deformation/interior_extension.cppm
|
||||
libmeanfield/interface/deformation/vacuum_extension.cppm
|
||||
libmeanfield/interface/deformation/radial_extensions.cppm
|
||||
libmeanfield/interface/deformation/domain_deformation.cppm
|
||||
libmeanfield/interface/models/stellar_model.cppm
|
||||
libmeanfield/interface/operators/prepared_mass_normalization.cppm
|
||||
libmeanfield/interface/operators/prepared_centering_constraint.cppm
|
||||
@@ -231,6 +251,11 @@ add_executable(tests
|
||||
tests/operators/prepared_rotation_displacement_force_affine_deformation.cpp
|
||||
tests/operators/prepared_displacement_operator.cpp
|
||||
tests/models/stellar_model.cpp
|
||||
tests/deformation/contracts.cpp
|
||||
tests/deformation/surface_scalar_dof_map.cpp
|
||||
tests/deformation/nodal_radial_surface.cpp
|
||||
tests/deformation/radial_extensions.cpp
|
||||
tests/deformation/domain_deformation.cpp
|
||||
tests/operators/prepared_mass_normalization.cpp
|
||||
tests/operators/prepared_stellar_equilibrium.cpp
|
||||
tests/utils/domain.cpp
|
||||
@@ -266,6 +291,7 @@ add_executable(stellar_null_space_experiments
|
||||
experiments/experiment_main.cpp
|
||||
experiments/rigid_motion_null_space.cpp
|
||||
experiments/gravity_completed_rigid_motion.cpp
|
||||
experiments/coupled_gauge_modes.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(stellar_null_space_experiments
|
||||
|
||||
Reference in New Issue
Block a user