DPsim
Public Types | Public Member Functions | List of all members
CPS::CompositePowerComp< VarType > Class Template Reference

Base class for composite power components. More...

#include <CompositePowerComp.h>

Inheritance diagram for CPS::CompositePowerComp< VarType >:
[legend]
Collaboration diagram for CPS::CompositePowerComp< VarType >:
[legend]

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< TopologicalPowerCompPtr
 
typedef std::vector< Ptr > List
 
- Public Types inherited from CPS::IdentifiedObject
typedef std::shared_ptr< IdentifiedObjectPtr
 
typedef std::vector< Ptr > List
 
- Public Types inherited from CPS::MNAInterface
typedef std::shared_ptr< MNAInterfacePtr
 
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.
 

Detailed Description

template<typename VarType>
class CPS::CompositePowerComp< VarType >

Base class for composite power components.

Definition at line 16 of file CompositePowerComp.h.

Member Function Documentation

◆ addMNASubComponent()

template<typename VarType >
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.

Parameters
subcThe new subcomponent
preStepOrderWhen to execute the subcomponent's pre-step in relation to the parent
postStepOrderWhen to execute the subcomponent's post-step in relation to the parent

Definition at line 8 of file CompositePowerComp.cpp.


The documentation for this class was generated from the following files: