11 #include <dpsim-models/SimNode.h>
12 #include <dpsim-models/SimTerminal.h>
13 #include <dpsim-models/TopologicalPowerComp.h>
29 PhaseType mPhaseType = PhaseType::Single;
41 typedef std::shared_ptr<SimPowerComp<VarType>> Ptr;
42 typedef std::vector<Ptr> List;
51 Logger::Level logLevel = Logger::Level::off);
53 SimPowerComp(String name, Logger::Level logLevel = Logger::Level::off)
59 virtual typename SimPowerComp<VarType>::Ptr
clone(String name);
67 Bool hasUnconnectedTerminals();
69 void checkForUnconnectedTerminals();
71 typename SimTerminal<VarType>::List
terminals();
73 typename SimTerminal<VarType>::Ptr
terminal(UInt index);
77 void setTerminalNumber(UInt num);
83 UInt terminalPosition);
92 typename SimNode<VarType>::Ptr
node(UInt index);
94 UInt matrixNodeIndex(UInt nodeIndex);
96 UInt matrixNodeIndex(UInt nodeIndex, UInt phaseIndex);
112 typename SimNode<VarType>::List &virtualNodes();
114 typename SimNode<VarType>::Ptr
virtualNode(UInt index);
121 const MatrixVar<VarType> &intfCurrent();
123 const MatrixVar<VarType> &intfVoltage();
125 MatrixComp initialVoltage(UInt index);
127 Complex initialSingleVoltage(UInt index);
129 Bool terminalNotGrounded(UInt index);
132 void setIntfCurrent(MatrixVar<VarType> current);
134 void setIntfVoltage(MatrixVar<VarType> voltage);
136 void setVirtualNodeNumber(UInt num);
141 void connect(
typename SimNode<VarType>::List nodes);
String uid()
Returns unique id.
Base class for all components that are transmitting power.
UInt mNumFreqs
Number of network frequencies.
void setVirtualNodeAt(typename SimNode< VarType >::Ptr virtualNode, UInt nodeNum)
Sets the virtual node at index nodeNum.
SimTerminal< VarType >::List mTerminals
List of Terminals.
Bool hasVirtualNodes()
Returns true if virtual node number is greater than zero.
std::vector< bool > mMatrixNodeIndexIsGround
"Cached" flags for whether the connected nodes are grounded
UInt terminalNumber()
Returns nominal number of Terminals for this component type.
UInt virtualSimNode(UInt nodeIndex, UInt phaseIndex=0)
Get simulation node number from virtual node.
SimPowerComp(String uid, String name, Logger::Level logLevel=Logger::Level::off)
Basic constructor that takes UID, name and log level.
virtual void initializeFromNodesAndTerminals(Real frequency)
Initializes Component variables according to power flow data stored in Nodes.
UInt nodeNumber()
Returns the actual number of Nodes / Terminals that are already set to valid Nodes.
SimNode< VarType >::Ptr node(UInt index)
Get pointer to node.
SimPowerComp(String name, Logger::Level logLevel=Logger::Level::off)
Basic constructor that takes name and log level and sets the UID to name as well.
std::vector< UInt > mMatrixNodeIndices
"Cached" list of simulation nodes (to avoid shared_ptr accesses during simulation)
Matrix mFrequencies
List of considered network frequencies.
virtual void initialize(Matrix frequencies)
Initialize components with correct network frequencies.
SimTerminal< VarType >::Ptr terminal(UInt index)
Get pointer to Terminal.
SimTerminal< VarType >::List terminals()
Return list of Terminal pointers.
std::vector< UInt > virtualMatrixNodeIndices(UInt index)
Get vector of simulation node numbers from virtual Node.
void connect(typename SimNode< VarType >::List nodes)
Sets all nodes and checks for nominal number of Nodes for this Component.
SimPowerComp< VarType >::List subComponents()
Get list of subcomponents.
UInt virtualNodesNumber()
Returns nominal number of virtual nodes for this component type.
void setTerminalAt(typename SimTerminal< VarType >::Ptr terminal, UInt terminalPosition)
Sets Terminal at index terminalPosition.
SimNode< VarType >::Ptr virtualNode(UInt index)
Get pointer to virtual node.
TopologicalNode::List topologicalNodes()
Get nodes as base type TopologicalNode.
UInt terminalNumberConnected()
Returns the number of connected Terminals.
SimNode< VarType >::List mVirtualNodes
List of virtual nodes.
std::vector< std::shared_ptr< SimPowerComp< VarType > > > mSubComponents
void setTerminals(typename SimTerminal< VarType >::List terminals)
const Attribute< MatrixVar< VarType > >::Ptr mIntfCurrent
Current through component.
Bool hasSubComponents()
Returns true if subcomponents included in this component.
virtual ~SimPowerComp()
Destructor - does not do anything.
void updateMatrixNodeIndices()
Update the "cached" mMatrixNodeIndices and mMatrixNodeIndexIsGround members.
virtual SimPowerComp< VarType >::Ptr clone(String name)
Returns a modified copy of the component with the given suffix added to the name and without.
const Attribute< MatrixVar< VarType > >::Ptr mIntfVoltage
Voltage between terminals.
TopologicalTerminal::List topologicalTerminals()
Returns the list of terminals as TopologicalTerminal pointers.
std::vector< UInt > matrixNodeIndices(UInt index)
TODO replace with access to mMatrixNodeIndices.