Go to the documentation of this file. 1 #ifndef SimTK_SimTKCOMMON_SYSTEM_GUTS_H_
2 #define SimTK_SimTKCOMMON_SYSTEM_GUTS_H_
35 class DecorativeGeometry;
80 const String& version=
"0.0.0");
83 const String& getName()
const;
84 const String& getVersion()
const;
86 void setHasTimeAdvancedEvents(
bool hasEm);
87 bool hasTimeAdvancedEvents()
const;
95 const State& getDefaultState()
const;
96 State& updDefaultState();
102 int getNumSubsystems()
const;
107 const System& getSystem()
const;
110 void setOwnerHandle(
System&);
111 bool hasOwnerHandle()
const;
113 explicit Guts(
class GutsRep* r) : rep(r) { }
115 const GutsRep&
getRep()
const {assert(rep);
return *rep;}
116 GutsRep&
updRep()
const {assert(rep);
return *rep;}
118 bool systemTopologyHasBeenRealized()
const;
120 void setSystemTopologyCacheVersion(
StageVersion topoVersion)
const;
121 void invalidateSystemTopologyCache()
const;
131 const State& realizeTopology()
const;
132 void realizeModel(
State&)
const;
133 void realizeInstance (
const State& s)
const;
134 void realizeTime (
const State& s)
const;
135 void realizePosition (
const State& s)
const;
136 void realizeVelocity (
const State& s)
const;
137 void realizeDynamics (
const State& s)
const;
138 void realizeAcceleration(
const State& s)
const;
139 void realizeReport (
const State& s)
const;
142 void multiplyByN(
const State& state,
const Vector& u,
144 void multiplyByNTranspose(
const State& state,
const Vector& fq,
146 void multiplyByNPInv(
const State& state,
const Vector& dq,
148 void multiplyByNPInvTranspose(
const State& state,
const Vector& fu,
151 bool prescribeQ(
State&)
const;
152 bool prescribeU(
State&)
const;
167 void calcTimeOfNextScheduledEvent(
const State&,
Real& tNextEvent,
Array_<EventId>& eventIds,
bool includeCurrentTime)
const;
168 void calcTimeOfNextScheduledReport(
const State&,
Real& tNextEvent,
Array_<EventId>& eventIds,
bool includeCurrentTime)
const;
170 void calcDecorativeGeometryAndAppend(
const State&,
Stage,
200 virtual void multiplyByNImpl(
const State& state,
const Vector& u,
202 virtual void multiplyByNTransposeImpl(
const State& state,
const Vector& fq,
204 virtual void multiplyByNPInvImpl(
const State& state,
const Vector& dq,
206 virtual void multiplyByNPInvTransposeImpl(
const State& state,
const Vector& fu,
223 virtual void handleEventsImpl
230 virtual int calcEventTriggerInfoImpl(
const State& state,
233 virtual int calcTimeOfNextScheduledEventImpl
235 bool includeCurrentTime)
const;
236 virtual int calcTimeOfNextScheduledReportImpl
238 bool includeCurrentTime)
const;
242 virtual void getFreeQIndexImpl
244 const unsigned nq = (unsigned)s.
getNQ();
246 for (
unsigned i=0; i<nq; ++i)
249 virtual void getFreeUIndexImpl
251 const unsigned nu = (unsigned)s.
getNU();
253 for (
unsigned i=0; i<nu; ++i)
260 class EventTriggerInfoRep;
267 #endif // SimTK_SimTKCOMMON_SYSTEM_GUTS_H_
@ HighestRuntime
Definition: Stage.h:84
virtual int realizeTopologyImpl(State &state) const
Definition: SystemGuts.h:190
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:280
virtual int realizeTimeImpl(const State &state) const
Definition: SystemGuts.h:193
virtual int realizeDynamicsImpl(const State &state) const
Definition: SystemGuts.h:196
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
Results for advanced users of project() methods.
Definition: System.h:1067
These are all the possible causes for events.
Definition: Event.h:126
Options for the handleEvent() method.
Definition: Event.h:269
const GutsRep & getRep() const
Definition: SystemGuts.h:115
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
virtual bool prescribeUImpl(State &) const
Definition: SystemGuts.h:211
virtual void projectUImpl(State &state, Vector &uErrEst, const ProjectOptions &options, ProjectResults &results) const
Definition: SystemGuts.h:219
bool hasRep() const
Definition: SystemGuts.h:114
Guts(class GutsRep *r)
Definition: SystemGuts.h:113
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:224
long long StageVersion
This is the type to use for Stage version numbers that get incremented whenever a state variable chan...
Definition: Stage.h:44
virtual int realizeAccelerationImpl(const State &state) const
Definition: SystemGuts.h:197
This class is basically a glorified enumerated type, type-safe and range checked but permitting conve...
Definition: Stage.h:66
virtual bool prescribeQImpl(State &) const
Definition: SystemGuts.h:210
virtual int realizePositionImpl(const State &state) const
Definition: SystemGuts.h:194
This is the declaration for the System::Guts class, the abstract object to which a System handle poin...
Definition: SystemGuts.h:71
GutsRep & updRep() const
Definition: SystemGuts.h:116
Options for the advanced project() methods.
Definition: System.h:950
ProjectResults & clear()
Restore this object to its default-constructed state, with the return status set to Invalid.
Definition: System.h:1089
The Array_<T> container class is a plug-compatible replacement for the C++ standard template library ...
Definition: Array.h:53
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
virtual void projectQImpl(State &state, Vector &qErrEst, const ProjectOptions &options, ProjectResults &results) const
Definition: SystemGuts.h:216
virtual int realizeModelImpl(State &state) const
Definition: SystemGuts.h:191
@ Succeeded
The project() was successful either because no projection was necessary or projection was able to ach...
Definition: System.h:1076
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
void resize(size_type n)
Change the size of this Array, preserving all the elements that will still fit, and default construct...
Definition: Array.h:2091
virtual int realizeReportImpl(const State &state) const
Definition: SystemGuts.h:198
ProjectResults & setExitStatus(Status status)
Definition: System.h:1109
virtual int realizeVelocityImpl(const State &state) const
Definition: SystemGuts.h:195
virtual int realizeInstanceImpl(const State &state) const
Definition: SystemGuts.h:192
int getNQ() const
Get total number of shared q's (generalized coordinates; second order state variables).