All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
flexible_body_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/flexible_body_2s_13.h"
24 #include "mbsimFlexibleBody/flexible_body/finite_elements/finite_element_2s_13_disk.h"
25 
26 namespace MBSimFlexibleBody {
27 
41  public:
46  FlexibleBody2s13Disk(const std::string &name);
47 
51  virtual ~FlexibleBody2s13Disk() { }
52 
53  /* INHERITED INTERFACE OF FLEXIBLE BODY */
54  virtual void BuildElements();
55  virtual void GlobalVectorContribution(int CurrentElement, const fmatvec::Vec& locVec, fmatvec::Vec& gloVec);
56  virtual void GlobalMatrixContribution(int CurrentElement, const fmatvec::Mat& locMat, fmatvec::Mat& gloMat);
57  virtual void GlobalMatrixContribution(int CurrentElement, const fmatvec::SymMat& locMat, fmatvec::SymMat& gloMat);
58 
59  fmatvec::Vec3 evalPosition();
60  fmatvec::SqrMat3 evalOrientation();
61 
62  virtual void updatePositions(Frame2s* frame);
63  virtual void updateVelocities(Frame2s* frame);
64  virtual void updateAccelerations(Frame2s* frame);
65  virtual void updateJacobians(Frame2s* frame, int j=0);
66  virtual void updateGyroscopicAccelerations(Frame2s* frame);
67 
68  virtual void updatePositions(NodeFrame* frame);
69  virtual void updateVelocities(NodeFrame* frame);
70  virtual void updateAccelerations(NodeFrame* frame);
71  virtual void updateJacobians(NodeFrame* frame, int j=0);
72  virtual void updateGyroscopicAccelerations(NodeFrame* frame);
73 
74  /* INHERITED INTERFACE OF OBJECT */
75  virtual void init(InitStage stage);
76  /***************************************************/
77 
78  /* INHERITED INTERFACE OF ELEMENT */
79  virtual std::string getType() const { return "FlexibleBody2s13Disk"; }
80  /***************************************************/
81 
82  /* INHERITED INTERFACE OF FLEXIBLEBODY2s13 */
83  virtual fmatvec::Vec transformCW(const fmatvec::Vec& WrPoint);
84  /***************************************************/
85 
86  protected:
87  /* INHERITED INTERFACE OF FLEXIBLEBODY2s13 */
88  virtual void initMatrices();
89  virtual void updateAG();
90  /***************************************************/
91 
92  };
93 
94 }
95 
96 #endif /* _FLEXIBLE_BODY_2S_13_DISK_H_ */
virtual void GlobalMatrixContribution(int CurrentElement, const fmatvec::Mat &locMat, fmatvec::Mat &gloMat)
insert 'local' information in global matrices
Definition: flexible_body_2s_13_disk.cc:473
virtual void GlobalVectorContribution(int CurrentElement, const fmatvec::Vec &locVec, fmatvec::Vec &gloVec)
insert 'local' information in global vectors
Definition: flexible_body_2s_13_disk.cc:469
virtual void updateAG()
update the transformation matrices A and G
Definition: flexible_body_2s_13_disk.cc:459
virtual ~FlexibleBody2s13Disk()
destructor
Definition: flexible_body_2s_13_disk.h:51
virtual void initMatrices()
calculate the matrices for the first time
Definition: flexible_body_2s_13_disk.cc:348
FlexibleBody2s13Disk(const std::string &name)
constructor
Definition: flexible_body_2s_13_disk.cc:34
virtual void BuildElements()
references finite element coordinates to assembled coordinates
Definition: flexible_body_2s_13_disk.cc:38
plate according to Reissner-Mindlin with moving frame of reference
Definition: flexible_body_2s_13.h:75
std::vector< Frame * > frame
Definition: frame_2s.h:27
cartesian frame on nodes of flexible bodies
Definition: node_frame.h:31
virtual fmatvec::Vec transformCW(const fmatvec::Vec &WrPoint)
transform Cartesian to cylinder system
Definition: flexible_body_2s_13_disk.cc:333
plate according to Reissner-Mindlin with axial moving frame of reference
Definition: flexible_body_2s_13_disk.h:40

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML