1 #ifndef SimTK_SimTKCOMMON_STATE_H_
2 #define SimTK_SimTKCOMMON_STATE_H_
306 inline void setNumSubsystems(
int i);
322 inline int getNumSubsystems()
const;
328 inline const Stage& getSystemStage()
const;
336 inline void invalidateAll(
Stage);
345 inline void invalidateAllCacheAtOrAbove(
Stage)
const;
358 inline void advanceSystemToStage(
Stage)
const;
364 inline StageVersion getSystemTopologyStageVersion()
const;
670 {
return allocateCacheEntry(sx, g, g, v); }
681 allocateLazyCacheEntry
760 inline int getNY()
const;
765 inline int getNQ()
const;
771 inline int getNU()
const;
777 inline int getNZ()
const;
783 inline int getNYErr()
const;
786 inline int getNQErr()
const;
792 inline int getNUErr()
const;
799 inline int getNUDotErr()
const;
804 inline int getNMultipliers()
const;
807 inline int getNEventTriggers()
const;
810 inline int getNEventTriggersByStage(
Stage)
const;
854 inline const Vector& getEventTriggers()
const;
855 inline const Vector& getEventTriggersByStage(
Stage)
const;
858 inline Vector& updEventTriggers()
const;
859 inline Vector& updEventTriggersByStage(
Stage)
const;
905 inline const Real& getTime()
const;
906 inline const Vector& getY()
const;
909 inline const Vector& getQ()
const;
910 inline const Vector& getU()
const;
911 inline const Vector& getZ()
const;
948 inline const Vector& getUWeights()
const;
956 inline const Vector& getZWeights()
const;
961 inline Vector& updUWeights();
966 inline Vector& updZWeights();
970 inline Real& updTime();
974 inline void setTime(
Real t);
975 inline void setY(
const Vector& y);
983 inline void setQ(
const Vector& q);
984 inline void setU(
const Vector& u);
985 inline void setZ(
const Vector& z);
987 inline const Vector& getYDot()
const;
990 inline const Vector& getQDot()
const;
991 inline const Vector& getZDot()
const;
992 inline const Vector& getUDot()
const;
995 inline const Vector& getQDotDot()
const;
998 inline Vector& updYDot()
const;
999 inline Vector& updQDot()
const;
1000 inline Vector& updZDot()
const;
1001 inline Vector& updUDot()
const;
1006 inline Vector& updQDotDot()
const;
1010 inline const Vector& getYErr()
const;
1013 inline const Vector& getQErr()
const;
1014 inline const Vector& getUErr()
const;
1017 inline const Vector& getUDotErr()
const;
1018 inline const Vector& getMultipliers()
const;
1022 inline const Vector& getQErrWeights()
const;
1034 inline const Vector& getUErrWeights()
const;
1040 inline Vector& updQErrWeights();
1046 inline Vector& updUErrWeights();
1049 inline Vector& updYErr()
const;
1050 inline Vector& updQErr()
const;
1051 inline Vector& updUErr()
const;
1053 inline Vector& updUDotErr()
const;
1054 inline Vector& updMultipliers()
const;
1074 inline Stage getLowestSystemStageDifference
1083 inline void setSystemTopologyStageVersion(StageVersion topoVersion);
1088 inline void autoUpdateDiscreteVariables();
1090 inline String toString()
const;
1091 inline String cacheToString()
const;
1097 class StateImpl* impl;
1098 const StateImpl& getImpl()
const {assert(impl);
return *impl;}
1099 StateImpl& updImpl() {assert(impl);
return *impl;}
1111 #endif // SimTK_SimTKCOMMON_STATE_H_
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:202
SimTK_DEFINE_UNIQUE_INDEX_TYPE(AssemblyConditionIndex)
Unique integer type for Subsystem-local uDotErr indexing.
This unique integer type is for identifying a triggered event in the full System-level view of the St...
This unique integer type is for indexing the global, System-level "y-like" arrays, that is, the arrays in which all of the various Subsystems' continuous state variables q, u, and z have been collected into contiguous memory.
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
Unique integer type for Subsystem-local uErr indexing.
CacheEntryIndex allocateCacheEntry(SubsystemIndex sx, Stage g, AbstractValue *v) const
This is an abbreviation for allocation of a cache entry whose earliest and latest Stages are the same...
Definition: State.h:669
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:50
This is part of the internal implementation of SimTK::State and does not contain any user-visible obj...
The SimTK::Array_ container class is a plug-compatible replacement for the C++ standard template l...
Definition: Array.h:50
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:577
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.
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:276
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.
This unique integer type is for indexing the global, System-level "yErr-like" arrays, that is, the arrays in which all of the various Subsystems' qErr and uErr constraint equation slots have been collected together.
This unique integer type is for indexing global "uErr-like" arrays, that is, arrays that inherently h...
Unique integer type for Subsystem-local q indexing.
Higher than any legitimate Stage.
Definition: Stage.h:63
std::ostream & operator<<(std::ostream &o, const ContactForce &f)
Definition: CompliantContactSubsystem.h:387
This unique integer type is for identifying a triggered event within a particular Stage of the full S...
SimTK::String is a plug-compatible std::string replacement (plus some additional functionality) inten...
Definition: String.h:62
Abstract base class representing an arbitrary value of self-describing type.
Definition: Value.h:41
This unique integer type is for indexing global "uDotErr-like" arrays, that is, arrays that inherentl...
This file declares the types needed for Simbody's support for Events.
This unique integer type is for selecting discrete variables.
This unique integer type is for indexing global "z-like" arrays, that is, arrays that inherently have...
Provide a unique integer type for identifying Subsystems.
This unique integer type is for selecting non-shared cache entries.
This is the header which should be included in user programs that would like to make use of all the S...
Unique integer type for Subsystem-local, per-stage event indexing.
This unique integer type is for indexing global "u-like" arrays, that is, arrays that inherently have...
Includes internal headers providing declarations for the basic SimTK Core classes.
int StageVersion
This is the type to use for Stage version numbers.
Definition: State.h:160