12#ifndef WSFTHERMALSYSTEM_HPP
13#define WSFTHERMALSYSTEM_HPP
15#include "wsf_export.h"
32 double aSpecificHeatCapacity,
33 double aSpecificHeatCapacityHighTemp = 0.0,
34 double aEnthalpy = 0.0,
35 double aEnthalpyTransitionTemperature = 10000.0);
42 void SetMass(
double aMass) { mMass = aMass; }
60 double GetEnergy(
double aLowTemp,
double aHighTemp)
const;
62 double PrintInfo(
double aLowTemp,
double aHighTemp, ut::log::MessageStream& aMessageStream)
const;
64 void PrintState(ut::log::MessageStream& aMessageStream)
const;
69 double mSpecificHeatCapacity;
70 double mSpecificHeatCapacityHighTemp;
76 double mEnthalpyTransitionTemperature;
77 double mTotalTransitionEnergy;
78 double mTransitionEnergy;
123 virtual double TransferHeat(
double aSimTime,
double aHeatTransfer);
126 bool IsValid()
const {
return ((mComponents.size() > 0) || mIsSimple); }
133 void SetTemperature(
double aTemperature);
137 void PrintInfo(
double aLowTemp,
double aHighTemp)
const;
139 double GetRequiredHeatForTemperature(
double aTemperature)
const;
141 double GetEnergy(
double aLowTemp,
double aHighTemp)
const;
154 void CalculateHeatCapacity();
155 double GetHeatTransfer(
double aTemperature);
156 double GetTemperature(
double aHeatTransfer);
157 bool InitializeSimple();
161 double mLastTemperature;
162 double mTargetTemperature;
163 double mHighTemperature;
164 double mUpdateInterval;
165 double mLastUpdateTime;
166 double mHeatCapacity;
170 double mSimpleRechargeRate;
171 double mPowerDissipated;
172 std::vector<WsfThermalSystemComponent> mComponents;
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_THERMAL_SYSTEM
A 'thermal system' component.
Definition WsfComponentRoles.hpp:114
@ cWSF_COMPONENT_PLATFORM_PART
The component derives from WsfPlatformPart.
Definition WsfComponentRoles.hpp:98
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfComponent.hpp:39
WsfObjectTypeList(WsfScenario &aScenario, unsigned int aFlags, const std::string &aBlockName)
Definition WsfObjectTypeList.hpp:76
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfThermalSystemComponentTypes(WsfScenario &aScenario)
Definition WsfThermalSystem.cpp:759
Definition WsfThermalSystem.hpp:26
double GetEnergy(double aLowTemp, double aHighTemp) const
Definition WsfThermalSystem.cpp:578
void PrintState(ut::log::MessageStream &aMessageStream) const
Definition WsfThermalSystem.cpp:746
double GetPhaseTransitionTemperature() const
Definition WsfThermalSystem.hpp:52
double GetHeatCapacity() const
Definition WsfThermalSystem.cpp:570
double PrintInfo(double aLowTemp, double aHighTemp, ut::log::MessageStream &aMessageStream) const
Definition WsfThermalSystem.cpp:708
double GetTemperature()
Definition WsfThermalSystem.hpp:40
double GetPhaseTransitionEnergy() const
Definition WsfThermalSystem.hpp:54
void SetMass(double aMass)
Definition WsfThermalSystem.hpp:42
bool InPhaseChange() const
Definition WsfThermalSystem.hpp:58
double GetSpecificHeatCapacity() const
Definition WsfThermalSystem.hpp:50
WsfThermalSystemComponent()
Definition WsfThermalSystem.cpp:437
void SetTemperature(double aTemperature)
Set the temperature, regardless of heat transfer.
Definition WsfThermalSystem.cpp:609
double GetRemainingPhaseTransitionEnergy(bool aIsAddingHeat) const
Definition WsfThermalSystem.cpp:638
bool ProcessInput(UtInput &aInput) override
Definition WsfThermalSystem.cpp:508
double GetRequiredHeatForTemperature(double aTemperature) const
Definition WsfThermalSystem.cpp:656
double TransferHeat(double aHeatTransfer)
Update based on heat transfer.
Definition WsfThermalSystem.cpp:452
Definition WsfThermalSystem.hpp:89
WsfThermalSystem(const WsfScenario &aScenario)
Definition WsfThermalSystem.cpp:24
void SetUpdateInterval(double aUpdateInterval) override
Definition WsfThermalSystem.hpp:121
WsfThermalSystem & operator=(const WsfThermalSystem &)=delete
double GetHeatSink() const
Definition WsfThermalSystem.hpp:135
WsfComponent * CloneComponent() const override
Definition WsfThermalSystem.hpp:103
bool IsSimple() const
Return whether we are configuring this system with "simple" inputs.
Definition WsfThermalSystem.hpp:129
double GetTemperature() const
Definition WsfThermalSystem.hpp:131
double GetLowTemperature() const
Definition WsfThermalSystem.hpp:147
void * QueryInterface(int aRole) override
Definition WsfThermalSystem.hpp:107
double GetHighTemperature() const
Definition WsfThermalSystem.hpp:150
void SetHighTemperature(double aHighTemperature)
Definition WsfThermalSystem.hpp:149
void SetPowerDissipated(double aPowerDissipated)
Definition WsfThermalSystem.hpp:144
double GetUpdateInterval() const override
Definition WsfThermalSystem.hpp:120
bool IsValid() const
Return whether the system is "valid", i.e., is being utilized.
Definition WsfThermalSystem.hpp:126
void SetLowTemperature(double aLowTemperature)
Definition WsfThermalSystem.hpp:146
WsfObject * Clone() const override
Definition WsfThermalSystem.hpp:98
WsfUncloneableObject()
Definition WsfObject.hpp:148