20#ifndef _FLEXIBLE_BODY_1S_33_ANCF_H_
21#define _FLEXIBLE_BODY_1S_33_ANCF_H_
23#include "mbsimFlexibleBody/flexible_body/1s.h"
25namespace MBSimFlexibleBody {
54 void updateM()
override { }
55 void updateLLM()
override { }
63 void updatePositions(Frame1s*
frame)
override;
64 void updateVelocities(Frame1s*
frame)
override;
65 void updateAccelerations(Frame1s*
frame)
override;
66 void updateJacobians(Frame1s*
frame,
int j=0)
override;
67 void updateGyroscopicAccelerations(Frame1s*
frame)
override;
69 virtual void updatePositions(NodeFrame*
frame);
70 virtual void updateVelocities(NodeFrame*
frame);
71 virtual void updateAccelerations(NodeFrame*
frame);
72 virtual void updateJacobians(NodeFrame*
frame,
int j=0);
73 virtual void updateGyroscopicAccelerations(NodeFrame*
frame);
77 void init(
InitStage stage,
const MBSim::InitConfigSet &config)
override;
85 void setNumberElements(
int n);
86 void setEModul(
double E_) {
E = E_; }
87 void setShearModul(
double G_) {
G = G_; }
88 void setCrossSectionalArea(
double A_) {
A = A_; }
89 void setMomentInertia(
double I0_,
double I1_,
double I2_) {
I0 = I0_;
I1 = I1_;
I2 = I2_; }
90 void setDensity(
double rho_) {
rho = rho_; }
91 void setCurlRadius(
double rc1_,
double rc2_);
92 int getNumberElements(){
return Elements; }
178 void BuildElement(
const double& sGlobal,
double& sLocal,
int& currentElement);
Absolute Nodal Coordinate Formulation for flexible spatial beams.
Definition: 1s_33_ancf.h:43
int Elements
number of finite elements used for discretisation
Definition: 1s_33_ancf.h:110
double I0
polar moment of inertia of cross-section
Definition: 1s_33_ancf.h:135
void BuildElement(const double &sGlobal, double &sLocal, int ¤tElement)
detect current finite element
Definition: 1s_33_ancf.cc:235
double I2
moment of inertia of cross-section
Definition: 1s_33_ancf.h:145
FlexibleBody1s33ANCF(const FlexibleBody1s33ANCF &)
copy constructor is declared private
double l0
length of one finite element
Definition: 1s_33_ancf.h:115
void GlobalVectorContribution(int n, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec) override
insert 'local' information in global vectors
Definition: 1s_33_ancf.cc:41
double G
shear modulus
Definition: 1s_33_ancf.h:125
void BuildElements() override
references finite element coordinates to assembled coordinates
Definition: 1s_33_ancf.cc:217
void initInfo()
initialise beam only for giving information with respect to state, number elements,...
Definition: 1s_33_ancf.cc:264
double I1
moment of inertia of cross-section
Definition: 1s_33_ancf.h:140
FlexibleBody1s33ANCF & operator=(const FlexibleBody1s33ANCF &)
assignment operator is declared private
bool initialised
flag for testing if beam is initialised
Definition: 1s_33_ancf.h:165
FlexibleBody1s33ANCF(const std::string &name, bool openStructure)
constructor:
void initM()
initialize mass matrix and calculate Cholesky decomposition
Definition: 1s_33_ancf.cc:251
void GlobalMatrixContribution(int n, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat) override
insert 'local' information in global matrices
Definition: 1s_33_ancf.cc:53
double rc2
radius of undeformed shape
Definition: 1s_33_ancf.h:160
double rc1
radius of undeformed shape
Definition: 1s_33_ancf.h:155
void initRelaxed(double alpha)
initialise beam state concerning a straight cantilever setting or a circle shaped ring
Definition: 1s_33_ancf.cc:275
double A
cross-section area
Definition: 1s_33_ancf.h:130
double E
modulus of linear elasticity
Definition: 1s_33_ancf.h:120
double rho
material density
Definition: 1s_33_ancf.h:150
bool openStructure
flag for open (cantilever beam) or closed (rings) structures
Definition: 1s.h:73
std::vector< Frame * > frame