20#ifndef _FLEXIBLE_BODY_1S_33_RCM_H_
21#define _FLEXIBLE_BODY_1S_33_RCM_H_
23#include "mbsimFlexibleBody/flexible_body/1s.h"
24#include "mbsimFlexibleBody/pointer.h"
26namespace MBSimFlexibleBody {
58 void exportPositionVelocity(
const std::string & filenamePos,
const std::string & filenameVel = std::string( ),
const int & deg = 3,
const bool & writePsFile =
false)
override;
59 void importPositionVelocity(
const std::string & filenamePos,
const std::string & filenameVel = std::string( ))
override;
65 void updateGyroscopicAccelerations(
Frame1s*
frame)
override;
73 fmatvec::Vec3 getAngles(
double s)
override;
77 void init(
InitStage stage,
const MBSim::InitConfigSet &config)
override;
81 void initializeUsingXML(xercesc::DOMElement * element)
override;
85 void setNumberElements(
int n);
86 int getNumberElements(){
return Elements; }
87 void setEGModuls(
double E_,
double G_) {
E = E_; G = G_; }
88 void setDensity(
double rho_) {
rho = rho_; }
89 void setCrossSectionalArea(
double A_) {
A = A_; }
90 void setMomentsInertia(
double I1_,
double I2_,
double I0_) {
I1 = I1_; I2 = I2_; I0 = I0_; }
91 void setMaterialDamping(
double epstD_,
double k0D_);
93 void setGauss(
int nGauss_) {
nGauss = nGauss_; }
94 void setCurlRadius(
double R1_,
double R2_);
95 void setLehrDamping(
double epstL_,
double k0L_);
102 fmatvec::Vector<fmatvec::Fixed<6>,
double>
getPositions(
double x);
108 fmatvec::Vector<fmatvec::Fixed<6>,
double>
getVelocities(
double x);
183 void BuildElement(
const double& sGlobal,
double& sLocal,
int& currentElement);
spatial beam using Redundant Coordinate Method (RCM)
Definition: 1s_33_rcm.h:42
void GlobalMatrixContribution(int n, const fmatvec::SymMat &locMat, fmatvec::SymMat &gloMat) override
insert 'local' information in global matrices
fmatvec::Vector< fmatvec::Fixed< 6 >, double > getPositions(double x)
compute positions and angle at Lagrangian coordinate in local FE coordinates
Definition: 1s_33_rcm.cc:292
double rho
density
Definition: 1s_33_rcm.h:155
int Elements
number of elements
Definition: 1s_33_rcm.h:130
double computePhysicalStrain(const double sGlobal)
compute the physical strain of the element
Definition: 1s_33_rcm.cc:306
void BuildElement(const double &sGlobal, double &sLocal, int ¤tElement)
detect current finite element
Definition: 1s_33_rcm.cc:324
double A
area of cross-section
Definition: 1s_33_rcm.h:145
RevCardanPtr angle
angle parametrisation
Definition: 1s_33_rcm.h:125
int nGauss
number of Gauss points for rotational kinetic energy
Definition: 1s_33_rcm.h:175
double E
elastic modules
Definition: 1s_33_rcm.h:140
void exportPositionVelocity(const std::string &filenamePos, const std::string &filenameVel=std::string(), const int °=3, const bool &writePsFile=false) override
interpolates the position and optional the velocity coordinates of the flexible body with Nurbs-packa...
Definition: 1s_33_rcm.cc:391
double l0
length of entire beam and finite elements
Definition: 1s_33_rcm.h:135
void initInfo()
Definition: 1s_33_rcm.cc:313
void GlobalMatrixContribution(int n, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat) override
insert 'local' information in global matrices
void BuildElements() override
references finite element coordinates to assembled coordinates
Definition: 1s_33_rcm.cc:52
double R1
radius of undeformed shape
Definition: 1s_33_rcm.h:160
void GlobalVectorContribution(int n, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec) override
insert 'local' information in global vectors
Definition: 1s_33_rcm.cc:98
double epstD
damping
Definition: 1s_33_rcm.h:165
void importPositionVelocity(const std::string &filenamePos, const std::string &filenameVel=std::string()) override
imports the interpolated position and optional the velocity files (created with exportPositionVelocit...
Definition: 1s_33_rcm.cc:455
double I1
area moment of inertia
Definition: 1s_33_rcm.h:150
FlexibleBody1s33RCM(const std::string &name="", bool openStructure=false)
constructor
Definition: 1s_33_rcm.cc:49
fmatvec::Vector< fmatvec::Fixed< 6 >, double > getVelocities(double x)
compute velocities and differentiated angles at Lagrangian coordinate in local FE coordinates
Definition: 1s_33_rcm.cc:299
bool initialised
initialised FLAG
Definition: 1s_33_rcm.h:170
bool openStructure
flag for open (cantilever beam) or closed (rings) structures
Definition: 1s.h:73
Definition: frame_1s.h:27
cartesian frame on nodes of flexible bodies
Definition: node_frame.h:31
std::vector< Frame * > frame