Files
MeanField/libmeanfield/interface/operators/stellar_equilibrium_system.cppm

27 lines
991 B
C++

module;
#include <type_traits>
#include <utility>
export module mean_field:operators.stellar_equilibrium_system;
export import :operators.stellar_equilibrium_problem;
export namespace mean_field::equilibrium {
// Transitional source-compatible names. New code should use
// StellarEquilibriumProblem and equilibrium::discretize.
template <typename Candidate>
concept CurrentlySupportedStellarModel = StellarEquilibriumModel<Candidate>;
template <StellarEquilibriumModel Model> using StellarEquilibriumSystem = StellarEquilibriumProblem<Model>;
template <StellarEquilibriumModel Model>
[[nodiscard]] auto makeStellarEquilibriumSystem(
fem::FEM &finiteElementModel,
const mapping::DomainMapper &domainMapper,
Model &&stellarModel
) {
return discretize(std::forward<Model>(stellarModel), StellarDiscretization{finiteElementModel, domainMapper});
}
} // namespace mean_field::equilibrium