mbsimflexiblebody  4.0.0
MBSim Flexible Body Module
MBSimFlexibleBody::NurbsDisk2s Class Reference

2s flexible More...

#include <nurbs_disk_2s.h>

Inheritance diagram for MBSimFlexibleBody::NurbsDisk2s:
[legend]

Public Member Functions

 NurbsDisk2s (const std::string &name)
 constructor More...
 
 ~NurbsDisk2s () override
 destructor
 
void init (InitStage stage, const MBSim::InitConfigSet &config) override
 
MBSim::ContourFramecreateContourFrame (const std::string &name="P") override
 
fmatvec::Vec3 evalPosition (const fmatvec::Vec2 &zeta) override
 
fmatvec::Vec3 evalWs (const fmatvec::Vec2 &zeta) override
 
fmatvec::Vec3 evalWt (const fmatvec::Vec2 &zeta) override
 
fmatvec::Vec3 evalWu (const fmatvec::Vec2 &zeta) override
 
fmatvec::Vec3 evalWv (const fmatvec::Vec2 &zeta) override
 
fmatvec::Vec3 evalWn (const fmatvec::Vec2 &zeta) override
 
bool isZetaOutside (const fmatvec::Vec2 &zeta) override
 
void updatePositions (MBSim::Frame *frame) override
 
void updateVelocities (MBSim::Frame *frame) override
 
void updateAccelerations (MBSim::Frame *frame) override
 
void updateJacobians (MBSim::Frame *frame, int j=0) override
 
void updateGyroscopicAccelerations (MBSim::Frame *frame) override
 
fmatvec::Vec3 evalPosition ()
 
fmatvec::SqrMat3 evalOrientation ()
 
void plot () override
 
MBSim::ContactKinematicsfindContactPairingWith (const std::type_info &type0, const std::type_info &type1) override
 
 BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBV, MBSim::tag,(optional(diffuseColor,(const fmatvec::Vec3 &),"[-1;1;1]")(transparency,(double), 0)))
 
fmatvec::Vec transformCW (const fmatvec::Vec &WrPoint)
 transformation cartesian to cylinder system More...
 
fmatvec::Mat computeDirectionalDerivatives (const double &radius, const double &phi, const int &deg)
 
fmatvec::Mat computeCurvatures (const double &radius, const double &phi)
 
void computeUVector (const int NbPts)
 computes the U vector of the surface for a closed interpolation More...
 
void computeVVector (const int NbPts)
 computes the V-vector of the surface for an open interpolation More...
 
void computeSurface ()
 interpolates the surface with node-data from body
 
void computeSurfaceVelocities ()
 interpolates the velocities of the surface with the node-data from the body
 
void computeSurfaceJacobians ()
 interpolates the Jacobians of translation of the surface with the node-data from the body
 
fmatvec::Vec getControlPoints (const int u, const int v)
 
fmatvec::Vec getUVector ()
 
fmatvec::Vec getVVector ()
 
int testInsideBounds (const fmatvec::Vec &s)
 
double computeError (const fmatvec::Vec &Vec1, const fmatvec::Vec &Vec2)
 
- Public Member Functions inherited from MBSimFlexibleBody::Contour2s
 Contour2s (const std::string &name)
 constructor More...
 
- Public Member Functions inherited from MBSim::Contour
 Contour (const std::string &name)
 
virtual ContactKinematicsfindContactPairingWith (const std::type_info &type0, const std::type_info &type1)=0
 
