19 MNAInterface::List mSubcomponentsMNA;
20 MNAInterface::List mSubcomponentsPreStepBeforeParent;
21 MNAInterface::List mSubcomponentsPreStepAfterParent;
22 MNAInterface::List mSubcomponentsPostStepBeforeParent;
23 MNAInterface::List mSubcomponentsPostStepAfterParent;
25 std::vector<CPS::Attribute<Matrix>::Ptr> mRightVectorStamps;
34 using Ptr = std::shared_ptr<CompositePowerComp<VarType>>;
35 using List = std::vector<Ptr>;
39 Logger::Level logLevel)
45 Bool hasPostStep =
true,
46 Logger::Level logLevel = Logger::Level::off)
58 return mSubcomponentsMNA;
78 MNA_SUBCOMP_TASK_ORDER preStepOrder,
79 MNA_SUBCOMP_TASK_ORDER postStepOrder,
80 Bool contributeToRightVector);
85 Attribute<Matrix>::Ptr leftVector)
override;
94 Attribute<Matrix>::Ptr &leftVector)
override;
97 AttributeBase::List &prevStepDependencies,
98 AttributeBase::List &attributeDependencies,
99 AttributeBase::List &modifiedAttributes)
override;
103 AttributeBase::List &attributeDependencies,
104 AttributeBase::List &modifiedAttributes,
105 Attribute<Matrix>::Ptr &leftVector)
override;
108 virtual void mnaParentInitialize(Real omega, Real timeStep,
109 Attribute<Matrix>::Ptr leftVector){
112 virtual void mnaParentApplySystemMatrixStamp(SparseMatrixRow &systemMatrix){
115 virtual void mnaParentApplyRightSideVectorStamp(Matrix &rightVector){
118 virtual void mnaParentPreStep(Real time, Int timeStepCount){
121 virtual void mnaParentPostStep(Real time, Int timeStepCount,
122 Attribute<Matrix>::Ptr &leftVector){
126 mnaParentAddPreStepDependencies(AttributeBase::List &prevStepDependencies,
127 AttributeBase::List &attributeDependencies,
128 AttributeBase::List &modifiedAttributes){
132 mnaParentAddPostStepDependencies(AttributeBase::List &prevStepDependencies,
133 AttributeBase::List &attributeDependencies,
134 AttributeBase::List &modifiedAttributes,
135 Attribute<Matrix>::Ptr &leftVector){
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.
CompositePowerComp(String uid, String name, Bool hasPreStep, Bool hasPostStep, Logger::Level logLevel)
Basic constructor that takes UID, name and log level.
MNASimPowerComp(String uid, String name, Bool hasPreStep, Bool hasPostStep, Logger::Level logLevel)
Basic constructor that takes UID, name and log level.