Simbody 3.7
Force_MobilityLinearDamper.h
Go to the documentation of this file.
1#ifndef SimTK_SIMBODY_FORCE_MOBILITY_LINEAR_DAMPER_H_
2#define SimTK_SIMBODY_FORCE_MOBILITY_LINEAR_DAMPER_H_
3
4/* -------------------------------------------------------------------------- *
5 * Simbody(tm) *
6 * -------------------------------------------------------------------------- *
7 * This is part of the SimTK biosimulation toolkit originating from *
8 * Simbios, the NIH National Center for Physics-Based Simulation of *
9 * Biological Structures at Stanford, funded under the NIH Roadmap for *
10 * Medical Research, grant U54 GM072970. See https://simtk.org/home/simbody. *
11 * *
12 * Portions copyright (c) 2008-13 Stanford University and the Authors. *
13 * Authors: Peter Eastman, Michael Sherman *
14 * Contributors: *
15 * *
16 * Licensed under the Apache License, Version 2.0 (the "License"); you may *
17 * not use this file except in compliance with the License. You may obtain a *
18 * copy of the License at http://www.apache.org/licenses/LICENSE-2.0. *
19 * *
20 * Unless required by applicable law or agreed to in writing, software *
21 * distributed under the License is distributed on an "AS IS" BASIS, *
22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
23 * See the License for the specific language governing permissions and *
24 * limitations under the License. *
25 * -------------------------------------------------------------------------- */
26
27#include "SimTKcommon.h"
29
35namespace SimTK {
36
47public:
62 const MobilizedBody& mobod,
63 MobilizerUIndex whichU,
64 Real defaultDamping);
65
69
83
88
103 Real damping) const;
104
110 Real getDamping(const State& state) const;
111
120 const MobilizedBody& mobod,
121 int whichU,
122 Real defaultDamping)
123 { // Invoke the other constructor.
124 new(this) MobilityLinearDamper(forces, mobod, MobilizerUIndex(whichU),
125 defaultDamping);
126 }
131 MobilityLinearDamperImpl, Force);
133};
134
135} // namespace SimTK
136
137#endif // SimTK_SIMBODY_FORCE_MOBILITY_LINEAR_DAMPER_H_
#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
A linear damper that acts along or around a mobility coordinate to apply a generalized force there.
Definition: Force_MobilityLinearDamper.h:46
MobilityLinearDamper(GeneralForceSubsystem &forces, const MobilizedBody &mobod, int whichU, Real defaultDamping)
Deprecated: Alternate signature for backwards compatibility – for safety you should prefer using the ...
Definition: Force_MobilityLinearDamper.h:119
const MobilityLinearDamper & setDamping(State &state, Real damping) const
Change the value of the damping constant c in the given state; this may differ from the default value...
MobilityLinearDamper()
Default constructor creates an empty handle that can be assigned to refer to any MobilityLinearDamper...
Definition: Force_MobilityLinearDamper.h:68
MobilityLinearDamper(GeneralForceSubsystem &forces, const MobilizedBody &mobod, MobilizerUIndex whichU, Real defaultDamping)
Create a MobilityLinearDamper force element on a particular mobility (generalized speed).
Real getDefaultDamping() const
Return the default value for the damper's damping constant c.
Real getDamping(const State &state) const
Return the value for the damping constant c that is stored in the given state.
MobilityLinearDamper & setDefaultDamping(Real defaultDamping)
Provide a new value for the default damping constant c of this damper.
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
A MobilizedBody is Simbody's fundamental body-and-joint object used to parameterize a system's motion...
Definition: MobilizedBody.h:169
The Mobilizer associated with each MobilizedBody, once modeled, has a specific number of generalized ...
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:606