The abstract parent of all Subsystems. More...
#include <Subsystem.h>
Classes | |
class | Guts |
The abstract parent of all Subsystem "Guts" implementation classes. More... | |
Public Member Functions | |
Subsystem () | |
Subsystem (const Subsystem &) | |
Subsystem & | operator= (const Subsystem &) |
~Subsystem () | |
const String & | getName () const |
const String & | getVersion () const |
QIndex | allocateQ (State &, const Vector &qInit) const |
UIndex | allocateU (State &, const Vector &uInit) const |
ZIndex | allocateZ (State &, const Vector &zInit) const |
DiscreteVariableIndex | allocateDiscreteVariable (State &, Stage invalidates, AbstractValue *v) const |
DiscreteVariableIndex | allocateAutoUpdateDiscreteVariable (State &, Stage invalidates, AbstractValue *v, Stage updateDependsOn) const |
CacheEntryIndex | allocateCacheEntry (const State &, Stage dependsOn, Stage computedBy, AbstractValue *v) const |
CacheEntryIndex | allocateCacheEntry (const State &state, Stage g, AbstractValue *v) const |
CacheEntryIndex | allocateLazyCacheEntry (const State &state, Stage earliest, AbstractValue *v) const |
QErrIndex | allocateQErr (const State &, int nqerr) const |
UErrIndex | allocateUErr (const State &, int nuerr) const |
UDotErrIndex | allocateUDotErr (const State &, int nudoterr) const |
EventTriggerByStageIndex | allocateEventTriggersByStage (const State &, Stage, int ntriggers) const |
const Vector & | getQ (const State &) const |
const Vector & | getU (const State &) const |
const Vector & | getZ (const State &) const |
const Vector & | getQDot (const State &) const |
const Vector & | getUDot (const State &) const |
const Vector & | getZDot (const State &) const |
const Vector & | getQDotDot (const State &) const |
const Vector & | getQErr (const State &) const |
const Vector & | getUErr (const State &) const |
const Vector & | getUDotErr (const State &) const |
const Vector & | getMultipliers (const State &) const |
const Vector & | getEventTriggersByStage (const State &, Stage) const |
Vector & | updQ (State &) const |
Vector & | updU (State &) const |
Vector & | updZ (State &) const |
void | setQ (State &s, const Vector &q) const |
void | setU (State &s, const Vector &u) const |
void | setZ (State &s, const Vector &z) const |
Vector & | updQDot (const State &) const |
Vector & | updUDot (const State &) const |
Vector & | updZDot (const State &) const |
Vector & | updQDotDot (const State &) const |
Vector & | updQErr (const State &) const |
Vector & | updUErr (const State &) const |
Vector & | updUDotErr (const State &) const |
Vector & | updMultipliers (const State &) const |
Vector & | updEventTriggersByStage (const State &, Stage) const |
Stage | getStage (const State &) const |
const AbstractValue & | getDiscreteVariable (const State &s, DiscreteVariableIndex dx) const |
Real | getDiscreteVarLastUpdateTime (const State &s, DiscreteVariableIndex dx) const |
CacheEntryIndex | getDiscreteVarUpdateIndex (const State &s, DiscreteVariableIndex dx) const |
const AbstractValue & | getDiscreteVarUpdateValue (const State &s, DiscreteVariableIndex dx) const |
AbstractValue & | updDiscreteVarUpdateValue (const State &s, DiscreteVariableIndex dx) const |
bool | isDiscreteVarUpdateValueRealized (const State &s, DiscreteVariableIndex dx) const |
void | markDiscreteVarUpdateValueRealized (const State &s, DiscreteVariableIndex dx) const |
AbstractValue & | updDiscreteVariable (State &, DiscreteVariableIndex) const |
const AbstractValue & | getCacheEntry (const State &, CacheEntryIndex) const |
AbstractValue & | updCacheEntry (const State &, CacheEntryIndex) const |
bool | isCacheValueRealized (const State &, CacheEntryIndex) const |
void | markCacheValueRealized (const State &, CacheEntryIndex) const |
SystemQIndex | getQStart (const State &) const |
int | getNQ (const State &) const |
SystemUIndex | getUStart (const State &) const |
int | getNU (const State &) const |
SystemZIndex | getZStart (const State &) const |
int | getNZ (const State &) const |
SystemQErrIndex | getQErrStart (const State &) const |
int | getNQErr (const State &) const |
SystemUErrIndex | getUErrStart (const State &) const |
int | getNUErr (const State &) const |
SystemUDotErrIndex | getUDotErrStart (const State &) const |
int | getNUDotErr (const State &) const |
SystemMultiplierIndex | getMultipliersStart (const State &) const |
int | getNMultipliers (const State &) const |
SystemEventTriggerByStageIndex | getEventTriggerStartByStage (const State &, Stage) const |
int | getNEventTriggersByStage (const State &, Stage) const |
bool | isInSystem () const |
bool | isInSameSystem (const Subsystem &otherSubsystem) const |
const System & | getSystem () const |
System & | updSystem () |
SubsystemIndex | getMySubsystemIndex () const |
bool | isOwnerHandle () const |
bool | isEmptyHandle () const |
bool | isSameSubsystem (const Subsystem &otherSubsystem) const |
bool | subsystemTopologyHasBeenRealized () const |
void | invalidateSubsystemTopologyCache () const |
MeasureIndex | adoptMeasure (AbstractMeasure &) |
AbstractMeasure | getMeasure (MeasureIndex) const |
template<class T > | |
Measure_< T > | getMeasure_ (MeasureIndex mx) const |
const Subsystem::Guts & | getSubsystemGuts () const |
Subsystem::Guts & | updSubsystemGuts () |
void | adoptSubsystemGuts (Subsystem::Guts *g) |
void | setSystem (System &, SubsystemIndex) |
Subsystem (Subsystem::Guts *g) | |
bool | hasGuts () const |
Friends | |
class | Guts |
The abstract parent of all Subsystems.
A Subsystem is expected to be part of a larger System and to have interdependencies with other subsystems of that same system. It must NOT have dependencies on objects which are outside the System. Consequently construction of any concrete subsystem requires specification of a system at that time. Subsystems go through an extended construction phase in which their contents and interdependencies are created. Thus all of a System's Subsystems generally need to be available simultaneously during construction, so that they can reference each other.
There are three distinct users of this class:
Subsystem | ( | ) | [inline] |
~Subsystem | ( | ) |
Subsystem | ( | Subsystem::Guts * | g | ) | [inline, explicit] |
MeasureIndex adoptMeasure | ( | AbstractMeasure & | ) |
Referenced by AbstractMeasure::AbstractMeasure().
void adoptSubsystemGuts | ( | Subsystem::Guts * | g | ) |
DiscreteVariableIndex allocateAutoUpdateDiscreteVariable | ( | State & | , | |
Stage | invalidates, | |||
AbstractValue * | v, | |||
Stage | updateDependsOn | |||
) | const |
Referenced by Implementation::realizeMeasureTopologyVirtual().
CacheEntryIndex allocateCacheEntry | ( | const State & | state, | |
Stage | g, | |||
AbstractValue * | v | |||
) | const [inline] |
References Subsystem::allocateCacheEntry().
Referenced by Subsystem::allocateCacheEntry().
CacheEntryIndex allocateCacheEntry | ( | const State & | , | |
Stage | dependsOn, | |||
Stage | computedBy, | |||
AbstractValue * | v | |||
) | const |
DiscreteVariableIndex allocateDiscreteVariable | ( | State & | , | |
Stage | invalidates, | |||
AbstractValue * | v | |||
) | const |
Referenced by Implementation::realizeMeasureTopologyVirtual().
EventTriggerByStageIndex allocateEventTriggersByStage | ( | const State & | , | |
Stage | , | |||
int | ntriggers | |||
) | const |
CacheEntryIndex allocateLazyCacheEntry | ( | const State & | state, | |
Stage | earliest, | |||
AbstractValue * | v | |||
) | const [inline] |
References Stage::Infinity.
Referenced by Implementation::realizeTopology().
QErrIndex allocateQErr | ( | const State & | , | |
int | nqerr | |||
) | const |
UDotErrIndex allocateUDotErr | ( | const State & | , | |
int | nudoterr | |||
) | const |
UErrIndex allocateUErr | ( | const State & | , | |
int | nuerr | |||
) | const |
Referenced by Implementation::realizeMeasureTopologyVirtual().
const AbstractValue& getCacheEntry | ( | const State & | , | |
CacheEntryIndex | ||||
) | const |
const AbstractValue& getDiscreteVariable | ( | const State & | s, | |
DiscreteVariableIndex | dx | |||
) | const |
Real getDiscreteVarLastUpdateTime | ( | const State & | s, | |
DiscreteVariableIndex | dx | |||
) | const [inline] |
References State::getDiscreteVarLastUpdateTime().
CacheEntryIndex getDiscreteVarUpdateIndex | ( | const State & | s, | |
DiscreteVariableIndex | dx | |||
) | const [inline] |
References State::getDiscreteVarUpdateIndex().
const AbstractValue& getDiscreteVarUpdateValue | ( | const State & | s, | |
DiscreteVariableIndex | dx | |||
) | const [inline] |
References State::getDiscreteVarUpdateValue().
Referenced by Implementation::getUncachedValueVirtual().
AbstractMeasure getMeasure | ( | MeasureIndex | ) | const |
Measure_<T> getMeasure_ | ( | MeasureIndex | mx | ) | const [inline] |
SystemMultiplierIndex getMultipliersStart | ( | const State & | ) | const |
SubsystemIndex getMySubsystemIndex | ( | ) | const |
const String& getName | ( | ) | const |
int getNMultipliers | ( | const State & | ) | const |
int getNQ | ( | const State & | ) | const |
int getNQErr | ( | const State & | ) | const |
int getNU | ( | const State & | ) | const |
int getNUDotErr | ( | const State & | ) | const |
int getNUErr | ( | const State & | ) | const |
int getNZ | ( | const State & | ) | const |
SystemQErrIndex getQErrStart | ( | const State & | ) | const |
SystemQIndex getQStart | ( | const State & | ) | const |
const Subsystem::Guts& getSubsystemGuts | ( | ) | const [inline] |
const System& getSystem | ( | ) | const |
SystemUDotErrIndex getUDotErrStart | ( | const State & | ) | const |
SystemUErrIndex getUErrStart | ( | const State & | ) | const |
SystemUIndex getUStart | ( | const State & | ) | const |
const String& getVersion | ( | ) | const |
Referenced by Implementation::getUncachedValueVirtual().
SystemZIndex getZStart | ( | const State & | ) | const |
bool hasGuts | ( | ) | const [inline] |
void invalidateSubsystemTopologyCache | ( | ) | const |
bool isCacheValueRealized | ( | const State & | , | |
CacheEntryIndex | ||||
) | const |
Referenced by Implementation::isCacheValueRealized().
bool isDiscreteVarUpdateValueRealized | ( | const State & | s, | |
DiscreteVariableIndex | dx | |||
) | const [inline] |
References State::isDiscreteVarUpdateValueRealized().
bool isEmptyHandle | ( | ) | const |
bool isInSameSystem | ( | const Subsystem & | otherSubsystem | ) | const |
bool isInSystem | ( | ) | const |
bool isOwnerHandle | ( | ) | const |
bool isSameSubsystem | ( | const Subsystem & | otherSubsystem | ) | const |
Referenced by Minus::Minus(), and Plus::Plus().
void markCacheValueRealized | ( | const State & | , | |
CacheEntryIndex | ||||
) | const |
Referenced by Implementation::markCacheValueRealized().
void markDiscreteVarUpdateValueRealized | ( | const State & | s, | |
DiscreteVariableIndex | dx | |||
) | const [inline] |
References State::markDiscreteVarUpdateValueRealized().
Reimplemented in SimbodyMatterSubsystem.
Referenced by SimbodyMatterSubsystem::operator=().
References VectorBase< ELT >::size().
void setSystem | ( | System & | , | |
SubsystemIndex | ||||
) |
References VectorBase< ELT >::size().
References VectorBase< ELT >::size().
bool subsystemTopologyHasBeenRealized | ( | ) | const |
AbstractValue& updCacheEntry | ( | const State & | , | |
CacheEntryIndex | ||||
) | const |
AbstractValue& updDiscreteVariable | ( | State & | , | |
DiscreteVariableIndex | ||||
) | const |
AbstractValue& updDiscreteVarUpdateValue | ( | const State & | s, | |
DiscreteVariableIndex | dx | |||
) | const [inline] |
References State::updDiscreteVarUpdateValue().
Subsystem::Guts& updSubsystemGuts | ( | ) | [inline] |
System& updSystem | ( | ) |
Referenced by Implementation::initializeVirtual(), and Implementation::setValue().
Referenced by Implementation::realizeMeasureAccelerationVirtual().
friend class Guts [friend] |