20 #ifndef _FLEXIBLE_BODY_1S_33_RCM_H_
21 #define _FLEXIBLE_BODY_1S_33_RCM_H_
23 #include "mbsimFlexibleBody/flexible_body/flexible_body_1s.h"
24 #include "mbsimFlexibleBody/pointer.h"
26 namespace MBSimFlexibleBody {
56 virtual void exportPositionVelocity(
const std::string & filenamePos,
const std::string & filenameVel = std::string( ),
const int & deg = 3,
const bool & writePsFile =
false);
57 virtual void importPositionVelocity(
const std::string & filenamePos,
const std::string & filenameVel = std::string( ));
60 virtual void updateVelocities(
Frame1s* frame);
61 virtual void updateAccelerations(
Frame1s* frame);
62 virtual void updateJacobians(
Frame1s* frame,
int j=0);
63 virtual void updateGyroscopicAccelerations(
Frame1s* frame);
65 virtual void updatePositions(
NodeFrame* frame);
66 virtual void updateVelocities(
NodeFrame* frame);
67 virtual void updateAccelerations(
NodeFrame* frame);
68 virtual void updateJacobians(
NodeFrame* frame,
int j=0);
69 virtual void updateGyroscopicAccelerations(
NodeFrame* frame);
71 virtual fmatvec::Vec3 getAngles(
double s);
75 virtual void init(InitStage stage);
79 virtual std::string getType()
const {
return "FlexibleBody1s33RCM"; }
80 void initializeUsingXML(xercesc::DOMElement * element);
84 void setNumberElements(
int n);
85 int getNumberElements(){
return Elements; }
86 void setEGModuls(
double E_,
double G_) {
E = E_; G = G_; }
87 void setDensity(
double rho_) {
rho = rho_; }
88 void setCrossSectionalArea(
double A_) {
A = A_; }
89 void setMomentsInertia(
double I1_,
double I2_,
double I0_) {
I1 = I1_; I2 = I2_; I0 = I0_; }
90 void setMaterialDamping(
double epstD_,
double k0D_);
92 void setGauss(
int nGauss_) {
nGauss = nGauss_; }
93 void setCurlRadius(
double R1_,
double R2_);
94 void setLehrDamping(
double epstL_,
double k0L_);
182 void BuildElement(
const double& sGlobal,
double& sLocal,
int& currentElement);
virtual void BuildElements()
references finite element coordinates to assembled coordinates
Definition: flexible_body_1s_33_rcm.cc:51
bool initialised
initialised FLAG
Definition: flexible_body_1s_33_rcm.h:169
double A
area of cross-section
Definition: flexible_body_1s_33_rcm.h:144
void BuildElement(const double &sGlobal, double &sLocal, int ¤tElement)
detect current finite element
Definition: flexible_body_1s_33_rcm.cc:323
virtual void exportPositionVelocity(const std::string &filenamePos, const std::string &filenameVel=std::string(), const int °=3, const bool &writePsFile=false)
interpolates the position and optional the velocity coordinates of the flexible body with Nurbs-packa...
Definition: flexible_body_1s_33_rcm.cc:390
double computePhysicalStrain(const double sGlobal)
compute the physical strain of the element
Definition: flexible_body_1s_33_rcm.cc:305
tbd
Definition: flexible_body_1s.h:33
Definition: frame_1s.h:27
virtual void GlobalVectorContribution(int n, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec)
insert 'local' information in global vectors
Definition: flexible_body_1s_33_rcm.cc:97
int nGauss
number of Gauss points for rotational kinetic energy
Definition: flexible_body_1s_33_rcm.h:174
spatial beam using Redundant Coordinate Method (RCM)
Definition: flexible_body_1s_33_rcm.h:40
int Elements
number of elements
Definition: flexible_body_1s_33_rcm.h:129
fmatvec::Vector< fmatvec::Fixed< 6 >, double > getVelocities(double x)
compute velocities and differentiated angles at Lagrangian coordinate in local FE coordinates ...
Definition: flexible_body_1s_33_rcm.cc:298
bool openStructure
flag for open (cantilever beam) or closed (rings) structures
Definition: flexible_body_1s.h:73
RevCardanPtr angle
angle parametrisation
Definition: flexible_body_1s_33_rcm.h:124
double l0
length of entire beam and finite elements
Definition: flexible_body_1s_33_rcm.h:134
fmatvec::Vector< fmatvec::Fixed< 6 >, double > getPositions(double x)
compute positions and angle at Lagrangian coordinate in local FE coordinates
Definition: flexible_body_1s_33_rcm.cc:291
FlexibleBody1s33RCM(const std::string &name="", bool openStructure=false)
constructor
Definition: flexible_body_1s_33_rcm.cc:48
double R1
radius of undeformed shape
Definition: flexible_body_1s_33_rcm.h:159
std::vector< Frame * > frame
virtual void GlobalMatrixContribution(int n, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat)
insert 'local' information in global matrices
Definition: flexible_body_1s_33_rcm.cc:109
double rho
density
Definition: flexible_body_1s_33_rcm.h:154
virtual void importPositionVelocity(const std::string &filenamePos, const std::string &filenameVel=std::string())
imports the interpolated position and optional the velocity files (created with exportPositionVelocit...
Definition: flexible_body_1s_33_rcm.cc:454
double epstD
damping
Definition: flexible_body_1s_33_rcm.h:164
cartesian frame on nodes of flexible bodies
Definition: node_frame.h:31
double E
elastic modules
Definition: flexible_body_1s_33_rcm.h:139
double I1
area moment of inertia
Definition: flexible_body_1s_33_rcm.h:149
void initInfo()
Definition: flexible_body_1s_33_rcm.cc:312