20#ifndef _FINITE_ELEMENT_1S_21_COSSERAT_TRANSLATION_H_
21#define _FINITE_ELEMENT_1S_21_COSSERAT_TRANSLATION_H_
23#include "mbsimFlexibleBody/discretization_interface.h"
24#include "mbsim/mbsim_event.h"
25#include "mbsimFlexibleBody/pointer.h"
26#include "fmatvec/fmatvec.h"
28namespace MBSimFlexibleBody {
69 const fmatvec::SymMat&
getM()
const override;
70 const fmatvec::Vec&
geth()
const override;
71 const fmatvec::SqrMat&
getdhdq()
const override;
72 const fmatvec::SqrMat&
getdhdu()
const override;
76 void computeM(
const fmatvec::Vec& qG)
override;
77 void computeh(
const fmatvec::Vec& qG,
const fmatvec::Vec& qGt)
override;
78 void computedhdz(
const fmatvec::Vec& qG,
const fmatvec::Vec& qGt)
override;
83 virtual fmatvec::Vec3 getPosition(
const fmatvec::Vec& qElement,
double s);
84 virtual fmatvec::SqrMat3 getOrientation(
const fmatvec::Vec& qElement,
double s);
85 virtual fmatvec::Vec3 getVelocity (
const fmatvec::Vec& qElement,
const fmatvec::Vec& qpElement,
double s);
86 virtual fmatvec::Vec3 getAngularVelocity(
const fmatvec::Vec& qElement,
const fmatvec::Vec& qpElement,
double s);
87 virtual fmatvec::Mat getJacobianOfMotion(
const fmatvec::Vec& qElement,
double s) {
return computeJXqG(qElement,s); }
90 void setMaterialDamping(
double cEps0D_,
double cEps1D_);
91 void setShearCorrectionFactors(
double sigma1_);
107 fmatvec::Mat
computeJXqG(
const fmatvec::Vec& qG,
double x);
193 inline void FiniteElement1s21CosseratTranslation::setShearCorrectionFactors(
double sigma1_) {
sigma1 = sigma1_; }
194 inline double FiniteElement1s21CosseratTranslation::getl0()
const {
return l0; }
discretization interface for flexible systems
Definition: discretization_interface.h:36
finite translation element for planar beam using Cosserat model
Definition: 1s_21_cosserat_translation.h:48
void computeM(const fmatvec::Vec &qG) override
compute mass matrix
Definition: 1s_21_cosserat_translation.cc:40
double E
Young's modulus.
Definition: 1s_21_cosserat_translation.h:133
fmatvec::SymMat M
global system description
Definition: 1s_21_cosserat_translation.h:163
void computeh(const fmatvec::Vec &qG, const fmatvec::Vec &qGt) override
compute smooth right hand side
Definition: 1s_21_cosserat_translation.cc:43
fmatvec::Mat computeJXqG(const fmatvec::Vec &qG, double x)
compute JACOBIAN of contact description in global coordinates
Definition: 1s_21_cosserat_translation.cc:180
double l0
length of finite element
Definition: 1s_21_cosserat_translation.h:118
fmatvec::SqrMat dhdq
matrices for implicit integration
Definition: 1s_21_cosserat_translation.h:169
const fmatvec::SymMat & getM() const override
Definition: 1s_21_cosserat_translation.h:186
~FiniteElement1s21CosseratTranslation() override
destructor
double cEps0D
strain damping
Definition: 1s_21_cosserat_translation.h:153
double rho
density
Definition: 1s_21_cosserat_translation.h:123
int getqSize() const override
Definition: 1s_21_cosserat_translation.h:190
double I1
geometrical moment of inertia
Definition: 1s_21_cosserat_translation.h:143
FiniteElement1s21CosseratTranslation(double l0_, double rho_, double A_, double E_, double G_, double I1_, const fmatvec::Vec &g_)
constructor
double computeGravitationalEnergy(const fmatvec::Vec &qG) override
compute gravitational energy
Definition: 1s_21_cosserat_translation.cc:139
double sigma1
shear correction factors
Definition: 1s_21_cosserat_translation.h:158
CardanPtr ag
Cardan-object.
Definition: 1s_21_cosserat_translation.h:179
const fmatvec::SqrMat & getdhdu() const override
Definition: 1s_21_cosserat_translation.h:189
fmatvec::Vec X
state at Lagrangian coordinate
Definition: 1s_21_cosserat_translation.h:174
fmatvec::Vec g
gravitation
Definition: 1s_21_cosserat_translation.h:148
const fmatvec::Vec & geth() const override
Definition: 1s_21_cosserat_translation.h:187
int getuSize() const override
Definition: 1s_21_cosserat_translation.h:191
double A
cross sectional area
Definition: 1s_21_cosserat_translation.h:128
const fmatvec::Vec & computeStateTranslation(const fmatvec::Vec &qG, const fmatvec::Vec &qGt, double s)
compute state of finite element
Definition: 1s_21_cosserat_translation.cc:154
void computedhdz(const fmatvec::Vec &qG, const fmatvec::Vec &qGt) override
compute Jacobian for implicit integration
Definition: 1s_21_cosserat_translation.h:192
void initM()
initialize translational part of mass matrix
Definition: 1s_21_cosserat_translation.cc:184
double computeElasticEnergy(const fmatvec::Vec &qG) override
compute elastic energy
Definition: 1s_21_cosserat_translation.cc:143
double computeKineticEnergy(const fmatvec::Vec &qG, const fmatvec::Vec &qGt) override
compute kinetic energy
Definition: 1s_21_cosserat_translation.cc:127
double G
shear modulus
Definition: 1s_21_cosserat_translation.h:138
const fmatvec::SqrMat & getdhdq() const override
Definition: 1s_21_cosserat_translation.h:188