Program Listing for File IPhysics1d.hpp¶
↰ Return to documentation for file (src/include/IPhysics1d.hpp)
#ifndef SRC_INCLUDE_IPHYSICS1D_HPP
#define SRC_INCLUDE_IPHYSICS1D_HPP
namespace Nextsim {
class PrognosticData;
class ExternalData;
class PhysicsData;
class IPhysics1d {
public:
virtual ~IPhysics1d() = default;
virtual void updateDerivedData(
const PrognosticData& prog, const ExternalData& exter, PhysicsData& phys)
{
updateSpecificHumidityAir(exter, phys);
updateSpecificHumidityWater(prog, exter, phys);
updateSpecificHumidityIce(prog, exter, phys);
updateAirDensity(exter, phys);
updateHeatCapacityWetAir(exter, phys);
};
// PhysicsData argument.
virtual void calculate(const PrognosticData&, const ExternalData&, PhysicsData&) = 0;
protected:
virtual void updateSpecificHumidityAir(const ExternalData& exter, PhysicsData& phys) = 0;
virtual void updateSpecificHumidityWater(
const PrognosticData& prog, const ExternalData& exter, PhysicsData& phys)
= 0;
virtual void updateSpecificHumidityIce(
const PrognosticData& prog, const ExternalData& exter, PhysicsData& phys)
= 0;
virtual void updateAirDensity(const ExternalData& exter, PhysicsData& phys) = 0;
virtual void updateHeatCapacityWetAir(const ExternalData& exter, PhysicsData& phys) = 0;
};
}
#endif /* SRC_INCLUDE_IPHYSICS1D_HPP */