Files
MeanField/libmeanfield/interface/models/structure/polytropic.cppm

34 lines
831 B
C++

module;
#include <mfem.hpp>
export module mean_field:model.structure.polytropic;
export import :eos.polytrope;
export import :model.structure.base;
export import :seed.lane_emden;
import :utils.misc;
export namespace mean_field::models::structure {
class PolytropicStructure final {
public:
explicit PolytropicStructure(
eos::Polytrope equationOfState,
double targetMass
);
[[nodiscard]] const eos::Polytrope &equationOfState() const noexcept;
[[nodiscard]] double targetMass() const noexcept;
[[nodiscard]] StructureSeed makeInitialSeed(const StructureSeedRequest &request) const;
void validate() const;
private:
eos::Polytrope m_equationOfState;
double m_targetMass;
};
} // namespace mean_field::models::structure