module; #include export module mean_field:integrators.gravity; import :mapping.domain_mapper; export namespace mean_field::integrators { class GravityForceIntegrator : public mfem::BlockNonlinearFormIntegrator { public: GravityForceIntegrator(const mapping::DomainMapper& map, const mfem::GridFunction& phi); void SetPotential(const mfem::GridFunction& phi); void AssembleElementVector( const mfem::Array &el, mfem::ElementTransformation &Tr, const mfem::Array &elfun, const mfem::Array &elvec ) override; void AssembleElementGrad( const mfem::Array &el, mfem::ElementTransformation &Tr, const mfem::Array &elfun, const mfem::Array2D &elmats ) override; private: const mapping::DomainMapper& m_map; const mfem::GridFunction* m_phi; }; }