20 #ifndef _FLEXIBLE_BODY_LINEAR_EXTERNAL_FFR_H_
21 #define _FLEXIBLE_BODY_LINEAR_EXTERNAL_FFR_H_
29 #include "mbsim/frames/frame.h"
31 #include "mbsimFlexibleBody/flexible_body.h"
32 #include "mbsimFlexibleBody/flexible_body/finite_elements/finite_element_linear_external_lumped_node.h"
34 #include "mbsimFlexibleBody/frames/node_frame.h"
40 namespace MBSimFlexibleBody {
62 virtual int getNumberElements()
const {
return nNodes; }
63 virtual double getLength()
const;
64 virtual bool isOpenStructure()
const {
return openStructure; }
72 virtual void updateM();
80 virtual void updateh(
int k = 0);
84 virtual void init(InitStage stage);
85 virtual void calcqSize();
86 virtual void calcuSize(
int j);
90 virtual std::string getType()
const {
91 return "FlexibleBodyLinearExternalFFR";
96 void setNumberOfModes(
int nf_) {
100 int getNumberModes()
const {
108 const fmatvec::Vec3 getModeShapeVector(
int node,
int column)
const;
113 void readFEMData(std::string inFilePath,
const bool millimeterUnits,
bool output =
false);
115 void enableFramePlot(
double size = 1e-3, fmatvec::VecInt numbers = fmatvec::VecInt(0));
117 void resetUpToDate();
127 void updateGyroscopicAccelerations(
MBSim::Frame *frame);
131 void updateAccelerations(
NodeFrame *frame);
132 void updateJacobians(
NodeFrame *frame,
int j=0);
133 void updateGyroscopicAccelerations(
NodeFrame *frame);
135 fmatvec::Vec3 evalLocalPosition(
int i);
261 std::vector<fmatvec::Vec3>
u0;
void readFEMData(std::string inFilePath, const bool millimeterUnits, bool output=false)
read u0, mij, mode shape matrix and stiffness matrix form the input file
Definition: flexible_body_linear_external_ffr.cc:118
fmatvec::SymMat KFull
full stiffness matrix
Definition: flexible_body_linear_external_ffr.h:216
flexible body model based on floating frame reference using the system information external linear FE...
Definition: flexible_body_linear_external_ffr.h:48
fmatvec::Vec3 I_1
matrix for the computation of the mass-matrix (assembled part of the element matrix) ...
Definition: flexible_body_linear_external_ffr.h:176
void updateQv()
update the quadratic velocity vector
Definition: flexible_body_linear_external_ffr.cc:388
fmatvec::Vec mij
lumped mass for each node
Definition: flexible_body_linear_external_ffr.h:246
virtual void GlobalMatrixContribution(int CurrentElement, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat)
insert 'local' information in global matrices
Definition: flexible_body_linear_external_ffr.cc:690
virtual void BuildElements()
references finite element coordinates to assembled coordinates
Definition: flexible_body_linear_external_ffr.cc:682
fmatvec::SqrMat3 A
transformation matrix of coordinates of the moving frame of reference into the reference frame ...
Definition: flexible_body_linear_external_ffr.h:231
fmatvec::Mat phi
matrix of modes used
Definition: flexible_body_linear_external_ffr.h:256
fmatvec::SqrMat3 G_bar_Dot
transformation matrix of the time derivates of the angles into tho angular velocity in reference coor...
Definition: flexible_body_linear_external_ffr.h:226
bool DEBUG
debug flag
Definition: flexible_body_linear_external_ffr.h:276
fmatvec::Mat I_ThetaF_bar
I_ThetaF 3*nf.
Definition: flexible_body_linear_external_ffr.h:206
virtual ~FlexibleBodyLinearExternalFFR()
destructor
Definition: flexible_body_linear_external_ffr.cc:49
fmatvec::SymMat M_FF
matrix for the computation of the mass-matrix (assembled part of the element matrix) ...
Definition: flexible_body_linear_external_ffr.h:236
flexible body entirely described within MBSim holding all informations about continuum approximations...
Definition: flexible_body.h:240
fmatvec::RowVec I_kl_bar[3][3]
matrix for the computation of the mass-matrix (assembled part of the element matrix) ...
Definition: flexible_body_linear_external_ffr.h:196
virtual void GlobalVectorContribution(int CurrentElement, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec)
insert 'local' information in global vectors
Definition: flexible_body_linear_external_ffr.cc:686
fmatvec::SqrMat3 G_bar
transformation matrix of the time derivates of the angles into tho angular velocity in reference coor...
Definition: flexible_body_linear_external_ffr.h:221
fmatvec::SymMat3 I_kl
matrix
Definition: flexible_body_linear_external_ffr.h:181
FlexibleBodyLinearExternalFFR(const std::string &name, const bool &DEBUG_)
constructor
Definition: flexible_body_linear_external_ffr.cc:39
int nNodes
total number of nodes
Definition: flexible_body_linear_external_ffr.h:166
void computeShapeIntegrals()
compute the constant shape integrals of the whole body
Definition: flexible_body_linear_external_ffr.cc:433
bool openStructure
open or closed beam structure
Definition: flexible_body_linear_external_ffr.h:271
std::vector< Frame * > frame
fmatvec::SymMat3 I_ThetaTheta_bar
inertia tensor
Definition: flexible_body_linear_external_ffr.h:201
void initM()
initialize the mass matrix
Definition: flexible_body_linear_external_ffr.cc:276
MBSim::Frame * FFR
Floating Frame of Reference.
Definition: flexible_body_linear_external_ffr.h:171
fmatvec::Mat phiFull
matrix of all modes
Definition: flexible_body_linear_external_ffr.h:251
std::vector< fmatvec::Vec3 > u0
initial position of each node
Definition: flexible_body_linear_external_ffr.h:261
void initQv()
initialize the quadratic velocity vector
Definition: flexible_body_linear_external_ffr.cc:382
fmatvec::Mat S_bar
matrix for the computation of the mass-matrix (assembled part of the element matrix) ...
Definition: flexible_body_linear_external_ffr.h:186
fmatvec::Vec Qv
quadratic velocity vector
Definition: flexible_body_linear_external_ffr.h:241
fmatvec::SqrMat S_kl_bar[3][3]
matrix for the computation of the mass-matrix (assembled part of the element matrix) ...
Definition: flexible_body_linear_external_ffr.h:191
int nf
number of mode shapes used to describe the deformation
Definition: flexible_body_linear_external_ffr.h:266
void updateAGbarGbardot()
update A, G_bar, and G_bar_Dot
Definition: flexible_body_linear_external_ffr.cc:497
fmatvec::SymMat K
stiffness matrix
Definition: flexible_body_linear_external_ffr.h:211
cartesian frame on nodes of flexible bodies
Definition: node_frame.h:31