perf(jacobian-action): major updates to jacobian action application by removing redudant quadrature work. ~5x increase in speed

This commit is contained in:
2026-09-02 17:01:50 -04:00
parent 85500fef3b
commit 25510008dd
74 changed files with 8967 additions and 814 deletions

View File

@@ -37,6 +37,7 @@ find_package(PkgConfig REQUIRED)
pkg_check_modules(stroid REQUIRED IMPORTED_TARGET stroid)
pkg_check_modules(eigen3 REQUIRED IMPORTED_TARGET eigen3)
add_library(mean_field)
@@ -92,7 +93,11 @@ target_sources(mean_field
libmeanfield/impl/operators/prepared_rotation_displacement_force.cpp
libmeanfield/impl/operators/prepared_displacement_operator.cpp
libmeanfield/impl/models/polytropic.cpp
libmeanfield/impl/seed/lane_emden.cpp
libmeanfield/impl/seed/stellar_equilibrium_projection.cpp
libmeanfield/impl/solver/preconditioning_diagnostics.cpp
libmeanfield/impl/operators/prepared_mass_normalization.cpp
libmeanfield/impl/operators/prepared_central_density_stellar_equilibrium.cpp
libmeanfield/impl/operators/prepared_stellar_equilibrium.cpp
)
@@ -125,6 +130,7 @@ target_sources(mean_field
libmeanfield/interface/quadrature/policy.cppm
libmeanfield/interface/quadrature/mfem.cppm
libmeanfield/interface/solver/fields.cppm
libmeanfield/interface/solver/preconditioning_diagnostics.cppm
libmeanfield/interface/operators/gravity_field.cppm
libmeanfield/interface/operators/gravity_field_jacobian.cppm
libmeanfield/interface/operators/kernels/gravity_kernels.cppm
@@ -151,6 +157,7 @@ target_sources(mean_field
libmeanfield/interface/operators/kernels/rotation_displacement_force_kernels.cppm
libmeanfield/interface/operators/prepared_rotation_displacement_force.cppm
libmeanfield/interface/operators/prepared_displacement_operator.cppm
libmeanfield/interface/dimensions/quantities.cppm
libmeanfield/interface/eos/quantities.cppm
libmeanfield/interface/eos/relations.cppm
libmeanfield/interface/eos/concepts.cppm
@@ -158,9 +165,14 @@ target_sources(mean_field
libmeanfield/interface/eos/pressure_surface.cppm
libmeanfield/interface/eos/runtime.cppm
libmeanfield/interface/eos/polytropic.cppm
libmeanfield/interface/seed/lane_emden.cppm
libmeanfield/interface/models/structure/structure_base.cppm
libmeanfield/interface/models/structure/polytropic.cppm
libmeanfield/interface/models/structure_profile.cppm
libmeanfield/interface/models/specifications.cppm
libmeanfield/interface/models/typed_stellar_model.cppm
libmeanfield/interface/models/compiled_fixed_mass.cppm
libmeanfield/interface/models/compiled_fixed_central_density.cppm
libmeanfield/interface/surface/constant.cppm
libmeanfield/interface/surface/dependencies.cppm
libmeanfield/interface/surface/compiled.cppm
@@ -173,10 +185,18 @@ target_sources(mean_field
libmeanfield/interface/deformation/radial_extensions.cppm
libmeanfield/interface/deformation/domain_deformation.cppm
libmeanfield/interface/models/stellar_model.cppm
libmeanfield/interface/operators/root_manifest.cppm
libmeanfield/interface/operators/prepared_constraint.cppm
libmeanfield/interface/operators/prepared_mass_normalization.cppm
libmeanfield/interface/operators/prepared_central_density.cppm
libmeanfield/interface/operators/prepared_centering_constraint.cppm
libmeanfield/interface/operators/prepared_surface_constraint.cppm
libmeanfield/interface/operators/prepared_stellar_equilibrium.cppm
libmeanfield/interface/operators/prepared_central_density_stellar_equilibrium.cppm
libmeanfield/interface/equilibrium/stellar_discretization.cppm
libmeanfield/interface/operators/stellar_equilibrium_problem.cppm
libmeanfield/interface/seed/stellar_equilibrium_projection.cppm
libmeanfield/interface/operators/stellar_equilibrium_system.cppm
)
@@ -187,6 +207,7 @@ target_link_libraries(mean_field
mfem
PkgConfig::stroid
)
target_link_libraries(mean_field PRIVATE PkgConfig::eigen3)
add_library(test_mod)
target_sources(test_mod
@@ -209,6 +230,9 @@ pkg_check_modules(fourdst_config REQUIRED IMPORTED_TARGET fourdst_config)
add_executable(tests
tests/test_main.cpp
tests/physics/gravity.cpp
tests/physics/dimensional_quantities.cpp
tests/seed/lane_emden.cpp
tests/seed/stellar_equilibrium_projection.cpp
tests/geometry/volume.cpp
tests/quadrature/policy.cpp
tests/integrators/centrifugal.cpp
@@ -250,7 +274,13 @@ add_executable(tests
tests/operators/prepared_rotation_displacement_force_analytic.cpp
tests/operators/prepared_rotation_displacement_force_affine_deformation.cpp
tests/operators/prepared_displacement_operator.cpp
tests/operators/root_manifest.cpp
tests/operators/prepared_central_density.cpp
tests/operators/prepared_central_density_stellar_equilibrium.cpp
tests/models/model_specifications.cpp
tests/models/typed_stellar_model.cpp
tests/models/stellar_model.cpp
tests/operators/stellar_equilibrium_system.cpp
tests/deformation/contracts.cpp
tests/deformation/surface_scalar_dof_map.cpp
tests/deformation/nodal_radial_surface.cpp
@@ -263,6 +293,7 @@ add_executable(tests
tests/field/field_registry.cpp
tests/field/field_mfem.cpp
tests/field/field_dof_map.cpp
tests/solver/preconditioning_diagnostics.cpp
)
target_link_libraries(tests PRIVATE mean_field test_mod Catch2::Catch2 Boost::boost)
@@ -283,6 +314,7 @@ target_link_libraries(experiment_mod
add_executable(experiments
experiments/experiment_main.cpp
experiments/gravity_accuracy_budget.cpp
experiments/preconditioning_diagnostics.cpp
)
target_link_libraries(experiments PRIVATE mean_field test_mod experiment_mod Catch2::Catch2 Boost::boost)