module; #include "mean_field.h" export module mean_field:analysis.integral; export import :fem; export import :utils.domain; export import :mapping.domain_mapper; export import :mapping.types; export namespace mean_field::analysis { double domain_integrate_grid_function( const fem::FEM &fem, const mfem::GridFunction &gf, utils::DOMAINS domain = utils::DOMAINS::ALL, mapping::COORDINATE_SPACE coord_space = mapping::COORDINATE_SPACE::PHYSICAL ); mfem::Vector get_com( const fem::FEM &fem, const mfem::GridFunction &rho ); void conserve_mass( const fem::FEM &fem, mfem::GridFunction &rho, double target_mass ); double get_moment_of_inertia( const fem::FEM &fem, const mfem::GridFunction &rho ); double get_mesh_volume( const fem::FEM &fem, mapping::COORDINATE_SPACE coordinate_space = mapping::COORDINATE_SPACE::PHYSICAL, utils::DOMAINS domain = utils::DOMAINS::STELLAR ); } // namespace mean_field::analysis