DPsim
|
Base class for composite power components. More...
#include <CompositePowerComp.h>
Public Types | |
using | Type = VarType |
using | Ptr = std::shared_ptr< CompositePowerComp< VarType > > |
using | List = std::vector< Ptr > |
Public Types inherited from CPS::MNASimPowerComp< VarType > | |
using | Type = VarType |
using | Ptr = std::shared_ptr< MNASimPowerComp< VarType > > |
using | List = std::vector< Ptr > |
Public Types inherited from CPS::SimPowerComp< VarType > | |
typedef VarType | Type |
typedef std::shared_ptr< SimPowerComp< VarType > > | Ptr |
typedef std::vector< Ptr > | List |
Public Types inherited from CPS::TopologicalPowerComp | |
enum | Behaviour { Initialization , MNASimulation , PFSimulation } |
typedef std::shared_ptr< TopologicalPowerComp > | Ptr |
typedef std::vector< Ptr > | List |
Public Types inherited from CPS::IdentifiedObject | |
typedef std::shared_ptr< IdentifiedObject > | Ptr |
typedef std::vector< Ptr > | List |
Public Types inherited from CPS::MNAInterface | |
typedef std::shared_ptr< MNAInterface > | Ptr |
typedef std::vector< Ptr > | List |
Public Member Functions | |
CompositePowerComp (String uid, String name, Bool hasPreStep, Bool hasPostStep, Logger::Level logLevel) | |
Basic constructor that takes UID, name and log level. | |
CompositePowerComp (String name, Bool hasPreStep=true, Bool hasPostStep=true, Logger::Level logLevel=Logger::Level::off) | |
Basic constructor that takes name and log level and sets the UID to name as well. | |
virtual | ~CompositePowerComp ()=default |
Destructor - does not do anything. | |
void | addMNASubComponent (typename SimPowerComp< VarType >::Ptr subc, MNA_SUBCOMP_TASK_ORDER preStepOrder, MNA_SUBCOMP_TASK_ORDER postStepOrder, Bool contributeToRightVector) |
Add a new subcomponent implementing MNA methods. More... | |
void | mnaCompInitialize (Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector) override |
Initializes variables of components. | |
void | mnaCompApplySystemMatrixStamp (SparseMatrixRow &systemMatrix) override |
Stamps system matrix. | |
void | mnaCompApplyRightSideVectorStamp (Matrix &rightVector) override |
Stamps right side (source) vector. | |
void | mnaCompPreStep (Real time, Int timeStepCount) override |
MNA pre step operations. | |
void | mnaCompPostStep (Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) override |
MNA post step operations. | |
void | mnaCompAddPreStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) override |
Add MNA pre step dependencies. | |
void | mnaCompAddPostStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) override |
Add MNA post step dependencies. | |
virtual void | mnaParentInitialize (Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector) |
virtual void | mnaParentApplySystemMatrixStamp (SparseMatrixRow &systemMatrix) |
virtual void | mnaParentApplyRightSideVectorStamp (Matrix &rightVector) |
virtual void | mnaParentPreStep (Real time, Int timeStepCount) |
virtual void | mnaParentPostStep (Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) |
virtual void | mnaParentAddPreStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) |
virtual void | mnaParentAddPostStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) |
Public Member Functions inherited from CPS::MNASimPowerComp< VarType > | |
MNASimPowerComp (String uid, String name, Bool hasPreStep, Bool hasPostStep, Logger::Level logLevel) | |
Basic constructor that takes UID, name and log level. | |
MNASimPowerComp (String name, Bool hasPreStep=true, Bool hasPostStep=true, Logger::Level logLevel=Logger::Level::off) | |
Basic constructor that takes name and log level and sets the UID to name as well. | |
virtual | ~MNASimPowerComp ()=default |
Destructor - does not do anything. | |
void | mnaInitialize (Real omega, Real timeStep) final |
Initializes variables of components. | |
void | mnaInitialize (Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector) final |
void | mnaApplySystemMatrixStamp (SparseMatrixRow &systemMatrix) final |
Stamps system matrix. | |
void | mnaApplyRightSideVectorStamp (Matrix &rightVector) final |
Stamps right side (source) vector. | |
void | mnaUpdateVoltage (const Matrix &leftVector) final |
Update interface voltage from MNA system result. | |
void | mnaUpdateCurrent (const Matrix &leftVector) final |
Update interface current from MNA system result. | |
void | mnaPreStep (Real time, Int timeStepCount) final |
MNA pre step operations. | |
void | mnaPostStep (Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) final |
void | mnaAddPreStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes) final |
Add MNA pre step dependencies. | |
void | mnaAddPostStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) final |
void | mnaInitializeHarm (Real omega, Real timeStep, std::vector< Attribute< Matrix >::Ptr > leftVector) final |
void | mnaApplySystemMatrixStampHarm (SparseMatrixRow &systemMatrix, Int freqIdx) final |
Stamps system matrix considering the frequency index. | |
void | mnaApplyRightSideVectorStampHarm (Matrix &sourceVector) final |
Stamps right side (source) vector considering the frequency index. | |
void | mnaApplyRightSideVectorStampHarm (Matrix &sourceVector, Int freqIdx) final |
virtual void | mnaCompInitialize (Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector) |
virtual void | mnaCompUpdateVoltage (const Matrix &leftVector) |
virtual void | mnaCompUpdateCurrent (const Matrix &leftVector) |
virtual void | mnaCompPostStep (Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector) |
virtual void | mnaCompAddPostStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector) |
virtual void | mnaCompInitializeHarm (Real omega, Real timeStep, std::vector< Attribute< Matrix >::Ptr > leftVector) |
virtual void | mnaCompApplySystemMatrixStampHarm (SparseMatrixRow &systemMatrix, Int freqIdx) |
virtual void | mnaCompApplyRightSideVectorStampHarm (Matrix &sourceVector) |
virtual void | mnaCompApplyRightSideVectorStampHarm (Matrix &sourceVector, Int freqIdx) |
const Task::List & | mnaTasks () const final |
Return list of MNA tasks. | |
Attribute< Matrix >::Ptr | getRightVector () const final |
Public Member Functions inherited from CPS::SimPowerComp< VarType > | |
SimPowerComp (String uid, String name, Logger::Level logLevel=Logger::Level::off) | |
Basic constructor that takes UID, name and log level. | |
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. | |
virtual | ~SimPowerComp () |
Destructor - does not do anything. | |
virtual SimPowerComp< VarType >::Ptr | clone (String name) |
Returns a modified copy of the component with the given suffix added to the name and without. | |
UInt | terminalNumber () |
Returns nominal number of Terminals for this component type. | |
UInt | terminalNumberConnected () |
Returns the number of connected Terminals. | |
Bool | hasUnconnectedTerminals () |
void | checkForUnconnectedTerminals () |
SimTerminal< VarType >::List | terminals () |
Return list of Terminal pointers. | |
SimTerminal< VarType >::Ptr | terminal (UInt index) |
Get pointer to Terminal. | |
TopologicalTerminal::List | topologicalTerminals () |
Returns the list of terminals as TopologicalTerminal pointers. | |
void | setTerminalNumber (UInt num) |
void | setTerminals (typename SimTerminal< VarType >::List terminals) |
void | setTerminalAt (typename SimTerminal< VarType >::Ptr terminal, UInt terminalPosition) |
Sets Terminal at index terminalPosition. | |
void | updateMatrixNodeIndices () |
Update the "cached" mMatrixNodeIndices and mMatrixNodeIndexIsGround members. | |
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. | |
UInt | matrixNodeIndex (UInt nodeIndex) |
UInt | matrixNodeIndex (UInt nodeIndex, UInt phaseIndex) |
std::vector< UInt > | matrixNodeIndices (UInt index) |
TODO replace with access to mMatrixNodeIndices. | |
TopologicalNode::List | topologicalNodes () |
Get nodes as base type TopologicalNode. | |
UInt | virtualNodesNumber () |
Returns nominal number of virtual nodes for this component type. | |
Bool | hasVirtualNodes () |
Returns true if virtual node number is greater than zero. | |
Bool | hasSubComponents () |
Returns true if subcomponents included in this component. | |
SimPowerComp< VarType >::List | subComponents () |
Get list of subcomponents. | |
SimNode< VarType >::List & | virtualNodes () |
SimNode< VarType >::Ptr | virtualNode (UInt index) |
Get pointer to virtual node. | |
std::vector< UInt > | virtualMatrixNodeIndices (UInt index) |
Get vector of simulation node numbers from virtual Node. | |
UInt | virtualSimNode (UInt nodeIndex, UInt phaseIndex=0) |
Get simulation node number from virtual node. | |
const MatrixVar< VarType > & | intfCurrent () |
const MatrixVar< VarType > & | intfVoltage () |
MatrixComp | initialVoltage (UInt index) |
Complex | initialSingleVoltage (UInt index) |
Bool | terminalNotGrounded (UInt index) |
void | setIntfCurrent (MatrixVar< VarType > current) |
void | setIntfVoltage (MatrixVar< VarType > voltage) |
void | setVirtualNodeNumber (UInt num) |
void | setVirtualNodeAt (typename SimNode< VarType >::Ptr virtualNode, UInt nodeNum) |
Sets the virtual node at index nodeNum. | |
void | connect (typename SimNode< VarType >::List nodes) |
Sets all nodes and checks for nominal number of Nodes for this Component. | |
virtual void | initialize (Matrix frequencies) |
Initialize components with correct network frequencies. | |
virtual void | initializeFromNodesAndTerminals (Real frequency) |
Initializes Component variables according to power flow data stored in Nodes. | |
Public Member Functions inherited from CPS::TopologicalPowerComp | |
TopologicalPowerComp (String uid, String name, Logger::Level logLevel=Logger::Level::off) | |
Basic constructor that takes UID, name and log level. | |
TopologicalPowerComp (String name, Logger::Level logLevel=Logger::Level::off) | |
Basic constructor that takes name and log level and sets the UID to name as well. | |
virtual | ~TopologicalPowerComp () |
Destructor - does not do anything. | |
void | setBehaviour (Behaviour behaviour) |
Set behavior of component, e.g. initialization. | |
Public Member Functions inherited from CPS::IdentifiedObject | |
IdentifiedObject (const String &uid, const String &name) | |
IdentifiedObject (const String &name) | |
AttributeBase::Ptr | attribute (const String &name) const |
Return pointer to an attribute. | |
template<typename T > | |
Attribute< T >::Ptr | attributeTyped (const String &name) const |
Return pointer to an attribute. | |
const AttributeBase::Map & | attributes () const |
String | name () |
String | uid () |
Returns unique id. | |
String | type () |
Get component type (cross-platform) | |
Public Member Functions inherited from CPS::MNAInterface | |
virtual void | mnaInitialize (Real omega, Real timeStep, Attribute< Matrix >::Ptr leftVector)=0 |
virtual void | mnaPostStep (Real time, Int timeStepCount, Attribute< Matrix >::Ptr &leftVector)=0 |
MNA post step operations. | |
virtual void | mnaAddPostStepDependencies (AttributeBase::List &prevStepDependencies, AttributeBase::List &attributeDependencies, AttributeBase::List &modifiedAttributes, Attribute< Matrix >::Ptr &leftVector)=0 |
Add MNA post step dependencies. | |
virtual void | mnaInitializeHarm (Real omega, Real timeStep, std::vector< Attribute< Matrix >::Ptr > leftVector)=0 |
Initializes variables of components. | |
Additional Inherited Members | |
Public Attributes inherited from CPS::MNASimPowerComp< VarType > | |
Attribute< Matrix >::Ptr | mRightVector |
Task::List | mMnaTasks |
List of tasks that relate to using MNA for this component (usually pre-step and/or post-step) | |
Public Attributes inherited from CPS::SimPowerComp< VarType > | |
const Attribute< MatrixVar< VarType > >::Ptr | mIntfVoltage |
Voltage between terminals. | |
const Attribute< MatrixVar< VarType > >::Ptr | mIntfCurrent |
Current through component. | |
Public Attributes inherited from CPS::IdentifiedObject | |
const Attribute< String >::Ptr | mName |
Human readable name. | |
const Attribute< String >::Ptr | mUID |
Unique identifier. | |
Protected Attributes inherited from CPS::SimPowerComp< VarType > | |
SimTerminal< VarType >::List | mTerminals |
List of Terminals. | |
SimNode< VarType >::List | mVirtualNodes |
List of virtual nodes. | |
Matrix | mFrequencies |
List of considered network frequencies. | |
UInt | mNumFreqs = 0 |
Number of network frequencies. | |
PhaseType | mPhaseType = PhaseType::Single |
std::vector< std::shared_ptr< SimPowerComp< VarType > > > | mSubComponents |
std::vector< UInt > | mMatrixNodeIndices |
"Cached" list of simulation nodes (to avoid shared_ptr accesses during simulation) | |
std::vector< bool > | mMatrixNodeIndexIsGround |
"Cached" flags for whether the connected nodes are grounded | |
Protected Attributes inherited from CPS::TopologicalPowerComp | |
UInt | mNumTerminals = 0 |
Determines the number of Terminals which can be connected to network Nodes. | |
UInt | mNumVirtualNodes = 0 |
Determines the number of virtual or internal Nodes. | |
Logger::Log | mSLog |
Component logger. | |
Logger::Level | mLogLevel |
Component logger control for internal variables. | |
Behaviour | mBehaviour = Behaviour::MNASimulation |
bool | mParametersSet = false |
Flag indicating that parameters are set via setParameters() function. | |
Protected Attributes inherited from CPS::IdentifiedObject | |
AttributeList::Ptr | mAttributes = AttributeList::make() |
Attribute List. | |
Base class for composite power components.
Definition at line 16 of file CompositePowerComp.h.
void CompositePowerComp::addMNASubComponent | ( | typename SimPowerComp< VarType >::Ptr | subc, |
MNA_SUBCOMP_TASK_ORDER | preStepOrder, | ||
MNA_SUBCOMP_TASK_ORDER | postStepOrder, | ||
Bool | contributeToRightVector | ||
) |
Add a new subcomponent implementing MNA methods.
subc | The new subcomponent |
preStepOrder | When to execute the subcomponent's pre-step in relation to the parent |
postStepOrder | When to execute the subcomponent's post-step in relation to the parent |
Definition at line 8 of file CompositePowerComp.cpp.