virtual fmatvec::Vec3 evalPosition (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalWu (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalWv (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalWn (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer1Wn (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer2Wn (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer1Wu (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer2Wu (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer1Wv (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer2Wv (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalWs (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalWt (const fmatvec::Vec2 &zeta)
 
void createPlotGroup () override
 
- Public Member Functions inherited from MBSim::Element
 Element (const std::string &name)
 
virtual void setDynamicSystemSolver (DynamicSystemSolver *sys)
 
virtual void plot ()
 
virtual void plotAtSpecialEvent ()
 
const std::string & getName () const
 
void setName (const std::string &str)
 
DynamicSystemSolvergetDynamicSystemSolver ()
 
virtual void init (InitStage stage, const InitConfigSet &config=InitConfigSet())
 
virtual void createPlotGroup ()
 
H5::GroupBasegetPlotGroup ()
 
bool getPlotFeature (const PlotFeatureEnum &pf)
 
virtual void setPlotFeature (const PlotFeatureEnum &pf, bool value)
 
void setPlotFeatureForChildren (const PlotFeatureEnum &pf, bool value)
 
void setPlotFeatureRecursive (const PlotFeatureEnum &pf, bool value)
 
void setPlotAttribute (const std::string &name, const T &value, PlotAttributeStorage storage=PlotAttributeStorage::attribute)
 
T * getByPath (const std::string &path, bool initialCaller=true) const
 
std::string getPath (const Element *relTo=nullptr, std::string sep="/") const
 
virtual ElementgetChildByContainerAndName (const std::string &container, const std::string &name) const
 
std::vector< Element * > getDependencies () const
 
int computeLevel ()
 

Protected Attributes

int RefDofs
 number of reference dofs of the flexible body
 
int nj
 number of elements in azimuthal and radial direction
 
int nr
 
int degU
 interpolation degree azimuthal and radial
 
int degV
 
double Ri
 inner and outer radius
 
double Ra
 
std::shared_ptr< OpenMBV::NurbsDiskopenMBVNurbsDisk
 
double drawDegree
 
PlNurbsSurfaced * Surface
 interpolated surface of the contour
 
PlNurbsSurfaced * SurfaceVelocities
 interpolated velocities of the surface-points
 
std::vector< PlNurbsSurfaced > SurfaceJacobiansOfTranslation
 interpolated Jacobians of Translation on the surface
 
std::vector< PlNurbsSurfaced > SurfaceJacobiansOfRotation
 interpolated Jacobians of Rotation on the surface
 
PLib::Vector< double > * uvec
 knot vectors, used for the U und V coordinates of the surface
 
PLib::Vector< double > * uVec
 
PLib::Vector< double > * vvec
 
PLib::Vector< double > * vVec
 
- Protected Attributes inherited from MBSim::Contour
int hSize [2]
 
double thickness
 
- Protected Attributes inherited from MBSim::Element
std::string name
 
std::string path
 
MBXMLUtils::DOMEvalException domEvalError
 
DynamicSystemSolverds
 
H5::VectorSerie< double > * plotVectorSerie
 
std::vector< double > plotVector
 
std::vector< std::string > plotColumns
 
H5::GroupBaseplotGroup
 
std::vector< Element * > dependency
 
PlotFeatureMap plotFeature
 

Additional Inherited Members

- Public Types inherited from MBSim::Element
enum  InitStage
 
- Public Attributes inherited from MBSim::Element
 resolveStringRef
 
 preInit
 
 plotting
 
 unknownStage
 

Detailed Description

2s flexible

Author
Kilian Grundl
Raphael Missel
Thorsten Schindler
Date
2009-05-22 initial commit (Grundl / Missel / Schindler)
2009-06-04 separate contour files (Thorsten Schindler)
2009-08-16 contour / visualisation (Grundl / Missel / Schindler)
2010-04-21 flexible disks with parent (Grundl / Schindler)
Todo:

computeSurfaceJacobians / computeSurfaceVelocities only in contact case TODO

angularVelocity TODO

flexible body should only parametrise midplane -> other surfaces in contour TODO

Constructor & Destructor Documentation

◆ NurbsDisk2s()

MBSimFlexibleBody::NurbsDisk2s::NurbsDisk2s ( const std::string &  name)

constructor

Parameters
nameof contour

Member Function Documentation

◆ computeCurvatures()

Mat MBSimFlexibleBody::NurbsDisk2s::computeCurvatures ( const double &  radius,
const double &  phi 
)
Returns
curvature on the surface: (first column: radial direction / second column: azimuthal-direction)
Parameters
radiallocation
azimuthallocation

◆ computeDirectionalDerivatives()

Mat MBSimFlexibleBody::NurbsDisk2s::computeDirectionalDerivatives ( const double &  radius,
const double &  phi,
const int &  deg 
)
Returns
derivates of the surface: (first column: deg-th derivative in radial direction / second column: deg-th derivative in azimuthal-direction)
Parameters
radiallocation
azimuthallocation
orderof derivative

◆ computeError()

double MBSimFlexibleBody::NurbsDisk2s::computeError ( const fmatvec::Vec &  Vec1,
const fmatvec::Vec &  Vec2 
)
Returns
norm of the difference between two vectors
Parameters
firstvector
secondvector

◆ computeUVector()

void MBSimFlexibleBody::NurbsDisk2s::computeUVector ( const int  NbPts)

computes the U vector of the surface for a closed interpolation

Parameters

◆ computeVVector()

void MBSimFlexibleBody::NurbsDisk2s::computeVVector ( const int  NbPts)

computes the V-vector of the surface for an open interpolation

Parameters

◆ evalPosition()

fmatvec::Vec3 MBSimFlexibleBody::NurbsDisk2s::evalPosition ( const fmatvec::Vec2 &  zeta)
overridevirtual

Reimplemented from MBSim::Contour.

◆ evalWn()

Vec3 MBSimFlexibleBody::NurbsDisk2s::evalWn ( const fmatvec::Vec2 &  zeta)
overridevirtual

Reimplemented from MBSim::Contour.

◆ evalWs()

Vec3 MBSimFlexibleBody::NurbsDisk2s::evalWs ( const fmatvec::Vec2 &  zeta)
overridevirtual

Reimplemented from MBSim::Contour.

◆ evalWt()

Vec3 MBSimFlexibleBody::NurbsDisk2s::evalWt ( const fmatvec::Vec2 &  zeta)
overridevirtual

Reimplemented from MBSim::Contour.

◆ evalWu()

fmatvec::Vec3 MBSimFlexibleBody::NurbsDisk2s::evalWu ( const fmatvec::Vec2 &  zeta)
inlineoverridevirtual

Reimplemented from MBSim::Contour.

◆ evalWv()

fmatvec::Vec3 MBSimFlexibleBody::NurbsDisk2s::evalWv ( const fmatvec::Vec2 &  zeta)
inlineoverridevirtual

Reimplemented from MBSim::Contour.

◆ findContactPairingWith()

MBSim::ContactKinematics * MBSimFlexibleBody::NurbsDisk2s::findContactPairingWith ( const std::type_info &  type0,
const std::type_info &  type1 
)
inlineoverridevirtual

Implements MBSim::Contour.

◆ getControlPoints()

Vec MBSimFlexibleBody::NurbsDisk2s::getControlPoints ( const int  u,
const int  v 
)
Returns
control point
Parameters
ulocation
vlocation

◆ getUVector()

Vec MBSimFlexibleBody::NurbsDisk2s::getUVector ( )

return U-Vector of the surface (azimuthal direction)

◆ getVVector()

Vec MBSimFlexibleBody::NurbsDisk2s::getVVector ( )

return V-Vector of the surface (radial direction)

◆ plot()

void MBSimFlexibleBody::NurbsDisk2s::plot ( )
overridevirtual

Reimplemented from MBSim::Element.

◆ testInsideBounds()

int MBSimFlexibleBody::NurbsDisk2s::testInsideBounds ( const fmatvec::Vec &  s)
Returns
flag, whether the input radius is inside the bounds or the input angle is between 0 and 2 PI
Parameters
parametrisationvector

◆ transformCW()

Vec MBSimFlexibleBody::NurbsDisk2s::transformCW ( const fmatvec::Vec &  WrPoint)

transformation cartesian to cylinder system

Parameters
cartesianvector in world system
Returns
cylindrical coordinates

The documentation for this class was generated from the following files: