28class MNAStateSpaceExtractor {
30 using Ptr = std::shared_ptr<MNAStateSpaceExtractor>;
32 MNAStateSpaceExtractor() =
default;
34 void initialize(
const CPS::MNAInterface::List &components, UInt mnaVectorSize,
38 Bool systemMatrixChanged);
40 Bool isInitialized()
const {
return mInitialized; }
42 UInt getStateCount()
const {
return mStateCount; }
44 Real getTimeStep()
const {
return mTimeStep; }
46 const Matrix &getDiscreteStateMatrix()
const {
return mAd; }
49 struct ContributorEntry {
50 MNAStateSpaceContributor::Ptr contributor;
56 void allocateMatrices();
58 void stampStaticMatrices();
60 void restampVariableMatrices();
62 void rebuildCombinedMatrices();
66 Bool mInitialized =
false;
68 UInt mMnaVectorSize = 0;
74 Bool mHasVariableContributors =
false;
76 Bool mStateMatrixValid =
false;
78 std::vector<ContributorEntry> mContributorEntries;
80 Matrix mAdLocalStatic;
84 Matrix mAdLocalVariable;
85 Matrix mBdMnaVariable;
86 Matrix mCdMnaVariable;