2026-07-15 09:44:43 -04:00
|
|
|
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,
|
2026-08-23 10:13:53 -04:00
|
|
|
utils::DOMAINS domain = utils::DOMAINS::ALL,
|
|
|
|
|
mapping::COORDINATE_SPACE coord_space = mapping::COORDINATE_SPACE::PHYSICAL
|
2026-07-15 09:44:43 -04:00
|
|
|
);
|
|
|
|
|
|
|
|
|
|
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(
|
2026-08-04 14:24:55 -04:00
|
|
|
const fem::FEM &fem,
|
2026-08-23 10:13:53 -04:00
|
|
|
mapping::COORDINATE_SPACE coordinate_space = mapping::COORDINATE_SPACE::PHYSICAL,
|
|
|
|
|
utils::DOMAINS domain = utils::DOMAINS::STELLAR
|
2026-07-15 09:44:43 -04:00
|
|
|
);
|
2026-08-04 14:24:55 -04:00
|
|
|
} // namespace mean_field::analysis
|