feat(surface): major work on implementing surface constraints in a presciption agnostic manner

This commit is contained in:
2026-08-30 16:41:14 -04:00
parent 36adfa1174
commit 0a7f18c5c7
95 changed files with 30144 additions and 25766 deletions

View File

@@ -12,20 +12,20 @@ export import :model.structure.base;
import :utils.misc;
export namespace mean_field::models::structure {
class PolytropicStructure final : public StructureBase {
class PolytropicStructure final {
public:
explicit PolytropicStructure(
eos::Polytrope equationOfState,
double targetMass
);
[[nodiscard]] const eos::EquationOfState &equationOfState() const noexcept override;
[[nodiscard]] const eos::Polytrope &equationOfState() const noexcept;
[[nodiscard]] double targetMass() const noexcept override;
[[nodiscard]] double targetMass() const noexcept;
[[nodiscard]] StructureSeed makeInitialSeed(const StructureSeedRequest &request) const override;
[[nodiscard]] StructureSeed makeInitialSeed(const StructureSeedRequest &request) const;
void validate() const override;
void validate() const;
private:
struct LaneEmdenPoint {

View File

@@ -1,7 +1,7 @@
module;
#include <mfem.hpp>
export module mean_field:model.structure.base;
export import :eos.base;
export import :eos.runtime;
export namespace mean_field::models::structure {
struct StructureSeed {
@@ -23,7 +23,7 @@ export namespace mean_field::models::structure {
public:
virtual ~StructureBase() = default;
[[nodiscard]] virtual const eos::EquationOfState &equationOfState() const noexcept = 0;
[[nodiscard]] virtual eos::EquationOfStateView equationOfState() const noexcept = 0;
[[nodiscard]] virtual double targetMass() const noexcept = 0;
@@ -34,4 +34,4 @@ export namespace mean_field::models::structure {
protected:
StructureBase() = default;
};
} // namespace mean_field::models::structure
} // namespace mean_field::models::structure