20 #ifndef _FLEXIBLE_BODY_1S_21_ANCF_H_
21 #define _FLEXIBLE_BODY_1S_21_ANCF_H_
23 #include "mbsimFlexibleBody/flexible_body/flexible_body_1s.h"
25 namespace MBSimFlexibleBody {
52 virtual void updateM() { }
53 virtual void updateLLM() { }
62 virtual void updateVelocities(
Frame1s* frame);
63 virtual void updateAccelerations(
Frame1s* frame);
64 virtual void updateJacobians(
Frame1s* frame,
int j=0);
65 virtual void updateGyroscopicAccelerations(
Frame1s* frame);
67 virtual void updatePositions(
NodeFrame* frame);
68 virtual void updateVelocities(
NodeFrame* frame);
69 virtual void updateAccelerations(
NodeFrame* frame);
70 virtual void updateJacobians(
NodeFrame* frame,
int j=0);
71 virtual void updateGyroscopicAccelerations(
NodeFrame* frame);
75 virtual void init(InitStage stage);
80 virtual std::string getType()
const {
return "FlexibleBody1s21ANCF"; }
84 void setNumberElements(
int n);
85 void setEModul(
double E_) {
E = E_; }
86 void setCrossSectionalArea(
double A_) {
A = A_; }
87 void setMomentInertia(
double I_) {
I = I_; }
88 void setDensity(
double rho_) {
rho = rho_; }
89 void setCurlRadius(
double rc_);
90 void setMaterialDamping(
double deps_,
double dkappa_);
91 void setEulerPerspective(
bool Euler_,
double v0_);
92 int getNumberElements(){
return Elements; }
178 void BuildElement(
const double& sGlobal,
double& sLocal,
int& currentElement);
double deps
coefficient of material longitudinal damping
Definition: flexible_body_1s_21_ancf.h:145
FlexibleBody1s21ANCF(const std::string &name, bool openStructure)
constructor:
Definition: flexible_body_1s_21_ancf.cc:38
double dkappa
coefficient of material longitudinal damping
Definition: flexible_body_1s_21_ancf.h:150
void initInfo()
initialise beam only for giving information with respect to state, number elements, length, (not for simulation)
Definition: flexible_body_1s_21_ancf.cc:301
tbd
Definition: flexible_body_1s.h:33
Definition: frame_1s.h:27
double rho
material density
Definition: flexible_body_1s_21_ancf.h:135
bool initialised
flag for testing if beam is initialised
Definition: flexible_body_1s_21_ancf.h:155
double I
moment of inertia of cross-section
Definition: flexible_body_1s_21_ancf.h:130
double l0
length of one finite element
Definition: flexible_body_1s_21_ancf.h:115
void BuildElement(const double &sGlobal, double &sLocal, int ¤tElement)
detect current finite element
Definition: flexible_body_1s_21_ancf.cc:272
double A
cross-section area
Definition: flexible_body_1s_21_ancf.h:125
void initM()
initialize mass matrix and calculate Cholesky decomposition
Definition: flexible_body_1s_21_ancf.cc:288
bool openStructure
flag for open (cantilever beam) or closed (rings) structures
Definition: flexible_body_1s.h:73
int Elements
number of finite elements used for discretisation
Definition: flexible_body_1s_21_ancf.h:110
void initRelaxed(double alpha)
initialise beam state concerning a straight cantilever setting or a circle shaped ring ...
Definition: flexible_body_1s_21_ancf.cc:312
double E
modulus of linear elasticity
Definition: flexible_body_1s_21_ancf.h:120
virtual void BuildElements()
references finite element coordinates to assembled coordinates
Definition: flexible_body_1s_21_ancf.cc:254
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_21_ancf.cc:52
double v0
Euler perspective: constant longitudinal velocity.
Definition: flexible_body_1s_21_ancf.h:160
Absolute Nodal Coordinate Formulation for flexible planar beams.
Definition: flexible_body_1s_21_ancf.h:41
virtual void GlobalVectorContribution(int n, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec)
insert 'local' information in global vectors
Definition: flexible_body_1s_21_ancf.cc:40
double rc
radius of undeformed shape
Definition: flexible_body_1s_21_ancf.h:140
bool Euler
Euler perspective: true if set.
Definition: flexible_body_1s_21_ancf.h:165
cartesian frame on nodes of flexible bodies
Definition: node_frame.h:31