module; #include export module mean_field:operators.kernels.gravity_field; export import :mapping.domain_mapper; export import :fem; export namespace mean_field::operators::kernels { /* * Kernel boundary contract * ------------------------ * These low-level element kernels operate on MFEM true-DOF vectors. The * prepared operators and gravity contexts own FieldDof maps and are the * only layer that gathers/scatters reduced public coordinates. */ void apply_mapped_hdiv_mass( const fem::FEM &f, const mapping::DomainMapper &domain_mapper, const mfem::Vector &gravity_gradient_true, const mfem::Vector &displacement_true, mfem::Vector &action ); void apply_mapped_source( const fem::FEM &f, const mapping::DomainMapper &domain_mapper, const mfem::Vector &density_true, const mfem::Vector &displacement_true, mfem::Vector &action ); void apply_mapped_hdiv_mass_variation( const fem::FEM &f, const mapping::DomainMapper &domain_mapper, const mfem::Vector &gravity_gradient_true, const mfem::Vector &displacement_true, const mfem::Vector &displacement_variation_true, mfem::Vector &action ); void apply_mapped_source_variation( const fem::FEM &f, const mapping::DomainMapper &domain_mapper, const mfem::Vector &density_true, const mfem::Vector &displacement_true, const mfem::Vector &displacement_variation_true, mfem::Vector &action_variation ); } // namespace mean_field::operators::kernels