34 lines
831 B
C++
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
|