All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
angles.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 ANGLES_H_
21 #define ANGLES_H_
22 
23 #include <mbsim/functions/function.h>
24 
25 namespace MBSimFlexibleBody {
26 
35  class Angles : public MBSim::Function<fmatvec::RotMat3(fmatvec::VecV, double)> {
36  public:
40  Angles();
44  virtual ~Angles();
45 
46  /* INTERFACE OF ROTATION */
47  virtual fmatvec::RotMat3 operator()(const fmatvec::VecV &q, const double &t);
48  /***************************************************/
49 
50  /* INTERFACE */
54  virtual fmatvec::Vec3 computet(const fmatvec::Vec& q) const = 0;
55 
60  virtual fmatvec::Vec3 computen(const fmatvec::Vec& q) const = 0;
61 
66  virtual fmatvec::Vec3 computeb(const fmatvec::Vec& q) const = 0;
67 
72  virtual fmatvec::Vec computentil(const fmatvec::Vec& q) const = 0;
73 
78  virtual fmatvec::Vec computebtil(const fmatvec::Vec& q) const = 0;
79 
84  virtual fmatvec::SqrMat computetq(const fmatvec::Vec& q) const = 0;
85 
90  virtual fmatvec::SqrMat computenq(const fmatvec::Vec& q) const = 0;
91 
96  virtual fmatvec::SqrMat computebq(const fmatvec::Vec& q) const = 0;
97 
102  virtual fmatvec::SqrMat computentilq(const fmatvec::Vec& q) const = 0;
103 
108  virtual fmatvec::SqrMat computebtilq(const fmatvec::Vec& q) const = 0;
109 
114  virtual fmatvec::Mat computetq2(const fmatvec::Vec& q) const = 0;
115 
120  virtual fmatvec::Mat computenq2(const fmatvec::Vec& q) const = 0;
121 
126  virtual fmatvec::Mat computebq2(const fmatvec::Vec& q) const = 0;
127 
132  virtual fmatvec::Mat computentilq2(const fmatvec::Vec& q) const = 0;
133 
138  virtual fmatvec::Mat computebtilq2(const fmatvec::Vec& q) const = 0;
139  /********************************************************/
140 
141  /* NODAL FUNCTIONS */
147  fmatvec::Vec computett(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
148 
154  fmatvec::Vec computent(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
155 
161  fmatvec::Vec computebt(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
162 
168  fmatvec::Vec computentilt(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
169 
175  fmatvec::Vec computebtilt(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
176 
182  fmatvec::SqrMat computetqt(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
183 
189  fmatvec::SqrMat computenqt(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
190 
196  fmatvec::SqrMat computebqt(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
197 
203  fmatvec::SqrMat computentilqt(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
204 
210  fmatvec::SqrMat computebtilqt(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
211 
217  virtual fmatvec::Vec computeOmega(const fmatvec::Vec& q,const fmatvec::Vec& qt) const;
218 
223  virtual fmatvec::SqrMat computeT(const fmatvec::Vec& q) const; // JacobianOfRotation = G
224  /********************************************************/
225  };
226 
227 }
228 
229 #endif /*ANGLES_H_*/
230 
virtual fmatvec::Vec3 computen(const fmatvec::Vec &q) const =0
virtual ~Angles()
destructor
Definition: angles.cc:29
fmatvec::SqrMat computenqt(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:79
virtual fmatvec::SqrMat computetq(const fmatvec::Vec &q) const =0
fmatvec::Vec computent(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:45
fmatvec::Vec computebtilt(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:63
Angles()
constructor
Definition: angles.cc:27
fmatvec::SqrMat computebtilqt(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:109
fmatvec::SqrMat computebqt(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:89
virtual fmatvec::Mat computenq2(const fmatvec::Vec &q) const =0
fmatvec::Vec computett(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:39
node class for angle parametrisation
Definition: angles.h:35
virtual fmatvec::Mat computebtilq2(const fmatvec::Vec &q) const =0
virtual fmatvec::SqrMat computentilq(const fmatvec::Vec &q) const =0
fmatvec::Vec computentilt(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:57
virtual fmatvec::Vec computeOmega(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:119
virtual fmatvec::Mat computetq2(const fmatvec::Vec &q) const =0
virtual fmatvec::Vec computebtil(const fmatvec::Vec &q) const =0
virtual fmatvec::SqrMat computebtilq(const fmatvec::Vec &q) const =0
virtual fmatvec::Vec3 computeb(const fmatvec::Vec &q) const =0
fmatvec::SqrMat computetqt(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:69
virtual fmatvec::Mat computentilq2(const fmatvec::Vec &q) const =0
virtual fmatvec::Vec computentil(const fmatvec::Vec &q) const =0
virtual fmatvec::Vec3 computet(const fmatvec::Vec &q) const =0
virtual fmatvec::SqrMat computebq(const fmatvec::Vec &q) const =0
fmatvec::SqrMat computentilqt(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:99
virtual fmatvec::SqrMat computeT(const fmatvec::Vec &q) const
Definition: angles.cc:134
virtual fmatvec::Mat computebq2(const fmatvec::Vec &q) const =0
fmatvec::Vec computebt(const fmatvec::Vec &q, const fmatvec::Vec &qt) const
Definition: angles.cc:51
virtual fmatvec::SqrMat computenq(const fmatvec::Vec &q) const =0

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML