20#ifndef _FINITE_ELEMENT_2S_13_MFR_MINDLIN_H_
21#define _FINITE_ELEMENT_2S_13_MFR_MINDLIN_H_
23#include "mbsimFlexibleBody/discretization_interface.h"
26namespace MBSimFlexibleBody {
54 const fmatvec::Vec&
geth()
const override;
55 const fmatvec::SqrMat&
getdhdq()
const override;
56 const fmatvec::SqrMat&
getdhdu()
const override;
59 void computeM(
const fmatvec::Vec& q)
override;
60 void computeh(
const fmatvec::Vec& q,
const fmatvec::Vec& u)
override;
61 void computedhdz(
const fmatvec::Vec& q,
const fmatvec::Vec& u)
override;
65 virtual fmatvec::Vec3 getPosition(
const fmatvec::Vec& qElement,
const fmatvec::Vec2 &s);
66 virtual fmatvec::SqrMat3 getOrientation(
const fmatvec::Vec& qElement,
const fmatvec::Vec2 &s);
67 virtual fmatvec::Vec3 getVelocity (
const fmatvec::Vec& qElement,
const fmatvec::Vec& qpElement,
const fmatvec::Vec2 &s);
68 virtual fmatvec::Vec3 getAngularVelocity(
const fmatvec::Vec& qElement,
const fmatvec::Vec& qpElement,
const fmatvec::Vec2 &s);
69 virtual fmatvec::Mat getJacobianOfMotion(
const fmatvec::Vec& qElement,
const fmatvec::Vec2 &s);
73 const fmatvec::SymMat&
getM()
const override;
74 const fmatvec::SymMat& getK()
const {
return *
K; }
75 const fmatvec::SymMat& getM_RR()
const {
return *
M_RR; }
76 const fmatvec::Mat& getN_compl()
const {
return *
N_compl; }
77 const fmatvec::SqrMat& getN_ij(
int i,
int j)
const {
return *(
N_ij[i][j]); }
78 const fmatvec::RowVec& getNR_ij(
int i,
int j)
const {
return *(
NR_ij[i][j]); }
79 const fmatvec::Vec& getR_compl()
const {
return *
R_compl; }
80 const fmatvec::SymMat& getR_ij()
const {
return *
R_ij; }
81 void setEModul(
double E_) {
E = E_; }
82 void setPoissonRatio(
double nu_) {
nu = nu_; }
83 void setDensity(
double rho_) {
rho = rho_; }
84 void setShearCorrectionFactor(
double alphaS_) {
alphaS = alphaS_; }
88 void freeK() {
delete K;
K=
nullptr; }
89 void freeM_RR() {
delete M_RR;
M_RR=
nullptr; }
90 void freeN_ij(
int i,
int j) {
delete N_ij[i][j];
N_ij[i][j]=
nullptr; }
92 void freeNR_ij(
int i,
int j) {
delete NR_ij[i][j];
NR_ij[i][j]=
nullptr; }
94 void freeR_ij() {
delete R_ij;
R_ij=
nullptr; }
161 fmatvec::Vector<fmatvec::Fixed<6>,
double>
getPositions(
const fmatvec::Vec &
NodeCoordinates,
const fmatvec::Vec &qElement,
const fmatvec::Vec2 &s,
double d1,
double d2);
163 fmatvec::Vector<fmatvec::Fixed<6>,
double> getVelocities(
const fmatvec::Vec &
NodeCoordinates,
const fmatvec::Vec &qElement,
const fmatvec::Vec &qpElement,
const fmatvec::Vec2 &s,
double d1,
double d2);
discretization interface for flexible systems
Definition: discretization_interface.h:36
FE for Reissner-Mindlin Plate using MFR.
Definition: 2s_13_mfr_mindlin.h:36
void computeNR_ij(int i, int j)
computes a part of the mass matrix
Definition: 2s_13_mfr_mindlin.cc:149
double d0
geometric factors of the disk
Definition: 2s_13_mfr_mindlin.h:191
double E
Young's modulus.
Definition: 2s_13_mfr_mindlin.h:176
void computeR_ij()
computes a part of the mass matrix
Definition: R_ij.cc:29
int getuSize() const override
Definition: 2s_13_mfr_mindlin.h:58
~FiniteElement2s13MFRMindlin() override
destructor
Definition: 2s_13_mfr_mindlin.cc:55
fmatvec::SqrMat * N_ij[3][3]
part of the mass matrix
Definition: 2s_13_mfr_mindlin.h:241
const fmatvec::Vec & geth() const override
Definition: 2s_13_mfr_mindlin.cc:89
fmatvec::Mat JGeneralized(const fmatvec::Vec &NodeCoordinates, const fmatvec::Vec2 &s)
compute Jacobian of contact description at contour point
Definition: 2s_13_mfr_mindlin.cc:145
fmatvec::SymMat * K
stiffness matrix
Definition: 2s_13_mfr_mindlin.h:226
void computeM_RR()
computes a part of the mass matrix
Definition: M_RR.cc:29
double rho
density
Definition: 2s_13_mfr_mindlin.h:196
double computeGravitationalEnergy(const fmatvec::Vec &q) override
compute gravitational energy
Definition: 2s_13_mfr_mindlin.cc:117
const fmatvec::SqrMat & getdhdu() const override
Definition: 2s_13_mfr_mindlin.cc:97
fmatvec::Vec NodeCoordinates
radial and azimuthal coordinates of corner nodes
Definition: 2s_13_mfr_mindlin.h:221
void computedhdz(const fmatvec::Vec &q, const fmatvec::Vec &u) override
compute Jacobian for implicit integration
Definition: 2s_13_mfr_mindlin.cc:109
double nu
Poisson ratio.
Definition: 2s_13_mfr_mindlin.h:181
double computeKineticEnergy(const fmatvec::Vec &q, const fmatvec::Vec &u) override
compute kinetic energy
Definition: 2s_13_mfr_mindlin.cc:113
double alphaS
shear correction factor
Definition: 2s_13_mfr_mindlin.h:201
fmatvec::SymMat * R_ij
part of the mass matrix
Definition: 2s_13_mfr_mindlin.h:256
double computeElasticEnergy(const fmatvec::Vec &q) override
compute elastic energy
Definition: 2s_13_mfr_mindlin.cc:121
fmatvec::SymMat * M_RR
part of the mass matrix
Definition: 2s_13_mfr_mindlin.h:231
fmatvec::Vec * R_compl
part of the mass matrix
Definition: 2s_13_mfr_mindlin.h:251
void computeN_ij(int i, int j)
computes a part of the mass matrix
Definition: 2s_13_mfr_mindlin.cc:68
double G
shear modulus
Definition: 2s_13_mfr_mindlin.h:186
int getqSize() const override
Definition: 2s_13_mfr_mindlin.h:57
int RefDofs
reference dof
Definition: 2s_13_mfr_mindlin.h:206
void computeStiffnessMatrix()
computes stiffnes matrix
Definition: K.cc:29
void computeh(const fmatvec::Vec &q, const fmatvec::Vec &u) override
compute smooth right hand side
Definition: 2s_13_mfr_mindlin.cc:105
fmatvec::RowVec * NR_ij[3][3]
part of the mass matrix
Definition: 2s_13_mfr_mindlin.h:246
fmatvec::Mat * N_compl
part of the mass matrix
Definition: 2s_13_mfr_mindlin.h:236
fmatvec::Vector< fmatvec::Fixed< 6 >, double > getPositions(const fmatvec::Vec &NodeCoordinates, const fmatvec::Vec &qElement, const fmatvec::Vec2 &s, double d1, double d2)
FiniteElement2s13MFRMindlin(double E_, double nu_, double rho_, double d0_, double d1_, double d2_, const fmatvec::Vec &NodeCoordinates)
constructor
Definition: 2s_13_mfr_mindlin.cc:33
void computeR_compl()
computes a part of the mass matrix
Definition: R_compl.cc:29
int NodeDofs
elastic dof per node
Definition: 2s_13_mfr_mindlin.h:211
void computeN_compl()
computes a part of the mass matrix
Definition: N_compl.cc:29
void computeM(const fmatvec::Vec &q) override
compute mass matrix
Definition: 2s_13_mfr_mindlin.cc:101
const fmatvec::SymMat & getM() const override
Definition: 2s_13_mfr_mindlin.cc:85
int Nodes
number of nodes
Definition: 2s_13_mfr_mindlin.h:216
const fmatvec::SqrMat & getdhdq() const override
Definition: 2s_13_mfr_mindlin.cc:93