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()); }
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;
496 {
return getSubsystemGuts().getMySubsystemIndex(); }
502 return getSubsystemGuts().subsystemTopologyHasBeenRealized();
506 getSubsystemGuts().invalidateSubsystemTopologyCache();
510 {
return updSubsystemGuts().adoptMeasure(m); }
512 {
return getSubsystemGuts().getMeasure(mx); }
516 {
return getSubsystemGuts().isInSystem(); }
518 {
return getSubsystemGuts().isInSameSystem(otherSubsystem); }
521 {
return getSubsystemGuts().getSystem(); }
523 {
return updSubsystemGuts().updSystem(); }
525 { updSubsystemGuts().setSystem(sys,
id); }
528 {
return guts==0 || &guts->getOwnerSubsystemHandle()==
this; }
532 #endif // SimTK_SimTKCOMMON_SUBSYSTEM_GUTS_H_ const Vector & getZWeights(SubsystemIndex) const
AbstractValue & updDiscreteVarUpdateValue(SubsystemIndex, DiscreteVariableIndex) const
For an auto-updating discrete variable, return a writable reference to the value of its associated up...
Vector & updUErr(SubsystemIndex) const
bool isInSystem() const
Return true if this Subsystem is contained in a System.
Definition: SubsystemGuts.h:515
A Subsystem is expected to be part of a larger System and to have interdependencies with other subsys...
Definition: Subsystem.h:55
const Vector & getQDotDot(SubsystemIndex) const
Vector & updQ(SubsystemIndex)
Vector & updQDot(const State &s) const
Definition: SubsystemGuts.h:143
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
Obtain the Subsystem version string if one was given on construction.
Definition: SubsystemGuts.h:499
SystemYErrIndex getUErrStart() const
Returns the yErr index at which the uErr's begin. Callable at Instance stage.
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:224
const Vector & getZDot(SubsystemIndex) const
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
const Vector & getQErr(SubsystemIndex) const
const Vector & getZ(SubsystemIndex) const
const Vector & getUDot(const State &s) const
Definition: SubsystemGuts.h:136
Unique integer type for Subsystem-local uDotErr indexing.
SubsystemIndex getMySubsystemIndex() const
Return the SubsystemIndex within the containing System.
Definition: SubsystemGuts.h:495
Vector & updMultipliers(SubsystemIndex) const
Vector & updQErr(SubsystemIndex) const
bool isDiscreteVarUpdateValueRealized(SubsystemIndex, DiscreteVariableIndex) const
Check whether the update value for this auto-update discrete variable has already been computed since...
const Stage & getSubsystemStage(SubsystemIndex) const
int getNU() const
Get total number of shared u's (generalized speeds; mobilities).
int getNUErr(const State &s) const
Definition: SubsystemGuts.h:201
MeasureIndex adoptMeasure(AbstractMeasure &)
Obtain the Subsystem name if one was given on construction of the concrete Subsystem.
Definition: SubsystemGuts.h:509
AbstractValue & updCacheEntry(const State &s, CacheEntryIndex index) const
Definition: SubsystemGuts.h:246
AbstractValue & updCacheEntry(SubsystemIndex, CacheEntryIndex) const
Retrieve a writable reference to the value contained in a particular cache entry. ...
void markCacheValueNotRealized(SubsystemIndex, CacheEntryIndex) const
(Advanced) Normally cache entries are invalidated automatically, however this method allows manual in...
void advanceSubsystemToStage(SubsystemIndex, Stage) const
Advance a particular Subsystem's current stage by one to the indicated stage.
QErrIndex allocateQErr(SubsystemIndex, int nqerr) const
Allocate nqerr cache slots to hold the current error for position-level (holonomic) constraint equati...
Unique integer type for Subsystem-local u indexing.
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
virtual int realizeSubsystemModelImpl(State &s) const
Definition: SubsystemGuts.h:413
Measure_< T > getMeasure_(MeasureIndex mx) const
Return the Measure whose index within this Subsystem is given.
Definition: SubsystemGuts.h:286
Unique integer type for Subsystem-local uErr indexing.
Real getDiscreteVarLastUpdateTime(SubsystemIndex, DiscreteVariableIndex) const
Return the time of last update for this discrete variable.
DiscreteVariableIndex allocateDiscreteVariable(State &s, Stage g, AbstractValue *v) const
Definition: SubsystemGuts.h:91
Unique integer type for Subsystem-local qErr indexing.
This class is basically a glorified enumerated type, type-safe and range checked but permitting conve...
Definition: Stage.h:66
SystemEventTriggerIndex getEventTriggerStartByStage(Stage) const
Return the index within the global event trigger array at which the first of the event triggers assoc...
int getNQErr() const
Return the total number nqerr=mp+nQuaternions of cache entries for position-level constraint errors...
Vector & updUErr(const State &s) const
Definition: SubsystemGuts.h:170
int size() const
Definition: VectorBase.h:396
SystemMultiplierIndex getMultipliersStart(const State &s) const
Definition: SubsystemGuts.h:209
const AbstractValue & getDiscreteVariable(SubsystemIndex, DiscreteVariableIndex) const
Get the current value of the indicated discrete variable.
UDotErrIndex allocateUDotErr(SubsystemIndex, int nudoterr) const
Allocate nudoterr cache slots to hold the current error for acceleration-level (acceleration-only, nonholonomic first derivative, and holonomic second derivative) constraint equations.
SystemYIndex getUStart() const
Returns the y index at which the u's begin. Callable at Model stage.
CacheEntryIndex getDiscreteVarUpdateIndex(SubsystemIndex, DiscreteVariableIndex) const
For an auto-updating discrete variable, return the CacheEntryIndex for its associated update cache en...
#define SimTK_ASSERT(cond, msg)
Definition: ExceptionMacros.h:373
SystemUDotErrIndex getUDotErrStart(SubsystemIndex) const
UDotErrIndex allocateUDotErr(const State &s, int nudoterr) const
Definition: SubsystemGuts.h:113
Vector & updUDot(const State &s) const
Definition: SubsystemGuts.h:145
bool isCacheValueRealized(SubsystemIndex, CacheEntryIndex) const
Check whether the value in a particular cache entry has been recalculated since the last change to th...
virtual int realizeSubsystemPositionImpl(const State &s) const
Definition: SubsystemGuts.h:416
void advanceToStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:236
int getNMultipliers() const
Return the total number of constraint multipliers; necessarily the same as the number of acceleration...
bool subsystemTopologyHasBeenRealized() const
Returns true if this subsystem's realizeTopology() method has been called since the last topological ...
Definition: SubsystemGuts.h:325
This is the base class for all Measure handle classes.
Definition: Measure.h:151
const Vector & getZDot(const State &s) const
Definition: SubsystemGuts.h:138
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
EventTriggerByStageIndex allocateEventTriggersByStage(const State &s, Stage g, int ntriggers) const
Definition: SubsystemGuts.h:116
int getNUErr() const
Return the total number nuerr=mp+mv of cache entries for velocity-level constraint errors (including ...
Vector & updUDotErr(SubsystemIndex) const
This unique integer type is for indexing global "multiplier-like" arrays, that is, arrays that inherently have the same dimension as the total number of Lagrange multipliers in the full System-level view of the State.
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
QIndex allocateQ(State &s, const Vector &qInit) const
Definition: SubsystemGuts.h:83
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:280
const Vector & getQDotDot(const State &s) const
Definition: SubsystemGuts.h:140
const Vector & getUWeights(const State &s) const
Definition: SubsystemGuts.h:125
int getNQ() const
Get total number of shared q's (generalized coordinates; second order state variables).
void setU(State &s, const Vector &u) const
Definition: SubsystemGuts.h:225
const Vector & getUErr(const State &s) const
Definition: SubsystemGuts.h:154
const Vector & getQErrWeights(SubsystemIndex) const
const AbstractValue & getDiscreteVariable(const State &s, DiscreteVariableIndex index) const
Definition: SubsystemGuts.h:240
AbstractValue & updDiscreteVariable(State &s, DiscreteVariableIndex index) const
Definition: SubsystemGuts.h:242
void setSystem(System &sys, SubsystemIndex id)
Definition: SubsystemGuts.h:310
const Vector & getUDotErr(const State &s) const
Definition: SubsystemGuts.h:161
const Vector & getUWeights(SubsystemIndex) const
AbstractValue & updDiscreteVariable(SubsystemIndex, DiscreteVariableIndex)
Get a writable reference to the value stored in the indicated discrete state variable dv...
Vector & updQ(State &s) const
Definition: SubsystemGuts.h:130
UIndex allocateU(State &s, const Vector &uInit) const
Definition: SubsystemGuts.h:85
Vector & updU(SubsystemIndex)
These are all the possible causes for events.
Definition: Event.h:126
const AbstractValue & getDiscreteVarUpdateValue(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:254
const Vector & getMultipliers(const State &s) const
Definition: SubsystemGuts.h:163
DiscreteVariableIndex allocateAutoUpdateDiscreteVariable(SubsystemIndex, Stage invalidates, AbstractValue *, Stage updateDependsOn)
This method allocates a DiscreteVariable whose value should be updated automatically after each time ...
SystemQErrIndex getQErrStart(const State &s) const
Definition: SubsystemGuts.h:194
SystemQIndex getQStart(const State &s) const
Definition: SubsystemGuts.h:179
bool isCacheValueRealized(const State &s, CacheEntryIndex cx) const
Definition: SubsystemGuts.h:266
Vector & updEventTriggersByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:176
virtual int realizeSubsystemDynamicsImpl(const State &s) const
Definition: SubsystemGuts.h:418
Vector & updZ(State &s) const
Definition: SubsystemGuts.h:132
Vector & updQErr(const State &s) const
Definition: SubsystemGuts.h:168
const Vector & getUDotErr(SubsystemIndex) const
The Array_<T> container class is a plug-compatible replacement for the C++ standard template library ...
Definition: Array.h:53
ZIndex allocateZ(State &s, const Vector &zInit) const
Definition: SubsystemGuts.h:87
QErrIndex allocateQErr(const State &s, int nqerr) const
Definition: SubsystemGuts.h:109
This unique integer type is for indexing global "q-like" arrays, that is, arrays that inherently have...
This unique integer type is for indexing global "qErr-like" arrays, that is, arrays that inherently h...
Unique integer type for Subsystem-local z indexing.
Subsystem & updOwnerSubsystemHandle()
Return a writable reference to the Subsystem handle object that is the unique owner of this Subsystem...
Definition: SubsystemGuts.h:450
int getNQ(const State &s) const
Definition: SubsystemGuts.h:181
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
This unique integer type is for indexing global "uErr-like" arrays, that is, arrays that inherently h...
const Vector & getZWeights(const State &s) const
Definition: SubsystemGuts.h:127
AbstractValue & updDiscreteVarUpdateValue(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:257
void setZ(State &s, const Vector &z) const
Definition: SubsystemGuts.h:229
System & updSystem()
Return a writable reference to the System that contains this Subsystem.
Definition: SubsystemGuts.h:522
SystemUDotErrIndex getUDotErrStart(const State &s) const
Definition: SubsystemGuts.h:204
const Vector & getEventTriggersByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:165
Vector & updU(State &s) const
Definition: SubsystemGuts.h:131
SystemYIndex getQStart() const
Returns the y index at which the q's begin. Callable at Model stage.
DiscreteVariableIndex allocateDiscreteVariable(SubsystemIndex, Stage invalidates, AbstractValue *)
The Stage supplied here in the call is the earliest subsystem stage which is invalidated by a change ...
Unique integer type for Subsystem-local q indexing.
int getNUDotErr(const State &s) const
Definition: SubsystemGuts.h:206
The abstract parent of all Subsystem implementation classes.
Definition: SubsystemGuts.h:47
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
virtual int realizeSubsystemTimeImpl(const State &s) const
Definition: SubsystemGuts.h:415
Higher than any legitimate Stage.
Definition: Stage.h:79
virtual int realizeSubsystemReportImpl(const State &s) const
Definition: SubsystemGuts.h:420
int getNMultipliers(const State &s) const
Definition: SubsystemGuts.h:211
void markCacheValueRealized(const State &s, CacheEntryIndex cx) const
Definition: SubsystemGuts.h:269
const System & getSystem() const
Return a const reference to the System that contains this Subsystem.
Definition: SubsystemGuts.h:520
This unique integer type is for identifying a triggered event within a particular Stage of the full S...
int getNZ(const State &s) const
Definition: SubsystemGuts.h:191
const String & getName() const
Report back the name supplied on construction; this is not interpreted in any way by Simbody...
Definition: SubsystemGuts.h:65
Stage getStage(const State &s) const
Definition: SubsystemGuts.h:234
void markCacheValueNotRealized(const State &s, CacheEntryIndex cx) const
Definition: SubsystemGuts.h:272
const Vector & getEventTriggersByStage(Stage) const
int getNQErr(const State &s) const
Definition: SubsystemGuts.h:196
virtual int realizeSubsystemTopologyImpl(State &s) const
Definition: SubsystemGuts.h:412
int getNUDotErr() const
Return the total number nudotErr=mp+mv+ma of cache entries for acceleration-level constraint errors (...
virtual int realizeSubsystemVelocityImpl(const State &s) const
Definition: SubsystemGuts.h:417
Vector & updQDot(SubsystemIndex) const
const Vector & getQDot(const State &s) const
Definition: SubsystemGuts.h:134
SimTK::String is a plug-compatible std::string replacement (plus some additional functionality) inten...
Definition: String.h:62
virtual int realizeSubsystemInstanceImpl(const State &s) const
Definition: SubsystemGuts.h:414
SystemUErrIndex getUErrStart(const State &s) const
Definition: SubsystemGuts.h:199
Vector & updZDot(const State &s) const
Definition: SubsystemGuts.h:147
Declares the user-visible part of a SimTK::State, the implementation is done in a separate internal c...
const AbstractValue & getCacheEntry(SubsystemIndex, CacheEntryIndex) const
Retrieve a const reference to the value contained in a particular cache entry.
void setQ(State &s, const Vector &q) const
Definition: SubsystemGuts.h:221
Abstract base class representing an arbitrary value of unknown type.
Definition: Value.h:49
This unique integer type is for indexing global "uDotErr-like" arrays, that is, arrays that inherentl...
UErrIndex allocateUErr(SubsystemIndex, int nuerr) const
Allocate nuerr cache slots to hold the current error for velocity-level (nonholonomic and holonomic f...
Vector & updQDotDot(SubsystemIndex) const
SystemYIndex getZStart() const
Returns the y index at which the z's begin. Callable at Model stage.
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
This unique integer type is for selecting discrete variables.
const Vector & getQErrWeights(const State &s) const
Definition: SubsystemGuts.h:156
This unique integer type is for indexing global "z-like" arrays, that is, arrays that inherently have...
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
Vector & updQDotDot(const State &s) const
Definition: SubsystemGuts.h:149
const Vector & getZ(const State &s) const
Definition: SubsystemGuts.h:123
const AbstractValue & getCacheEntry(const State &s, CacheEntryIndex index) const
Definition: SubsystemGuts.h:244
QIndex allocateQ(SubsystemIndex, const Vector &qInit)
Allocate generalized coordinates q, which are second order continuous state variables.
const AbstractValue & getDiscreteVarUpdateValue(SubsystemIndex, DiscreteVariableIndex) const
For an auto-updating discrete variable, return the current value of its associated update cache entry...
SystemMultiplierIndex getMultipliersStart(SubsystemIndex) const
const Vector & getQ(SubsystemIndex) const
Per-subsystem access to the global shared variables.
bool subsystemTopologyHasBeenRealized() const
Returns true if this Subsystem's realizeTopology() method has been called since the last topological ...
Definition: SubsystemGuts.h:501
bool isInSystem() const
Definition: SubsystemGuts.h:299
This is the base class that serves as the parent of all SimTK System objects; most commonly Simbody's...
Definition: System.h:97
bool hasOwnerSubsystemHandle() const
Check whether this Subsystem::Guts object is currently owned by some Subsystem handle object...
Definition: SubsystemGuts.h:463
const Vector & getMultipliers(SubsystemIndex) const
UIndex allocateU(SubsystemIndex, const Vector &uInit)
Allocate generalized speeds u, which are first order continuous state variables related to the deriva...
const Vector & getUErrWeights(SubsystemIndex) const
int getNU(const State &s) const
Definition: SubsystemGuts.h:186
CacheEntryIndex getDiscreteVarUpdateIndex(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:251
SystemZIndex getZStart(const State &s) const
Definition: SubsystemGuts.h:189
Provide a unique integer type for identifying Subsystems.
UErrIndex allocateUErr(const State &s, int nuerr) const
Definition: SubsystemGuts.h:111
const Vector & getUDot(SubsystemIndex) const
ZIndex allocateZ(SubsystemIndex, const Vector &zInit)
Allocate auxiliary first order continuous state variables z.
SystemEventTriggerByStageIndex getEventTriggerStartByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:214
This unique integer type is for selecting non-shared cache entries.
Real getDiscreteVarLastUpdateTime(const State &s, DiscreteVariableIndex dx) const
Definition: SubsystemGuts.h:248
Vector & updZ(SubsystemIndex)
Results returned by the handleEvent() method.
Definition: Event.h:345
const Vector & getUErr(SubsystemIndex) const
This is the header which should be included in user programs that would like to make use of all the S...
virtual int realizeSubsystemAccelerationImpl(const State &s) const
Definition: SubsystemGuts.h:419
const Vector & getU(const State &s) const
Definition: SubsystemGuts.h:121
Unique integer type for Subsystem-local, per-stage event indexing.
const Vector & getU(SubsystemIndex) const
const Vector & getQ(const State &s) const
Definition: SubsystemGuts.h:119
This unique integer type is for indexing global "u-like" arrays, that is, arrays that inherently have...
void markDiscreteVarUpdateValueRealized(SubsystemIndex, DiscreteVariableIndex) const
Mark the update value for this auto-update discrete variable as up-to-date with respect to the state ...
Vector & updMultipliers(const State &s) const
Definition: SubsystemGuts.h:174
Includes internal headers providing declarations for the basic SimTK Core classes.
Vector & updUDot(SubsystemIndex) const
CacheEntryIndex allocateCacheEntry(SubsystemIndex, Stage earliest, Stage latest, AbstractValue *value) const
There are two Stages supplied explicitly as arguments to this method: earliest and latest...
SystemYErrIndex getQErrStart() const
Returns the yErr index at which the qErr's begin. Callable at Instance stage.
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
EventTriggerByStageIndex allocateEventTrigger(SubsystemIndex, Stage stage, int nevent) const
Allocate room for nevent witness function values that will be available at the indicated stage...
const System & getSystem() const
Definition: SubsystemGuts.h:302
Vector & updUDotErr(const State &s) const
Definition: SubsystemGuts.h:172
const Vector & getQDot(SubsystemIndex) const
Per-subsystem access to the shared cache entries.
SystemUIndex getUStart(const State &s) const
Definition: SubsystemGuts.h:184
Vector & updZDot(SubsystemIndex) const
const Vector & getUErrWeights(const State &s) const
Definition: SubsystemGuts.h:158
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 & updEventTriggersByStage(Stage) const
SubsystemIndex getMySubsystemIndex() const
Definition: SubsystemGuts.h:316
int getNEventTriggersByStage(const State &s, Stage g) const
Definition: SubsystemGuts.h:216
Options for the handleEvent() method.
Definition: Event.h:269
const String & getName() const
Obtain the Subsystem name if one was given on construction of the concrete Subsystem.
Definition: SubsystemGuts.h:498
This is the base handle class for all Measures whose value type is known, including all the Simbody b...
Definition: Measure.h:261
int getNZ() const
Get total number of shared z's (auxiliary state variables).
System & updSystem()
Definition: SubsystemGuts.h:306
int getNEventTriggersByStage(Stage) const
Return the size of the partition of event trigger functions which are evaluated at a given Stage...
void markCacheValueRealized(SubsystemIndex, CacheEntryIndex) const
Mark the value of a particular cache entry as up to date after it has been recalculated.
const Vector & getQErr(const State &s) const
Definition: SubsystemGuts.h:152
This is a class to represent unique IDs for events in a type-safe way.