currently the barotope and the pressure force operator are migrated to the new support system
63 lines
2.2 KiB
C++
63 lines
2.2 KiB
C++
module;
|
|
|
|
#include <mfem.hpp>
|
|
|
|
export module mean_field:operators.kernels.barotropic_closure;
|
|
|
|
export import :eos.polytrope;
|
|
export import :fem;
|
|
export import :mapping.domain_mapper;
|
|
|
|
export namespace mean_field::operators::kernels {
|
|
/*
|
|
* Stateless full-MFEM reference kernels for
|
|
*
|
|
* R_rho = \int_{Omega_star} (rho - rho_EOS(h)) q_rho dV.
|
|
*
|
|
* These functions intentionally remain expressed in complete MFEM true
|
|
* vectors. Solver/prepared-facing support reduction belongs to
|
|
* PreparedBarotropicClosureOperator through FieldDofMap. Keeping this
|
|
* layer full-space preserves an independent reference implementation for
|
|
* R K P tests of the reduced prepared operator.
|
|
*/
|
|
void apply_barotropic_closure(
|
|
const fem::FEM &f,
|
|
const mapping::DomainMapperStateless &domainMapper,
|
|
const eos::Polytrope &equationOfState,
|
|
const mfem::Vector &densityTrue,
|
|
const mfem::Vector &enthalpyTrue,
|
|
const mfem::Vector &displacementTrue,
|
|
mfem::Vector &residual
|
|
);
|
|
|
|
void apply_barotropic_closure_density_action(
|
|
const fem::FEM &f,
|
|
const mapping::DomainMapperStateless &domainMapper,
|
|
const eos::Polytrope &equationOfState,
|
|
const mfem::Vector &densityVariationTrue,
|
|
const mfem::Vector &displacementTrue,
|
|
mfem::Vector &action
|
|
);
|
|
|
|
void apply_barotropic_closure_enthalpy_action(
|
|
const fem::FEM &f,
|
|
const mapping::DomainMapperStateless &domainMapper,
|
|
const eos::Polytrope &equationOfState,
|
|
const mfem::Vector &baseEnthalpyTrue,
|
|
const mfem::Vector &enthalpyVariationTrue,
|
|
const mfem::Vector &displacementTrue,
|
|
mfem::Vector &action
|
|
);
|
|
|
|
void apply_barotropic_closure_displacement_action(
|
|
const fem::FEM &f,
|
|
const mapping::DomainMapperStateless &domainMapper,
|
|
const eos::Polytrope &equationOfState,
|
|
const mfem::Vector &baseDensityTrue,
|
|
const mfem::Vector &baseEnthalpyTrue,
|
|
const mfem::Vector &displacementTrue,
|
|
const mfem::Vector &displacementVariationTrue,
|
|
mfem::Vector &action
|
|
);
|
|
} // namespace mean_field::operators::kernels
|