38#ifndef __SIM_THERMAL_MODEL_HH__
39#define __SIM_THERMAL_MODEL_HH__
53struct ThermalCapacitorParams;
54struct ThermalModelParams;
55struct ThermalReferenceParams;
56struct ThermalResistorParams;
66 typedef ThermalResistorParams
Params;
75 double step)
const override;
92 typedef ThermalCapacitorParams
Params;
96 double step)
const override;
127 double step)
const override;
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
This class describes a linear equation with constant coefficients.
Abstract superclass for simulation objects.
The class stores temperatures in Kelvin and provides helper methods to convert to/from Celsius.
A ThermalCapacitor is used to model a thermal capacitance between two thermal domains.
ThermalCapacitor(const Params &p)
ThermalCapacitor.
LinearEquation getEquation(ThermalNode *tn, unsigned n, double step) const override
void setNodes(ThermalNode *n1, ThermalNode *n2)
ThermalCapacitorParams Params
const double _capacitance
A ThermalDomain is used to group objects under that operate under the same temperature.
An abstract class that represents any thermal entity which is used in the circuital thermal equivalen...
void addResistor(ThermalResistor *r)
void addNode(ThermalNode *n)
std::vector< ThermalDomain * > domains
std::vector< ThermalEntity * > entities
void addReference(ThermalReference *r)
std::vector< ThermalNode * > nodes
std::vector< ThermalResistor * > resistors
void startup() override
startup() is the final initialization call before simulation.
std::vector< ThermalCapacitor * > capacitors
std::vector< ThermalNode * > eq_nodes
ThermalModelParams Params
void addDomain(ThermalDomain *d)
ThermalModel(const Params &p)
ThermalModel.
Temperature getTemperature() const
const double _step
Step in seconds for thermal updates.
void addCapacitor(ThermalCapacitor *c)
EventFunctionWrapper stepEvent
Stepping event to update the model values.
std::vector< ThermalReference * > references
A ThermalNode is used to connect thermal entities, such as resistors, capacitors, references and doma...
A ThermalReference is a thermal domain with fixed temperature.
void setNode(ThermalNode *n)
ThermalReference(const Params &p)
ThermalReference.
ThermalReferenceParams Params
LinearEquation getEquation(ThermalNode *tn, unsigned n, double step) const override
const Temperature _temperature
A ThermalResistor is used to model a thermal resistance between two thermal domains.
void setNodes(ThermalNode *n1, ThermalNode *n2)
ThermalResistor(const Params &p)
ThermalResistor.
LinearEquation getEquation(ThermalNode *tn, unsigned n, double step) const override
ThermalResistorParams Params
ClockedObject declaration and implementation.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.