mbsimflexiblebody
4.0.0
MBSim Flexible Body Module
nodes_contour.h
1
/* Copyright (C) 2004-2022 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: martin.o.foerg@googlemail.com
18
*/
19
20
#ifndef _NODES_CONTOUR_H_
21
#define _NODES_CONTOUR_H_
22
23
#include "mbsim/contours/contour.h"
24
#include "mbsimFlexibleBody/utils/contact_utils.h"
25
26
namespace
MBSim {
27
class
ContourFrame;
28
}
29
30
namespace
OpenMBV {
31
class
DynamicPointSet;
32
}
33
34
namespace
MBSimFlexibleBody {
35
40
class
NodesContour
:
public
MBSim::Contour
{
41
public
:
46
NodesContour
(
const
std::string &
name
=
""
) : MBSim::
Contour
(
name
) { }
47
51
~NodesContour
()
override
=
default
;
52
53
void
setNodeNumbers(
const
fmatvec::VecVI &nodes_) {
nodes
<<= nodes_; }
54
const
fmatvec::VecVI& getNodeNumbers()
const
{
return
nodes
; }
55
56
const
fmatvec::Vec3& evalPosition(
int
i);
57
58
void
updatePositions(
MBSim::Frame
*frame)
override
;
59
void
updateVelocities(
MBSim::Frame
*frame)
override
;
60
void
updateAccelerations(
MBSim::Frame
*frame)
override
;
61
void
updateJacobians(
MBSim::Frame
*frame,
int
j=0)
override
;
62
void
updateGyroscopicAccelerations(
MBSim::Frame
*frame)
override
;
63
64
void
plot()
override
;
65
66
// virtual fmatvec::Vec3 evalWs_t(const fmatvec::Vec2 &zeta);
67
// virtual fmatvec::Vec3 evalWt_t(const fmatvec::Vec2 &zeta);
68
// virtual fmatvec::Vec3 evalWu_t(const fmatvec::Vec2 &zeta);
69
// virtual fmatvec::Vec3 evalWv_t(const fmatvec::Vec2 &zeta);
70
// virtual fmatvec::Vec3 evalWn_t(const fmatvec::Vec2 &zeta);
71
72
MBSim::ContactKinematics
* findContactPairingWith(
const
std::type_info &type0,
const
std::type_info &type1)
override
{
return
findContactPairingFlexible(type0, type1); }
73
74
void
init(
InitStage
stage,
const
MBSim::InitConfigSet &config)
override
;
75
void
initializeUsingXML(xercesc::DOMElement *element)
override
;
76
77
MBSim::ContourFrame
* createContourFrame(
const
std::string &
name
=
"P"
)
override
;
78
79
private
:
83
fmatvec::VecVI
nodes
;
84
85
std::map<MBSim::ContourFrame*,int> frameMap;
86
87
int
i{0};
88
89
std::shared_ptr<OpenMBV::DynamicPointSet> openMBVBody;
90
};
91
92
}
93
94
#endif
MBSimFlexibleBody::NodesContour
nodes contour
Definition:
nodes_contour.h:40
MBSimFlexibleBody::NodesContour::~NodesContour
~NodesContour() override=default
destructor
MBSimFlexibleBody::NodesContour::nodes
fmatvec::VecVI nodes
node numbers
Definition:
nodes_contour.h:83
MBSimFlexibleBody::NodesContour::NodesContour
NodesContour(const std::string &name="")
constructor
Definition:
nodes_contour.h:46
MBSim::ContactKinematics
MBSim::ContourFrame
MBSim::Contour
MBSim::Contour::Contour
Contour(const std::string &name)
MBSim::Element::InitStage
InitStage
MBSim::Element::name
std::string name
MBSim::Frame
mbsim
modules
mbsimFlexibleBody
mbsimFlexibleBody
contours
nodes_contour.h
Generated with
Doxygen
using
Doxygen Awesome
on Mon Mar 30 2026