mbsimflexiblebody  4.0.0
MBSim Flexible Body Module
2s_13_disk.h
1/* Copyright (C) 2004-2015 MBSim Development Team
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2.1 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Contact: thorsten.schindler@mytum.de
18 */
19
20#ifndef _FLEXIBLE_BODY_2S_13_DISK_H_
21#define _FLEXIBLE_BODY_2S_13_DISK_H_
22
23#include "mbsimFlexibleBody/flexible_body/2s_13.h"
24#include "mbsimFlexibleBody/flexible_body/fe/2s_13_disk.h"
25
26namespace MBSimFlexibleBody {
27
28 class NodeFrame;
29
43 public:
48 FlexibleBody2s13Disk(const std::string &name);
49
53 ~FlexibleBody2s13Disk() override = default;
54
55 /* INHERITED INTERFACE OF FLEXIBLE BODY */
56 void BuildElements() override;
57 void GlobalVectorContribution(int CurrentElement, const fmatvec::Vec& locVec, fmatvec::Vec& gloVec) override;
58 void GlobalMatrixContribution(int CurrentElement, const fmatvec::Mat& locMat, fmatvec::Mat& gloMat) override;
59 void GlobalMatrixContribution(int CurrentElement, const fmatvec::SymMat& locMat, fmatvec::SymMat& gloMat) override;
60
61 fmatvec::Vec3 evalPosition() override;
62 fmatvec::SqrMat3 evalOrientation() override;
63
64 void updatePositions(Frame2s* frame) override;
65 void updateVelocities(Frame2s* frame) override;
66 void updateAccelerations(Frame2s* frame) override;
67 void updateJacobians(Frame2s* frame, int j=0) override;
68 void updateGyroscopicAccelerations(Frame2s* frame) override;
69
70 void updatePositions(int node) override;
71 void updateVelocities(int node) override;
72 void updateAccelerations(int node) override;
73 void updateJacobians(int node, int j=0) override;
74 void updateGyroscopicAccelerations(int node) override;
75
76 /* INHERITED INTERFACE OF OBJECT */
77 void init(InitStage stage, const MBSim::InitConfigSet &config) override;
78 /***************************************************/
79
80 /* INHERITED INTERFACE OF ELEMENT */
81 /***************************************************/
82
83 /* INHERITED INTERFACE OF FLEXIBLEBODY2s13 */
84 fmatvec::Vec transformCW(const fmatvec::Vec& WrPoint) override;
85 /***************************************************/
86
87 protected:
88 /* INHERITED INTERFACE OF FLEXIBLEBODY2s13 */
89 void initMatrices() override;
90 void updateAG() override;
91 /***************************************************/
92
93 };
94
95}
96
97#endif /* _FLEXIBLE_BODY_2S_13_DISK_H_ */
plate according to Reissner-Mindlin with axial moving frame of reference
Definition: 2s_13_disk.h:42
void GlobalVectorContribution(int CurrentElement, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec) override
insert 'local' information in global vectors
Definition: 2s_13_disk.cc:473
void BuildElements() override
references finite element coordinates to assembled coordinates
Definition: 2s_13_disk.cc:38
fmatvec::Vec transformCW(const fmatvec::Vec &WrPoint) override
transform Cartesian to cylinder system
Definition: 2s_13_disk.cc:337
~FlexibleBody2s13Disk() override=default
destructor
void initMatrices() override
calculate the matrices for the first time
Definition: 2s_13_disk.cc:352
void GlobalMatrixContribution(int CurrentElement, const fmatvec::SymMat &locMat, fmatvec::SymMat &gloMat) override
insert 'local' information in global matrices
void updateAG() override
update the transformation matrices A and G
Definition: 2s_13_disk.cc:463
void GlobalMatrixContribution(int CurrentElement, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat) override
insert 'local' information in global matrices
FlexibleBody2s13Disk(const std::string &name)
constructor
Definition: 2s_13_disk.cc:34
plate according to Reissner-Mindlin with moving frame of reference
Definition: 2s_13.h:75
Definition: frame_2s.h:27
std::vector< Frame * > frame
std::string name