23 #include "mbsim/element.h"
28 class ContactKinematics;
54 virtual std::string
getType()
const {
return "Contour"; }
64 virtual ContourFrame* createContourFrame(
const std::string &name=
"P") {
return NULL; }
66 const std::vector<double>& getEtaNodes()
const {
return etaNodes; }
67 const std::vector<double>& getXiNodes()
const {
return xiNodes; }
69 void setEtaNodes(
const std::vector<double> &etaNodes_) { etaNodes = etaNodes_; }
70 void setXiNodes(
const std::vector<double> &xiNodes_) { xiNodes = xiNodes_; }
72 virtual int gethSize(
int i=0)
const {
return hSize[i]; }
73 virtual int gethInd(
int i=0)
const {
return hInd[i]; }
74 virtual void sethSize(
int size,
int i=0) {
hSize[i] = size; }
75 virtual void sethInd(
int ind,
int i=0) { hInd[i] = ind; }
77 virtual fmatvec::Vec3 evalKrPS(
const fmatvec::Vec2 &zeta);
78 virtual fmatvec::Vec3 evalKs(
const fmatvec::Vec2 &zeta);
79 virtual fmatvec::Vec3 evalKt(
const fmatvec::Vec2 &zeta);
80 virtual fmatvec::Vec3 evalParDer1Ks(
const fmatvec::Vec2 &zeta);
81 virtual fmatvec::Vec3 evalParDer2Ks(
const fmatvec::Vec2 &zeta);
82 virtual fmatvec::Vec3 evalParDer1Kt(
const fmatvec::Vec2 &zeta);
83 virtual fmatvec::Vec3 evalParDer2Kt(
const fmatvec::Vec2 &zeta);
89 virtual fmatvec::Vec3
evalPosition(
const fmatvec::Vec2 &zeta);
91 virtual fmatvec::Vec3 evalKu(
const fmatvec::Vec2 &zeta);
92 virtual fmatvec::Vec3 evalKv(
const fmatvec::Vec2 &zeta);
93 virtual fmatvec::Vec3 evalKn(
const fmatvec::Vec2 &zeta);
100 virtual fmatvec::Vec3
evalWu(
const fmatvec::Vec2 &zeta);
106 virtual fmatvec::Vec3
evalWv(
const fmatvec::Vec2 &zeta);
112 virtual fmatvec::Vec3
evalWn(
const fmatvec::Vec2 &zeta);
114 virtual fmatvec::Vec3 evalParDer1Kn(
const fmatvec::Vec2 &zeta);
116 virtual fmatvec::Vec3 evalParDer2Kn(
const fmatvec::Vec2 &zeta);
123 virtual fmatvec::Vec3
evalParDer1Ku(
const fmatvec::Vec2 &zeta);
131 virtual fmatvec::Vec3
evalParDer2Ku(
const fmatvec::Vec2 &zeta);
137 virtual fmatvec::Vec3
evalParDer1Kv(
const fmatvec::Vec2 &zeta);
144 virtual fmatvec::Vec3
evalParDer2Kv(
const fmatvec::Vec2 &zeta);
151 virtual fmatvec::Vec3
evalParDer1Wn(
const fmatvec::Vec2 &zeta);
158 virtual fmatvec::Vec3
evalParDer2Wn(
const fmatvec::Vec2 &zeta);
165 virtual fmatvec::Vec3
evalParDer1Wu(
const fmatvec::Vec2 &zeta);
172 virtual fmatvec::Vec3
evalParDer2Wu(
const fmatvec::Vec2 &zeta);
179 virtual fmatvec::Vec3
evalParDer1Wv(
const fmatvec::Vec2 &zeta);
186 virtual fmatvec::Vec3
evalParDer2Wv(
const fmatvec::Vec2 &zeta);
193 virtual fmatvec::Vec3
evalWrPS(
const fmatvec::Vec2 &zeta);
200 virtual fmatvec::Vec3
evalWs(
const fmatvec::Vec2 &zeta);
207 virtual fmatvec::Vec3
evalWt(
const fmatvec::Vec2 &zeta);
209 virtual fmatvec::Mat3x2 evalWN(
const fmatvec::Vec2 &zeta);
211 virtual fmatvec::Mat3x2 evalWR(
const fmatvec::Vec2 &zeta);
213 virtual fmatvec::Mat3x2 evalWU(
const fmatvec::Vec2 &zeta);
215 virtual fmatvec::Mat3x2 evalWV(
const fmatvec::Vec2 &zeta);
217 virtual fmatvec::Vec2 evalZeta(
const fmatvec::Vec3 &WrPS);
219 virtual void updatePositions(ContourFrame *frame);
220 virtual void updateVelocities(ContourFrame *frame);
221 virtual void updateAccelerations(ContourFrame *frame);
222 virtual void updateJacobians(ContourFrame *frame,
int j=0);
223 virtual void updateGyroscopicAccelerations(ContourFrame *frame);
225 virtual void initializeUsingXML(xercesc::DOMElement *element);
227 void setThickness(
double thickness_) {
thickness = thickness_; }
228 double getThickness()
const {
return thickness; }
230 virtual bool isZetaOutside(
const fmatvec::Vec2 &zeta) {
return false; }
238 std::vector<double> etaNodes;
239 std::vector<double> xiNodes;
virtual fmatvec::Vec3 evalWv(const fmatvec::Vec2 &zeta)
Definition: contour.cc:95
int hSize[2]
size and index of right hand side for frame JACOBIAN settings
Definition: contour.h:236
virtual fmatvec::Vec3 evalWu(const fmatvec::Vec2 &zeta)
Definition: contour.cc:90
virtual fmatvec::Vec3 evalParDer2Wu(const fmatvec::Vec2 &zeta)
Definition: contour.cc:151
virtual fmatvec::Vec3 evalParDer2Wv(const fmatvec::Vec2 &zeta)
Definition: contour.cc:161
virtual fmatvec::Vec3 evalParDer2Ku(const fmatvec::Vec2 &zeta)
Definition: contour.cc:110
basic class for contour definition for rigid (which do not know about their shape) and flexible (they...
Definition: contour.h:40
basic class of MBSim mainly for plotting
Definition: element.h:58
virtual fmatvec::Vec3 evalParDer1Kv(const fmatvec::Vec2 &zeta)
Definition: contour.cc:116
virtual fmatvec::Vec3 evalParDer1Ku(const fmatvec::Vec2 &zeta)
Definition: contour.cc:104
virtual std::string getType() const
Definition: contour.h:54
virtual fmatvec::Vec3 evalWt(const fmatvec::Vec2 &zeta)
Definition: contour.cc:176
virtual fmatvec::Vec3 evalParDer2Kv(const fmatvec::Vec2 &zeta)
Definition: contour.cc:120
Contour(const std::string &name)
constructor
Definition: contour.cc:30
Definition: contour_frame.h:27
virtual fmatvec::Vec3 evalParDer1Wv(const fmatvec::Vec2 &zeta)
Definition: contour.cc:156
virtual fmatvec::Vec3 evalWn(const fmatvec::Vec2 &zeta)
Definition: contour.cc:99
std::string name
name of element
Definition: element.h:298
virtual fmatvec::Vec3 evalWs(const fmatvec::Vec2 &zeta)
Definition: contour.cc:171
double thickness
thickness of contour
Definition: contour.h:244
virtual ~Contour()
destructor
Definition: contour.h:51
virtual fmatvec::Vec3 evalParDer1Wu(const fmatvec::Vec2 &zeta)
Definition: contour.cc:146
virtual fmatvec::Vec3 evalWrPS(const fmatvec::Vec2 &zeta)
Definition: contour.cc:166
virtual fmatvec::Vec3 evalParDer1Wn(const fmatvec::Vec2 &zeta)
Definition: contour.cc:136
virtual ContactKinematics * findContactPairingWith(std::string type0, std::string type1)=0
find contact kinematics
virtual fmatvec::Vec3 evalParDer2Wn(const fmatvec::Vec2 &zeta)
Definition: contour.cc:141
virtual fmatvec::Vec3 evalPosition(const fmatvec::Vec2 &zeta)
Definition: contour.cc:37