1 #ifndef SimTK_SIMBODY_FORCE_THERMOSTAT_H_
2 #define SimTK_SIMBODY_FORCE_THERMOSTAT_H_
138 Real boltzmannsConstant,
139 Real bathTemperature,
141 int numExcludedDofs = 6);
#define SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(DERIVED, DERIVED_IMPL, PARENT)
Definition: PrivateImplementation.h:343
Includes internal headers providing declarations for the basic SimTK Core classes,...
#define SimTK_SIMBODY_EXPORT
Definition: Simbody/include/simbody/internal/common.h:68
This is a feedback-controlled force that uses Nose'-Hoover chains to maintain a particular temperatur...
Definition: Force_Thermostat.h:131
Thermostat()
Default constructor creates an empty handle.
Definition: Force_Thermostat.h:145
void setExternalWork(State &state, Real work) const
Set the current value of the work done by the bath to an arbitrary value; normally zero for initializ...
Real getExternalWork(const State &state) const
Get the amount of work that has been done by the bath on the system since an arbitrary start time.
Thermostat & setDefaultBathTemperature(Real bathTemperature)
Set the default (state independent) bath temperature.
const Thermostat & setBathTemperature(State &, Real Tb) const
Set the bath temperature which serves as the target temperature for the thermostat.
const Thermostat & setNumChains(State &, int numChains) const
Set the actual number of Nose'-Hoover chains to be used.
Real getDefaultRelaxationTime() const
Get the initial value for the bath temperature that will be use for the "bath temperature" State vari...
Real getBoltzmannsConstant() const
Can't change the value of Boltzmann's constant after construction; this is the value being used.
int getNumExcludedDofs(const State &) const
Get the current value for the number of system rigid body degrees of freedom (0-6) to be excluded fro...
void setSystemToTemperature(State &, Real T) const
Set the controlled system to a set of randomized velocities which yields a particular temperature.
int getNumChains(const State &) const
Obtain the current number of Nose'-Hoover chains in use.
Real calcBathEnergy(const State &state) const
Calculate the total "bath energy" which, when added to the system energy, should yield a conserved qu...
void setChainState(State &, const Vector &) const
Set the thermostat state variables to particular values.
Thermostat(GeneralForceSubsystem &forces, const SimbodyMatterSubsystem &matter, Real boltzmannsConstant, Real bathTemperature, Real relaxationTime, int numExcludedDofs=6)
Define a global thermostat (one that affects all degrees of freedom) at a given default temperature a...
Real getRelaxationTime(const State &) const
Obtain the current relaxation time.
const Thermostat & setNumExcludedDofs(State &, int numExcludedDofs) const
Set the actual number of system rigid body degrees of freedom (0-6) to be excluded from the calculati...
Thermostat & setDefaultNumExcludedDofs(int numExcludedDofs)
Set the default number of system rigid body degrees of freedom (0-6) to be excluded from the calculat...
Real getExternalPower(const State &state) const
Get the amount of power being applied by the thermostat to the system; sign is positive when energy i...
int getNumThermalDofs(const State &) const
Return the number of thermal degrees of freedom being used in the definition of temperature for this ...
Vector getChainState(const State &) const
Return the current values of the thermostat chain variables.
Real getDefaultBathTemperature() const
Get the initial value for the bath temperature that will be use for the "bath temperature" State vari...
Thermostat & setDefaultNumChains(int numChains)
Set the default (state independent) number of Nose'-Hoover chains.
Real getBathTemperature(const State &) const
Obtain the current bath temperature, in units which are determined by the value of Boltzmann's consta...
void initializeChainState(State &) const
This is a solver that initializes thermostat state variables to zero.
Thermostat & excludeMobilizedBody(MobilizedBodyIndex)
TODO: not implemented yet.
int getDefaultNumExcludedDofs() const
Get the initial value for the number of system rigid body degrees of freedom (0-6) to be excluded fro...
const Thermostat & setRelaxationTime(State &, Real t) const
Set the relaxation time which determines how long the system will take to equilibrate to the bath tem...
Thermostat & setDefaultRelaxationTime(Real relaxationTime)
Set the default (state independent) relaxation time.
Real getCurrentTemperature(const State &) const
Return the temperature of the controlled degrees of freedom via the definition T = 2*ke / (N*Kb) wher...
int getDefaultNumChains() const
Get the initial value for the number of chains that will be used for the "number of chains" State var...
void initializeSystemToBathTemperature(State &) const
Set the controlled system to a set of randomized velocities which yields the bath temperature.
This is the base class from which all Force element handle classes derive.
Definition: Force.h:50
This is a concrete subsystem which can apply arbitrary forces to a MultibodySystem.
Definition: GeneralForceSubsystem.h:47
This is for arrays indexed by mobilized body number within a subsystem (typically the SimbodyMatterSu...
This subsystem contains the bodies ("matter") in the multibody system, the mobilizers (joints) that d...
Definition: SimbodyMatterSubsystem.h:133
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:280
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
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:607