Simbody  3.7
SmoothSphereHalfSpaceForce.h
Go to the documentation of this file.
1 #ifndef SimTK_SIMBODY_SMOOTH_SPHERE_HALFSPACE_FORCE_H_
2 #define SimTK_SIMBODY_SMOOTH_SPHERE_HALFSPACE_FORCE_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-19 Stanford University and the Authors. *
13  * Authors: Antoine Falisse, Gil Serrancoli *
14  * Contributors: Peter Eastman *
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"
28 
30 #include "simbody/internal/Force.h"
31 
32 namespace SimTK {
33 
34 class SmoothSphereHalfSpaceForceImpl;
35 
150 public:
168  void setParameters(Real stiffness, Real dissipation, Real staticFriction,
169  Real dynamicFriction, Real viscousFriction, Real transitionVelocity,
170  Real cf, Real bd, Real bv);
173  void setStiffness(Real stiffness);
175  void setDissipation(Real dissipation);
177  void setStaticFriction(Real staticFriction);
179  void setDynamicFriction(Real dynamicFriction);
181  void setViscousFriction(Real viscousFriction);
183  void setTransitionVelocity(Real transitionVelocity);
198  void setContactSphereLocationInBody(Vec3 locationSphere);
204  void setContactHalfSpaceFrame(Transform halfSpaceFrame);
216  SmoothSphereHalfSpaceForceImpl, Force);
217 };
218 
219 } // namespace SimTK
220 
221 #endif // SimTK_SIMBODY_SMOOTH_SPHERE_HALFSPACE_FORCE_H_
SimTK::SmoothSphereHalfSpaceForce::setDissipation
void setDissipation(Real dissipation)
Set the dissipation coefficient, default is 0 (s/m).
SimTK::SmoothSphereHalfSpaceForce::getContactHalfSpaceTransform
Transform getContactHalfSpaceTransform()
Get the transform of the contact half space.
SimTK::SmoothSphereHalfSpaceForce::setContactSphereRadius
void setContactSphereRadius(Real radius)
Set the radius of the contact sphere.
SimTK::SmoothSphereHalfSpaceForce::getContactSphereLocationInBody
Vec3 getContactSphereLocationInBody()
Get the location of the contact sphere in the body frame.
SimTK::SmoothSphereHalfSpaceForce::setContactHalfSpaceBody
void setContactHalfSpaceBody(MobilizedBody bodyInput2)
Set the MobilizedBody to which the contact half space is attached.
SimTK::SmoothSphereHalfSpaceForce::setTransitionVelocity
void setTransitionVelocity(Real transitionVelocity)
Set the transition velocity, default is 0.01 (m/s).
SimTK::SmoothSphereHalfSpaceForce::getBodyHalfSpace
MobilizedBody getBodyHalfSpace()
Get the MobilizedBody to which the contact half space is attached.
SimTK
This is a System that represents the dynamics of a particle moving along a smooth surface.
Definition: Assembler.h:37
SimTK::SmoothSphereHalfSpaceForce::SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(SmoothSphereHalfSpaceForce, SmoothSphereHalfSpaceForceImpl, Force)
SimTK::SmoothSphereHalfSpaceForce::getContactSphereRadius
Real getContactSphereRadius()
Get the radius of the contact sphere.
SimTK::SmoothSphereHalfSpaceForce::setContactHalfSpaceFrame
void setContactHalfSpaceFrame(Transform halfSpaceFrame)
Set the transform of the contact half space in the body frame.
SimTKcommon.h
SimTK::Vec< 3 >
SimTK::Force
This is the base class from which all Force element handle classes derive.
Definition: Force.h:50
SimTK::GeneralForceSubsystem
This is a concrete subsystem which can apply arbitrary forces to a MultibodySystem.
Definition: GeneralForceSubsystem.h:47
SimTK::SmoothSphereHalfSpaceForce::setHuntCrossleySmoothing
void setHuntCrossleySmoothing(Real bv)
Set the parameter that determines the smoothness of the transition of the tanh used to smooth the Hun...
SimTK::SmoothSphereHalfSpaceForce::setParameters
void setParameters(Real stiffness, Real dissipation, Real staticFriction, Real dynamicFriction, Real viscousFriction, Real transitionVelocity, Real cf, Real bd, Real bv)
Set the contact material parameters.
SimTK::SmoothSphereHalfSpaceForce::setHertzSmoothing
void setHertzSmoothing(Real bd)
Set the parameter that determines the smoothness of the transition of the tanh used to smooth the Her...
SimTK::SmoothSphereHalfSpaceForce::SmoothSphereHalfSpaceForce
SmoothSphereHalfSpaceForce(GeneralForceSubsystem &forces)
Create a smooth sphere to half space Hunt-Crossley contact model.
SimTK::SmoothSphereHalfSpaceForce::getBodySphere
MobilizedBody getBodySphere()
Get the MobilizedBody to which the contact sphere is attached.
SimTK::MobilizedBody
A MobilizedBody is Simbody's fundamental body-and-joint object used to parameterize a system's motion...
Definition: MobilizedBody.h:169
SimTK_SIMBODY_EXPORT
#define SimTK_SIMBODY_EXPORT
Definition: Simbody/include/simbody/internal/common.h:68
SimTK::SmoothSphereHalfSpaceForce::setDynamicFriction
void setDynamicFriction(Real dynamicFriction)
Set the coefficient of dynamic friction, default is 0.
SimTK::Real
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
SimTK::SmoothSphereHalfSpaceForce::setContactSphereBody
void setContactSphereBody(MobilizedBody bodyInput1)
Set the MobilizedBody to which the contact sphere is attached.
SimTK::SmoothSphereHalfSpaceForce::setConstantContactForce
void setConstantContactForce(Real cf)
Set the constant that enforces non-null derivatives, default is 1e-5.
Force.h
SimTK::Transform_< Real >
SimTK::SmoothSphereHalfSpaceForce
This class models the forces generated by simple point contacts between a sphere and a half space.
Definition: SmoothSphereHalfSpaceForce.h:149
SimTK::SmoothSphereHalfSpaceForce::setContactSphereLocationInBody
void setContactSphereLocationInBody(Vec3 locationSphere)
Set the location of the contact sphere in the body frame.
SimTK::SmoothSphereHalfSpaceForce::setStiffness
void setStiffness(Real stiffness)
Set the stiffness constant (i.e., plain strain modulus), default is 1 (N/m^2).
common.h
SimTK::SmoothSphereHalfSpaceForce::setViscousFriction
void setViscousFriction(Real viscousFriction)
Set the coefficient of viscous friction, default is 0.
SimTK::SmoothSphereHalfSpaceForce::setStaticFriction
void setStaticFriction(Real staticFriction)
Set the coefficient of static friction, default is 0.