Simbody  3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
HuntCrossleyContact.h
Go to the documentation of this file.
1 #ifndef SimTK_SIMBODY_HUNT_CROSSLEY_CONTACT_H_
2 #define SimTK_SIMBODY_HUNT_CROSSLEY_CONTACT_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) 2006-12 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 
32 #include "SimTKcommon.h"
33 
36 
37 #include <cassert>
38 
39 namespace SimTK {
40 
41 class MultibodySystem;
42 
90 public:
93 
94  int addSphere(MobilizedBodyIndex body, const Vec3& center,
95  const Real& radius,
96  const Real& stiffness, // E (plane strain)
97  const Real& dissipation); // c (1/v)
98 
99  int addHalfSpace(MobilizedBodyIndex body, const UnitVec3& normal,
100  const Real& height,
101  const Real& stiffness, // E (plane strain)
102  const Real& dissipation); // c (1/v)
103 
105 private:
106  class HuntCrossleyContactRep& updRep();
107  const HuntCrossleyContactRep& getRep() const;
108 };
109 
110 } // namespace SimTK
111 
112 #endif // SimTK_SIMBODY_HUNT_CROSSLEY_CONTACT_H_
#define SimTK_PIMPL_DOWNCAST(Derived, Parent)
Similar to the above but for private implementation abstract classes, that is, abstract class hierarc...
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:564
This is for arrays indexed by mobilized body number within a subsystem (typically the SimbodyMatterSu...
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
This is a concrete subsystem that handles simple, frictionless contact situations with a model due to...
Definition: HuntCrossleyContact.h:89
Every Simbody header and source file should include this header before any other Simbody header...
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:577
Includes internal headers providing declarations for the basic SimTK Core classes, including Simmatrix.
The job of the MultibodySystem class is to coordinate the activities of various subsystems which can ...
Definition: MultibodySystem.h:48
This is logically an abstract class, more specialized than "Subsystem" but not yet concrete...
Definition: ForceSubsystem.h:36
#define SimTK_SIMBODY_EXPORT
Definition: Simbody/include/simbody/internal/common.h:72