5#include "cdm/properties/SEScalarElectricCharge.h"
6#include "cdm/properties/SEScalarElectricPotential.h"
7#include "cdm/properties/SEScalarPressure.h"
8#include "cdm/properties/SEScalarVolume.h"
9#include "cdm/properties/SEScalarTemperature.h"
10#include "cdm/properties/SEScalarEnergy.h"
12enum class eBlackBox_Property_Type
18#define CIRCUIT_NODE_TEMPLATE typename PotentialScalar, typename QuantityScalar, \
19 typename PotentialUnit, typename QuantityUnit
20#define CIRCUIT_NODE_TYPES PotentialScalar,QuantityScalar, \
21 PotentialUnit,QuantityUnit
22#define ELECTRICAL_CIRCUIT_NODE SEScalarElectricPotential, SEScalarElectricCharge, \
23 ElectricPotentialUnit, ElectricChargeUnit
24#define FLUID_CIRCUIT_NODE SEScalarPressure, SEScalarVolume, \
25 PressureUnit, VolumeUnit
26#define THERMAL_CIRCUIT_NODE SEScalarTemperature, SEScalarEnergy, \
27 TemperatureUnit, EnergyUnit
29template<CIRCUIT_NODE_TEMPLATE>
33 template<
typename NodeType,
typename PathType>
friend class SECircuit;
99#include "cdm/circuit/SECircuitNode.hxx"
Definition: PBCircuit.h:26
Definition: SECircuit.h:13
Definition: SECircuitNode.h:31
bool IsReferenceNode() const
virtual void ImposePotential(double v, const PotentialUnit &unit)
void SetCalculatorIndex(const int index)
void RemoveAsReferenceNode()
bool m_IsPartOfBlackBox
Definition: SECircuitNode.h:78
virtual void ImposeQuantity(const QuantityScalar &s)
QuantityScalar * m_Quantity
Definition: SECircuitNode.h:88
virtual bool IsQuantityImposed() const
int GetCalculatorIndex() const
bool m_IsReferenceNode
Definition: SECircuitNode.h:95
void SetAsReferenceNode()
virtual bool IsPartOfBlackBox() const
virtual bool IsPotentialImposed() const
SECircuitNode(const std::string &name, Logger *logger)
QuantityScalar * m_NextQuantity
Definition: SECircuitNode.h:89
virtual QuantityScalar & GetQuantity()
virtual std::string GetName() const
virtual void ImposePotential(const PotentialScalar &s)
virtual void SetPartOfBlackBox(bool b)
PotentialScalar * m_Potential
Definition: SECircuitNode.h:81
eBlackBox_Property_Type m_QuantityType
Definition: SECircuitNode.h:91
bool m_IsBlackBoxMiddle
Definition: SECircuitNode.h:79
eBlackBox_Property_Type m_PotentialType
Definition: SECircuitNode.h:83
virtual QuantityScalar & GetNextQuantity()
virtual bool HasNextPotential() const
virtual void RemoveImposedPotential()
virtual bool HasNextQuantity() const
virtual bool IsBlackBoxMiddle() const
std::string m_Name
Definition: SECircuitNode.h:77
virtual PotentialScalar & GetNextPotential()
virtual void ImposeQuantity(double v, const QuantityUnit &unit)
virtual bool HasQuantityBaseline() const
virtual void RemoveImposedQuantity()
QuantityScalar * m_QuantityBaseline
Definition: SECircuitNode.h:90
PotentialScalar * m_NextPotential
Definition: SECircuitNode.h:82
int m_CalculatorIndex
Definition: SECircuitNode.h:94
virtual QuantityScalar & GetQuantityBaseline()
virtual bool HasQuantity() const
virtual bool HasPotential() const
virtual PotentialScalar & GetPotential()