export module mean_field:eos.base; export namespace mean_field::eos { class EquationOfState { public: virtual ~EquationOfState() = default; [[nodiscard]] virtual double pressure_from_density(double density) const = 0; [[nodiscard]] virtual double pressure_from_enthalpy(double enthalpy) const = 0; [[nodiscard]] virtual double enthalpy_from_density(double density) const = 0; [[nodiscard]] virtual double enthalpy_from_pressure(double pressure) const = 0; [[nodiscard]] virtual double density_from_enthalpy(double enthalpy) const = 0; [[nodiscard]] virtual double density_derivative_from_enthalpy(double enthalpy) const = 0; [[nodiscard]] virtual double pressure_derivative_from_enthalpy(double enthalpy) const = 0; [[nodiscard]] virtual double pressure_derivative_from_density(double density) const = 0; }; } // namespace mean_field::eos