Simbody 3.7
Loading...
Searching...
No Matches
CableSpring.h
Go to the documentation of this file.
1#ifndef SimTK_SIMBODY_CABLE_SPRING_H_
2#define SimTK_SIMBODY_CABLE_SPRING_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) 2012-13 Stanford University and the Authors. *
13 * Authors: 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"
31
37namespace SimTK {
38
91public:
92
116 const CablePath& path,
117 Real defaultStiffness,
118 Real defaultSlackLength,
119 Real defaultDissipationCoef);
120
123
124
125//------------------------------------------------------------------------------
159
174//------------------------------------------------------------------------------
200 Real stiffness) const;
209 Real slackLength) const;
218 Real dissipationCoef) const;
219
225Real getStiffness(const State& state) const;
231Real getSlackLength(const State& state) const;
239Real getDissipationCoef(const State& state) const;
244//------------------------------------------------------------------------------
262Real getLength(const State& state) const;
267//------------------------------------------------------------------------------
286Real getLengthDot(const State& state) const;
287
292//------------------------------------------------------------------------------
311Real getTension(const State& state) const;
316//------------------------------------------------------------------------------
330Real getPotentialEnergy(const State& state) const;
331
342Real getPowerDissipation(const State& state) const;
343
356Real getDissipatedEnergy(const State& state) const;
357
370void setDissipatedEnergy(State& state, Real energy) const;
379const CablePath& getCablePath() const;
// Don't show this in Doxygen.
383class Impl;
385 (CableSpring, CableSpring::Impl, Force);
387};
388
389} // namespace SimTK
390
391#endif // SimTK_SIMBODY_CABLE_SPRING_H_
This file declares the CablePath and CableObstacle classes.
#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,...
Every Simbody header and source file should include this header before any other Simbody header.
#define SimTK_SIMBODY_EXPORT
Definition Simbody/include/simbody/internal/common.h:68
This class represents the path of a frictionless cable from an origin point fixed to a body,...
Definition CablePath.h:92
This force element implements a passive elastic element (like a rubber band) that follows a frictionl...
Definition CableSpring.h:90
Real getLengthDot(const State &state) const
Return the current rate of length change (time derivative of length) of the CablePath that underlies ...
const CableSpring & setDissipationCoef(State &state, Real dissipationCoef) const
Set the dissipation coefficient c that will be used for this cable spring when evaluated using this S...
const CableSpring & setStiffness(State &state, Real stiffness) const
Set the stiffness (spring constant) k that will be used for this cable spring when evaluated using th...
const CablePath & getCablePath() const
Get a reference to the CablePath that is used to determine the routing of this cable spring force ele...
Real getDefaultSlackLength() const
Return the slack length L0 that will be used by default for this cable spring.
CableSpring(GeneralForceSubsystem &forces, const CablePath &path, Real defaultStiffness, Real defaultSlackLength, Real defaultDissipationCoef)
Create an elastic force element that follows a given CablePath and add it to a GeneralForceSubsystem.
Real getSlackLength(const State &state) const
Return the slack length L0 currently being used for this cable spring by this State.
Real getPowerDissipation(const State &state) const
Obtain the rate at which energy is being dissipated by this cable spring, that is,...
Real getDissipatedEnergy(const State &state) const
Obtain the total amount of energy dissipated by this cable spring since some arbitrary starting point...
Real getTension(const State &state) const
Return the current level of tension in the cable spring.
Real getLength(const State &state) const
Return the current length of the CablePath that underlies this cable spring element.
Real getDefaultDissipationCoef() const
Return the dissipation coefficient c that will be used by default for this cable spring.
CableSpring & setDefaultDissipationCoef(Real dissipation)
Set the dissipation coefficient c that will be used by default for this cable spring; must be nonnega...
Real getDefaultStiffness() const
Return the stiffnesses k that will be used by default for this cable spring.
CableSpring()
Default constructor creates an empty handle.
Definition CableSpring.h:122
const CableSpring & setSlackLength(State &state, Real slackLength) const
Set the slack length L0 that will be used for this cable spring when evaluated using this State.
void setDissipatedEnergy(State &state, Real energy) const
Set the accumulated dissipated energy to an arbitrary value.
Real getStiffness(const State &state) const
Return the stiffness (spring constant) k currently being used for this cable spring by this State.
CableSpring & setDefaultStiffness(Real stiffness)
Set the stiffness (spring constant) k that will be used by default for this cable spring; must be non...
Real getPotentialEnergy(const State &state) const
Obtain the potential energy stored in this cable spring in the current configuration.
Real getDissipationCoef(const State &state) const
Return the dissipation coefficient c currently being used for this cable spring by this State.
CableSpring & setDefaultSlackLength(Real slackLength)
Set the slack length L0 that will be used by default for this cable spring; must be nonnegative.
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 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