Go to the documentation of this file. 1 #ifndef SimTK_SimTKCOMMON_SUBSYSTEM_GUTS_H_
2 #define SimTK_SimTKCOMMON_SUBSYSTEM_GUTS_H_
36 class DecorativeGeometry;
84 {
return s.
allocateQ(getMySubsystemIndex(), qInit); }
86 {
return s.
allocateU(getMySubsystemIndex(), uInit); }
88 {
return s.
allocateZ(getMySubsystemIndex(), zInit); }
96 (getMySubsystemIndex(),invalidates,v,updateDependsOn); }
101 (getMySubsystemIndex(), dependsOn, computedBy, v); }
104 {
return allocateCacheEntry(state, g, g, v); }
110 {
return s.
allocateQErr(getMySubsystemIndex(), nqerr); }
112 {
return s.
allocateUErr(getMySubsystemIndex(), nuerr); }
120 {
return s.
getQ(getMySubsystemIndex()); }
122 {
return s.
getU(getMySubsystemIndex()); }
124 {
return s.
getZ(getMySubsystemIndex()); }
135 {
return s.
getQDot(getMySubsystemIndex()); }
137 {
return s.
getUDot(getMySubsystemIndex()); }
139 {
return s.
getZDot(getMySubsystemIndex()); }
141 {
return s.
getQDotDot(getMySubsystemIndex()); }
144 {
return s.
updQDot(getMySubsystemIndex()); }
146 {
return s.
updUDot(getMySubsystemIndex()); }
148 {
return s.
updZDot(getMySubsystemIndex()); }
150 {
return s.
updQDotDot(getMySubsystemIndex()); }
153 {
return s.
getQErr(getMySubsystemIndex()); }
155 {
return s.
getUErr(getMySubsystemIndex()); }
162 {
return s.
getUDotErr(getMySubsystemIndex()); }
169 {
return s.
updQErr(getMySubsystemIndex()); }
171 {
return s.
updUErr(getMySubsystemIndex()); }
173 {
return s.
updUDotErr(getMySubsystemIndex()); }
180 {
return s.
getQStart(getMySubsystemIndex()); }
182 {
return s.
getNQ(getMySubsystemIndex()); }
185 {
return s.
getUStart(getMySubsystemIndex()); }
187 {
return s.
getNU(getMySubsystemIndex()); }
190 {
return s.
getZStart(getMySubsystemIndex()); }
192 {
return s.
getNZ(getMySubsystemIndex()); }
197 {
return s.
getNQErr(getMySubsystemIndex()); }
202 {
return s.
getNUErr(getMySubsystemIndex()); }
222 SimTK_ASSERT(q.size() == getNQ(s),
"Subsystem::Guts::setQ()");
226 SimTK_ASSERT(u.size() == getNU(s),
"Subsystem::Guts::setU()");
230 SimTK_ASSERT(z.size() == getNZ(s),
"Subsystem::Guts::setZ()");
259 bool isDiscreteVarUpdateValueRealized
262 void markDiscreteVarUpdateValueRealized
295 "Subsystem::Guts::getMeasure()");
300 bool isInSameSystem(
const Subsystem& otherSubsystem)
const;
314 m_mySubsystemIndex = id;
317 SimTK_ASSERT(isInSystem(),
"Subsystem::getMySubsystemIndex()");
318 return m_mySubsystemIndex;
326 {
return m_subsystemTopologyRealized; }
336 void invalidateSubsystemTopologyCache()
const;
351 void realizeSubsystemTopology (
State&)
const;
352 void realizeSubsystemModel (
State&)
const;
353 void realizeSubsystemInstance (
const State&)
const;
354 void realizeSubsystemTime (
const State&)
const;
355 void realizeSubsystemPosition (
const State&)
const;
356 void realizeSubsystemVelocity (
const State&)
const;
357 void realizeSubsystemDynamics (
const State&)
const;
358 void realizeSubsystemAcceleration(
const State&)
const;
359 void realizeSubsystemReport (
const State&)
const;
366 void calcDecorativeGeometryAndAppend
369 void createScheduledEvent(
const State& state,
EventId& eventId)
const;
370 void createTriggeredEvent(
const State& state,
EventId& eventId,
378 void calcEventTriggerInfo
380 void calcTimeOfNextScheduledEvent
382 bool includeCurrentTime)
const;
383 void calcTimeOfNextScheduledReport
385 bool includeCurrentTime)
const;
422 virtual int calcDecorativeGeometryAndAppendImpl
425 virtual void calcEventTriggerInfoImpl
427 virtual void calcTimeOfNextScheduledEventImpl
429 bool includeCurrentTime)
const {}
430 virtual void calcTimeOfNextScheduledReportImpl
432 bool includeCurrentTime)
const {}
433 virtual void handleEventsImpl
437 virtual void reportEventsImpl
445 SimTK_ASSERT(m_myHandle,
"Subsystem::getOwnerSubsystemHandle()");
451 SimTK_ASSERT(m_myHandle,
"Subsystem::getOwnerSubsystemHandle()");
474 String m_subsystemVersion;
486 mutable bool m_subsystemTopologyRealized;
532 #endif // SimTK_SimTKCOMMON_SUBSYSTEM_GUTS_H_
const Vector & getZWeights(SubsystemIndex) const
MeasureIndex adoptMeasure(AbstractMeasure &m)
Add a new Measure to this Subsystem.
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:280
Vector & updUErr(SubsystemIndex) const
DiscreteVariableIndex allocateDiscreteVariable(State &s, Stage g, AbstractValue *v) const
Definition: SubsystemGuts.h:91
const Vector & getEventTriggersByStage(Stage) const
const Vector & getQDot(SubsystemIndex) const
Per-subsystem access to the shared cache entries.
bool hasOwnerSubsystemHandle() const
Check whether this Subsystem::Guts object is currently owned by some Subsystem handle object.
Definition: SubsystemGuts.h:463
Vector & updUDotErr(const State &s) const
Definition: SubsystemGuts.h:172
virtual int realizeSubsystemModelImpl(State &s) const
Definition: SubsystemGuts.h:413
CacheEntryIndex getDiscreteVarUpdateIndex(SubsystemIndex, DiscreteVariableIndex) const
For an auto-updating discrete variable, return the CacheEntryIndex for its associated update cache en...
UIndex allocateU(State &s, const Vector &uInit) const
Definition: SubsystemGuts.h:85
void setOwnerSubsystemHandle(Subsystem &subsys)
Provide a reference to the Subsystem handle object that is the unique owner of this Subsystem::Guts o...
Definition: SubsystemGuts.h:459
const AbstractValue & getDiscreteVarUpdateValue(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:254
AbstractValue & updCacheEntry(const State &s, CacheEntryIndex index) const
Definition: SubsystemGuts.h:246
EventTriggerByStageIndex allocateEventTrigger(SubsystemIndex, Stage stage, int nevent) const
Allocate room for nevent witness function values that will be available at the indicated stage.
const Vector & getMultipliers(const State &s) const
Definition: SubsystemGuts.h:163
Subsystem & updOwnerSubsystemHandle()
Return a writable reference to the Subsystem handle object that is the unique owner of this Subsystem...
Definition: SubsystemGuts.h:450
SystemMultiplierIndex getMultipliersStart(const State &s) const
Definition: SubsystemGuts.h:209
int getNU() const
Get total number of shared u's (generalized speeds; mobilities).
A Subsystem is expected to be part of a larger System and to have interdependencies with other subsys...
Definition: Subsystem.h:55
SystemUDotErrIndex getUDotErrStart(SubsystemIndex) const
virtual int realizeSubsystemTopologyImpl(State &s) const
Definition: SubsystemGuts.h:412
CacheEntryIndex getDiscreteVarUpdateIndex(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:251
const String & getName() const
Report back the name supplied on construction; this is not interpreted in any way by Simbody.
Definition: SubsystemGuts.h:65
SystemYErrIndex getQErrStart() const
Returns the yErr index at which the qErr's begin. Callable at Instance stage.
bool isInSameSystem(const Subsystem &otherSubsystem) const
Return true if this Subsystem is contained in the same System as contains the given otherSubsystem.
Definition: SubsystemGuts.h:517
void setSystem(System &system, SubsystemIndex subx)
Inform this Subsystem of the System that contains it, as well as the SubsystemIndex which the System ...
Definition: SubsystemGuts.h:524
These are all the possible causes for events.
Definition: Event.h:126
Vector & updZ(SubsystemIndex)
Vector & updEventTriggersByStage(Stage) const
Vector & updEventTriggersByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:176
const Vector & getUDot(const State &s) const
Definition: SubsystemGuts.h:136
int getNUDotErr() const
Return the total number nudotErr=mp+mv+ma of cache entries for acceleration-level constraint errors (...
const Vector & getEventTriggersByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:165
Options for the handleEvent() method.
Definition: Event.h:269
void markCacheValueRealized(const State &s, CacheEntryIndex cx) const
Definition: SubsystemGuts.h:269
bool isCacheValueRealized(SubsystemIndex, CacheEntryIndex) const
Check whether the value in a particular cache entry has been recalculated since the last change to th...
int getNZ(const State &s) const
Definition: SubsystemGuts.h:191
AbstractValue & updDiscreteVariable(SubsystemIndex, DiscreteVariableIndex)
Get a writable reference to the value stored in the indicated discrete state variable dv,...
Vector & updU(SubsystemIndex)
Measure_< T > getMeasure_(MeasureIndex mx) const
Return the Measure whose index within this Subsystem is given.
Definition: SubsystemGuts.h:286
int getNU(const State &s) const
Definition: SubsystemGuts.h:186
int getNUDotErr(const State &s) const
Definition: SubsystemGuts.h:206
int getNZ() const
Get total number of shared z's (auxiliary state variables).
bool subsystemTopologyHasBeenRealized() const
Returns true if this subsystem's realizeTopology() method has been called since the last topological ...
Definition: SubsystemGuts.h:325
Vector & updQ(SubsystemIndex)
SystemZIndex getZStart(const State &s) const
Definition: SubsystemGuts.h:189
const System & getSystem() const
Definition: SubsystemGuts.h:302
bool isInSystem() const
Definition: SubsystemGuts.h:299
Vector & updQDot(SubsystemIndex) const
#define SimTK_ASSERT(cond, msg)
Definition: ExceptionMacros.h:373
Vector & updQErr(const State &s) const
Definition: SubsystemGuts.h:168
Vector & updUDot(const State &s) const
Definition: SubsystemGuts.h:145
const Vector & getQErrWeights(const State &s) const
Definition: SubsystemGuts.h:156
SystemYIndex getUStart() const
Returns the y index at which the u's begin. Callable at Model stage.
SystemUDotErrIndex getUDotErrStart(const State &s) const
Definition: SubsystemGuts.h:204
Results returned by the handleEvent() method.
Definition: Event.h:345
This is a System that represents the dynamics of a particle moving along a smooth surface.
Definition: Assembler.h:37
bool subsystemTopologyHasBeenRealized() const
Returns true if this Subsystem's realizeTopology() method has been called since the last topological ...
Definition: SubsystemGuts.h:501
const Vector & getUErr(SubsystemIndex) const
const Vector & getUWeights(const State &s) const
Definition: SubsystemGuts.h:125
DiscreteVariableIndex allocateDiscreteVariable(SubsystemIndex, Stage invalidates, AbstractValue *)
The Stage supplied here in the call is the earliest subsystem stage which is invalidated by a change ...
AbstractValue & updDiscreteVarUpdateValue(SubsystemIndex, DiscreteVariableIndex) const
For an auto-updating discrete variable, return a writable reference to the value of its associated up...
const Vector & getQDotDot(SubsystemIndex) const
const Vector & getZDot(SubsystemIndex) const
const String & getVersion() const
Obtain the Subsystem version string if one was given on construction.
Definition: SubsystemGuts.h:499
const Vector & getZ(const State &s) const
Definition: SubsystemGuts.h:123
const AbstractValue & getCacheEntry(SubsystemIndex, CacheEntryIndex) const
Retrieve a const reference to the value contained in a particular cache entry.
SystemYIndex getZStart() const
Returns the y index at which the z's begin. Callable at Model stage.
const Vector & getQErr(SubsystemIndex) const
The abstract parent of all Subsystem implementation classes.
Definition: SubsystemGuts.h:47
ZIndex allocateZ(State &s, const Vector &zInit) const
Definition: SubsystemGuts.h:87
UDotErrIndex allocateUDotErr(SubsystemIndex, int nudoterr) const
Allocate nudoterr cache slots to hold the current error for acceleration-level (acceleration-only,...
AbstractValue & updCacheEntry(SubsystemIndex, CacheEntryIndex) const
Retrieve a writable reference to the value contained in a particular cache entry.
int getNUErr(const State &s) const
Definition: SubsystemGuts.h:201
This is the base class for all Measure handle classes.
Definition: Measure.h:151
Vector & updQDotDot(SubsystemIndex) const
AbstractMeasure getMeasure(MeasureIndex mx) const
Return the Measure whose index within this Subsystem is given, as an AbstractMeasure (that is,...
Definition: SubsystemGuts.h:293
Vector & updQDotDot(const State &s) const
Definition: SubsystemGuts.h:149
const Vector & getQ(const State &s) const
Definition: SubsystemGuts.h:119
QIndex allocateQ(SubsystemIndex, const Vector &qInit)
Allocate generalized coordinates q, which are second order continuous state variables.
CacheEntryIndex allocateCacheEntry(SubsystemIndex, Stage earliest, Stage latest, AbstractValue *value) const
There are two Stages supplied explicitly as arguments to this method: earliest and latest.
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:224
bool isOwnerHandle() const
Is this Subsystem handle the owner of the Subsystem::Guts object it points to? This is true if the ha...
Definition: SubsystemGuts.h:527
virtual int realizeSubsystemReportImpl(const State &s) const
Definition: SubsystemGuts.h:420
QErrIndex allocateQErr(const State &s, int nqerr) const
Definition: SubsystemGuts.h:109
const Vector & getQ(SubsystemIndex) const
Per-subsystem access to the global shared variables.
const Vector & getUErrWeights(const State &s) const
Definition: SubsystemGuts.h:158
AbstractValue & updDiscreteVariable(State &s, DiscreteVariableIndex index) const
Definition: SubsystemGuts.h:242
AbstractMeasure getMeasure(MeasureIndex) const
Obtain the Subsystem name if one was given on construction of the concrete Subsystem.
Definition: SubsystemGuts.h:511
const String & getVersion() const
Report back the version string supplied on construction; this i not interpreted in any way by Simbody...
Definition: SubsystemGuts.h:68
void invalidateSubsystemTopologyCache() const
Always call this method when a topological change is made to this Subsystem to indicate that any Stag...
virtual int realizeSubsystemDynamicsImpl(const State &s) const
Definition: SubsystemGuts.h:418
void markDiscreteVarUpdateValueRealized(SubsystemIndex, DiscreteVariableIndex) const
Mark the update value for this auto-update discrete variable as up-to-date with respect to the state ...
int getNEventTriggersByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:216
Vector & updQErr(SubsystemIndex) const
const Vector & getQDotDot(const State &s) const
Definition: SubsystemGuts.h:140
SubsystemIndex getMySubsystemIndex() const
Definition: SubsystemGuts.h:316
const Vector & getQDot(const State &s) const
Definition: SubsystemGuts.h:134
QErrIndex allocateQErr(SubsystemIndex, int nqerr) const
Allocate nqerr cache slots to hold the current error for position-level (holonomic) constraint equati...
UIndex allocateU(SubsystemIndex, const Vector &uInit)
Allocate generalized speeds u, which are first order continuous state variables related to the deriva...
Vector & updQDot(const State &s) const
Definition: SubsystemGuts.h:143
Abstract base class representing an arbitrary value of unknown type.
Definition: Value.h:49
void setQ(State &s, const Vector &q) const
Definition: SubsystemGuts.h:221
void invalidateSubsystemTopologyCache() const
Always call this method when a topological change is made to this Subsystem to indicate that any Stag...
Definition: SubsystemGuts.h:505
EventTriggerByStageIndex allocateEventTriggersByStage(const State &s, Stage g, int ntriggers) const
Definition: SubsystemGuts.h:116
bool isCacheValueRealized(const State &s, CacheEntryIndex cx) const
Definition: SubsystemGuts.h:266
Vector & updZDot(SubsystemIndex) const
Vector & updUErr(const State &s) const
Definition: SubsystemGuts.h:170
This class is basically a glorified enumerated type, type-safe and range checked but permitting conve...
Definition: Stage.h:66
System & updSystem()
Return a writable reference to the System that contains this Subsystem.
Definition: SubsystemGuts.h:522
const AbstractValue & getDiscreteVariable(const State &s, DiscreteVariableIndex index) const
Definition: SubsystemGuts.h:240
ZIndex allocateZ(SubsystemIndex, const Vector &zInit)
Allocate auxiliary first order continuous state variables z.
const Vector & getZWeights(const State &s) const
Definition: SubsystemGuts.h:127
void setSystem(System &sys, SubsystemIndex id)
Definition: SubsystemGuts.h:310
const AbstractValue & getCacheEntry(const State &s, CacheEntryIndex index) const
Definition: SubsystemGuts.h:244
Stage getStage(const State &s) const
Definition: SubsystemGuts.h:234
Real getDiscreteVarLastUpdateTime(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:248
const Vector & getZ(SubsystemIndex) const
const Subsystem & getOwnerSubsystemHandle() const
Return a const reference to the Subsystem handle object that is the unique owner of this Subsystem::G...
Definition: SubsystemGuts.h:444
virtual int realizeSubsystemInstanceImpl(const State &s) const
Definition: SubsystemGuts.h:414
SystemEventTriggerIndex getEventTriggerStartByStage(Stage) const
Return the index within the global event trigger array at which the first of the event triggers assoc...
Vector & updUDot(SubsystemIndex) const
const String & getName() const
Obtain the Subsystem name if one was given on construction of the concrete Subsystem.
Definition: SubsystemGuts.h:498
UErrIndex allocateUErr(const State &s, int nuerr) const
Definition: SubsystemGuts.h:111
SystemEventTriggerByStageIndex getEventTriggerStartByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:214
SystemUErrIndex getUErrStart(const State &s) const
Definition: SubsystemGuts.h:199
virtual int realizeSubsystemPositionImpl(const State &s) const
Definition: SubsystemGuts.h:416
MeasureIndex adoptMeasure(AbstractMeasure &)
Obtain the Subsystem name if one was given on construction of the concrete Subsystem.
Definition: SubsystemGuts.h:509
const Vector & getZDot(const State &s) const
Definition: SubsystemGuts.h:138
QIndex allocateQ(State &s, const Vector &qInit) const
Definition: SubsystemGuts.h:83
Vector & updZDot(const State &s) const
Definition: SubsystemGuts.h:147
int getNQErr(const State &s) const
Definition: SubsystemGuts.h:196
const Vector & getU(const State &s) const
Definition: SubsystemGuts.h:121
const Vector & getUDotErr(const State &s) const
Definition: SubsystemGuts.h:161
int getNQErr() const
Return the total number nqerr=mp+nQuaternions of cache entries for position-level constraint errors.
const Vector & getQErrWeights(SubsystemIndex) const
const System & getSystem() const
Return a const reference to the System that contains this Subsystem.
Definition: SubsystemGuts.h:520
bool isDiscreteVarUpdateValueRealized(SubsystemIndex, DiscreteVariableIndex) const
Check whether the update value for this auto-update discrete variable has already been computed since...
int getNMultipliers() const
Return the total number of constraint multipliers; necessarily the same as the number of acceleration...
DiscreteVariableIndex allocateAutoUpdateDiscreteVariable(SubsystemIndex, Stage invalidates, AbstractValue *, Stage updateDependsOn)
This method allocates a DiscreteVariable whose value should be updated automatically after each time ...
bool isInSameSystem(const Subsystem &otherSubsystem) const
SystemYIndex getQStart() const
Returns the y index at which the q's begin. Callable at Model stage.
The Array_<T> container class is a plug-compatible replacement for the C++ standard template library ...
Definition: Array.h:53
virtual int realizeSubsystemAccelerationImpl(const State &s) const
Definition: SubsystemGuts.h:419
SimTK_Real Real
This is the default compiled-in floating point type for SimTK, either float or double.
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:606
SystemQIndex getQStart(const State &s) const
Definition: SubsystemGuts.h:179
void advanceSubsystemToStage(SubsystemIndex, Stage) const
Advance a particular Subsystem's current stage by one to the indicated stage.
const AbstractValue & getDiscreteVarUpdateValue(SubsystemIndex, DiscreteVariableIndex) const
For an auto-updating discrete variable, return the current value of its associated update cache entry...
UDotErrIndex allocateUDotErr(const State &s, int nudoterr) const
Definition: SubsystemGuts.h:113
AbstractValue & updDiscreteVarUpdateValue(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:257
const Stage & getSubsystemStage(SubsystemIndex) const
@ Infinity
Higher than any legitimate Stage.
Definition: Stage.h:79
Vector & updQ(State &s) const
Definition: SubsystemGuts.h:130
Vector & updZ(State &s) const
Definition: SubsystemGuts.h:132
const AbstractValue & getDiscreteVariable(SubsystemIndex, DiscreteVariableIndex) const
Get the current value of the indicated discrete variable.
void setU(State &s, const Vector &u) const
Definition: SubsystemGuts.h:225
int getNMultipliers(const State &s) const
Definition: SubsystemGuts.h:211
UErrIndex allocateUErr(SubsystemIndex, int nuerr) const
Allocate nuerr cache slots to hold the current error for velocity-level (nonholonomic and holonomic f...
void markCacheValueNotRealized(SubsystemIndex, CacheEntryIndex) const
(Advanced) Normally cache entries are invalidated automatically, however this method allows manual in...
Subsystem::Guts & updSubsystemGuts()
Obtain the Subsystem name if one was given on construction of the concrete Subsystem.
Definition: Subsystem.h:354
This is the base handle class for all Measures whose value type is known, including all the Simbody b...
Definition: Measure.h:261
int getNUErr() const
Return the total number nuerr=mp+mv of cache entries for velocity-level constraint errors (including ...
const Vector & getUErrWeights(SubsystemIndex) const
int getNEventTriggersByStage(Stage) const
Return the size of the partition of event trigger functions which are evaluated at a given Stage.
SimTK::String is a plug-compatible std::string replacement (plus some additional functionality) inten...
Definition: String.h:62
This is the base class that serves as the parent of all SimTK System objects; most commonly Simbody's...
Definition: System.h:97
const Vector & getMultipliers(SubsystemIndex) const
const Vector & getUDotErr(SubsystemIndex) const
const Vector & getUErr(const State &s) const
Definition: SubsystemGuts.h:154
System & updSystem()
Definition: SubsystemGuts.h:306
void markCacheValueNotRealized(const State &s, CacheEntryIndex cx) const
Definition: SubsystemGuts.h:272
void setZ(State &s, const Vector &z) const
Definition: SubsystemGuts.h:229
Real getDiscreteVarLastUpdateTime(SubsystemIndex, DiscreteVariableIndex) const
Return the time of last update for this discrete variable.
Vector & updU(State &s) const
Definition: SubsystemGuts.h:131
Vector & updUDotErr(SubsystemIndex) const
SystemYErrIndex getUErrStart() const
Returns the yErr index at which the uErr's begin. Callable at Instance stage.
void markCacheValueRealized(SubsystemIndex, CacheEntryIndex) const
Mark the value of a particular cache entry as up to date after it has been recalculated.
SubsystemIndex getMySubsystemIndex() const
Return the SubsystemIndex within the containing System.
Definition: SubsystemGuts.h:495
virtual int realizeSubsystemVelocityImpl(const State &s) const
Definition: SubsystemGuts.h:417
SystemQErrIndex getQErrStart(const State &s) const
Definition: SubsystemGuts.h:194
void advanceToStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:236
SystemMultiplierIndex getMultipliersStart(SubsystemIndex) const
virtual int realizeSubsystemTimeImpl(const State &s) const
Definition: SubsystemGuts.h:415
const Subsystem::Guts & getSubsystemGuts() const
Obtain the Subsystem name if one was given on construction of the concrete Subsystem.
Definition: Subsystem.h:353
bool isInSystem() const
Return true if this Subsystem is contained in a System.
Definition: SubsystemGuts.h:515
SystemUIndex getUStart(const State &s) const
Definition: SubsystemGuts.h:184
const Vector & getU(SubsystemIndex) const
int getNQ(const State &s) const
Definition: SubsystemGuts.h:181
Vector & updMultipliers(const State &s) const
Definition: SubsystemGuts.h:174
const Vector & getUWeights(SubsystemIndex) const
int getNQ() const
Get total number of shared q's (generalized coordinates; second order state variables).
Vector & updMultipliers(SubsystemIndex) const
const Vector & getQErr(const State &s) const
Definition: SubsystemGuts.h:152
const Vector & getUDot(SubsystemIndex) const