All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
contour_1s_neutral_cosserat.h
1 /*
2  * neutral_contour_1s_cosserat.h
3  *
4  * Created on: 25.10.2013
5  * Author: zwang
6  */
7 
8 #ifndef CONTOUR_1S_NEUTRAL_COSSERAT_H_
9 #define CONTOUR_1S_NEUTRAL_COSSERAT_H_
10 
11 #include <mbsimFlexibleBody/flexible_body/flexible_body_1s_cosserat.h>
12 #include "mbsimFlexibleBody/pointer.h"
13 #include <mbsimFlexibleBody/contours/contour_1s_neutral_factory.h>
14 #include "neutral_contour_components/neutral_nurbs_velocity_1s.h"
15 #include "neutral_contour_components/neutral_nurbs_position_1s.h"
16 #include "neutral_contour_components/neutral_nurbs_angle_1s.h"
17 #include "neutral_contour_components/neutral_nurbs_dotangle_1s.h"
18 
19 namespace MBSimFlexibleBody {
20 
22  public:
23  Contour1sNeutralCosserat(const std::string &name_);
24  virtual ~Contour1sNeutralCosserat();
25 // virtual std::string getType() const {
26 // return "Contour1sNeutralCosserat";
27 // }
28  virtual void init(InitStage stage);
29  virtual NeutralNurbsPosition1s* createNeutralPosition();
30  virtual NeutralNurbsVelocity1s* createNeutralVelocity();
31  virtual NeutralNurbsAngle1s* createNeutralAngle();
32  virtual NeutralNurbsDotangle1s* createNeutralDotangle();
33 
34  virtual fmatvec::Vec3 evalPosition(const fmatvec::Vec2 &zeta);
35  virtual fmatvec::Vec3 evalWs(const fmatvec::Vec2 &zeta);
36  virtual fmatvec::Vec3 evalWt(const fmatvec::Vec2 &zeta);
37  virtual fmatvec::Vec3 evalWu(const fmatvec::Vec2 &zeta) { return evalWs(zeta); }
38  virtual fmatvec::Vec3 evalWv(const fmatvec::Vec2 &zeta) { return evalWt(zeta); }
39 
40  void updatePositions(MBSim::ContourFrame *frame);
41  void updateVelocities(MBSim::ContourFrame *frame);
42  void updateJacobians(MBSim::ContourFrame *frame, int j=0);
43 
44  virtual MBSim::ContactKinematics * findContactPairingWith(std::string type0, std::string type1);
45 
46  void setTransNodes(const fmatvec::VecInt & transNodes_);
47  void setRotNodes(const fmatvec::VecInt & rotNodes_);
48  void setNodeOffest(const double nodeOffset_);
49 
50  double getuMax() const {
51  return uMax;
52  }
53 
54  double getuMin() const {
55  return uMin;
56  }
57 
58  void setFrameOfReference(MBSim::Frame *frame) { R = frame; }
59 
60  void resetUpToDate();
61 
62  protected:
66  fmatvec::VecInt transNodes;
67 
71  fmatvec::VecInt rotNodes;
72 
76  double nodeOffset;
77 
78  CardanPtr ANGLE;
83 
84  MBSim::Frame *R;
85 
86  };
87 
88 } /* namespace MBSimFlexibleBody */
89 #endif
Definition: neutral_nurbs_velocity_1s.h:15
fmatvec::VecInt rotNodes
index of the rotational Nodes
Definition: contour_1s_neutral_cosserat.h:71
double uMin
starting parameter of the contour descriptions
Definition: contour_1s_neutral_factory.h:43
double nodeOffset
offset between translationa and rotational nodes
Definition: contour_1s_neutral_cosserat.h:76
Definition: neutral_nurbs_position_1s.h:15
fmatvec::VecInt transNodes
index of the translational Nodes
Definition: contour_1s_neutral_cosserat.h:66
Definition: neutral_nurbs_angle_1s.h:16
Definition: neutral_nurbs_dotangle_1s.h:15
Definition: contour_1s_neutral_cosserat.h:21
Definition: contour_1s_neutral_factory.h:20
double uMax
ending parameter of the contour description
Definition: contour_1s_neutral_factory.h:48

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML