Review and document initialization procedures
Opened this issue · 1 comments
dinkelbachjan commented
Current state (02.12.21):
MnaSolver::initialize
identifyTopologyObjects
- classification of power/signal comps and variable comps
MnaSolver::createEmptySystemMatrix
- is abstract and implementd by
MnaSolverEigenDense
andMnaSolverEigenSparse
- creates empty matrices
mSwitchedMatrices
andmLuFactorizations
(number depends on number of switches) MnaSolverEigenSparse::createEmptySystemMatrix
additionally createsmBaseSystemMatrix
(number also depends on number of switches)
- creates empty matrices
- is abstract and implementd by
MnaSolver::initializeComponents
initializeFromNodesAndTerminals
initialize
(here only signal comps, currentlyinitialize
of SimPowerComps inSystemTopology
)mnaInitialize
MnaSolver::initializeSystem
- calls either
initializeSystemWithParallelFrequencies
orinitializeSystemWithPrecomputedMatrices
MnaSolver::initializeSystemWithPrecomputedMatrices
: stamps static elements by callingswitchedMatrixStamp
(implemented by Sparse or Dense)MnaSolverEigenSparse::switchedMatrixStamp
stamps all static elements tomSwitchedMatrices
and calculates correspondingmLuFactorizations
- called and extended by
MnaSolverSysRecomp
- saves static switch matrices as base matrices
- add variable elements to currently active
mSwitchedMatrices
according tomCurrentSwitchStatus
- recalculates correspondingly
mLuFactorizations
according tomCurrentSwitchStatus
- calls either
PFSolver::initialize
PFSolver::initializeComponents
initializeFromNodesAndTerminals
calculatePerUnitParameters
PFSolver::determinePFBusType
dinkelbachjan commented
Results from first discussion:
We should clarify what should be initialized/instantiated in which method.
Available methods:
Constructor
initializeFromNodesAndTerminals
mnaInitialize
- Instantiate and parametrise subcomponents here?
Besides, we should prevent that components override initialize(Matrix frequencies)
. The content should be moved to abovementioned methods. Besides, SimPowerComp<Complex>::initialize(frequencies)
should be renamed.