module; #include export module mean_field:integrators.centrifugal; export import :mapping.domain_mapper; export namespace mean_field::integrators { class CentrifugalForceIntegrator : public mfem::BlockNonlinearFormIntegrator { public: CentrifugalForceIntegrator( const mapping::DomainMapper &map, const mfem::Vector &omega ); void SetOmega(const mfem::Vector &omega); void SetIntegrationRule(const mfem::IntegrationRule &ir); 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; mfem::Vector m_omega; const mfem::IntegrationRule *m_ir = nullptr; }; } // namespace mean_field::integrators