All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MBSim::PolynomialFrustum Class Reference

Frustum contour with a polynomial radius over height course. More...

#include <polynomial_frustum.h>

Inheritance diagram for MBSim::PolynomialFrustum:
MBSim::RigidContour MBSim::Contour MBSim::Element fmatvec::Atom

Public Member Functions

 PolynomialFrustum (const std::string &name, const fmatvec::Vec &param_)
 Constructor. More...
 
virtual ~PolynomialFrustum ()
 Destructor.
 
std::string getType () const
 
virtual void init (InitStage stage)
 plots time series header More...
 
virtual fmatvec::Vec2 evalZeta (const fmatvec::Vec3 &WrPS)
 returns the two lagrange parameters index 0: x, height coordinate of frustum index 1: phi, angle of point
 
void setHeight (const double &height_)
 set height of frustum More...
 
double getHeight ()
 return height of frustum
 
double getHeight () const
 return height of frustum
 
 BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBV, tag,(optional(polynomialPoints,(int), 0)(circularPoints,(int), 25)(diffuseColor,(const fmatvec::Vec3 &),"[-1;1;1]")(transparency,(double), 0)))
 enable visualisation More...
 
void setColor (const MBSim::RGBColor &color)
 set color of body
 
void setTransparency (const double &transparency)
 set transparency of body
 
double evalValue (const double &x)
 get value at position of 0 derivative
 
double evalValue (const double &x) const
 get value at position of 0 derivative
 
double evalValueD1 (const double &x)
 get value at position of first derivative
 
double evalValueD1 (const double &x) const
 get value at position of first derivative
 
double evalValueD2 (const double &x)
 get value at position of second derivative
 
double evalValueD2 (const double &x) const
 get value at position of second derivative
 
double getXPolyMax ()
 get inner peak value of the polynomial
 
double getEnclosingSphereRadius ()
 take the largest one among the distance from ((a+b)/2,0) to (a,f(a)),(b,f(b)) and (x,f(x)) where f(x) achieves maximum at x within[a,b] More...
 
fmatvec::Vec3 getEnclosingSphereCenter ()
 return the center of the enclosing sphere
 
const fmatvec::VecgetPolynomialParameters ()
 get coefficient vector of the polynomial
 
fmatvec::Vec3 evalKrPS (const fmatvec::Vec2 &zeta)
 returns the point in local coordinates of the frustum at the position (x, phi)
 
fmatvec::Vec3 evalKn (const fmatvec::Vec2 &zeta)
 returns the normal in local coordinates of the frustum at the position (x, phi)
 
fmatvec::Vec3 evalKu (const fmatvec::Vec2 &zeta)
 returns the tangent in radial direction in local coordinates of the frustum at the position (x, phi)
 
fmatvec::Vec3 evalKv (const fmatvec::Vec2 &zeta)
 returns the tangent in azimuthal direction in local coordinates of the frustum at the point x, phi
 
fmatvec::Vec3 evalWn (const fmatvec::Vec2 &zeta)
 in 2D plane, given a point outside a polynomial curve, search for the closest point on the curve to the point More...
 
fmatvec::Vec3 evalWu (const fmatvec::Vec2 &zeta)
 
fmatvec::Vec3 evalWv (const fmatvec::Vec2 &zeta)
 
- Public Member Functions inherited from MBSim::RigidContour
 RigidContour (const std::string &name, Frame *R_=NULL)
 constructor More...
 
ContourFramecreateContourFrame (const std::string &name="P")
 
FramegetFrame ()
 
FramegetFrameOfReference ()
 
void setFrameOfReference (Frame *frame)
 
void setFrameOfReference (const std::string &frame)
 
std::string getType () const
 
virtual void plot ()
 plots time dependent data More...
 
fmatvec::Vec3 evalPosition (const fmatvec::Vec2 &zeta)
 
fmatvec::Vec3 evalParDer1Wn (const fmatvec::Vec2 &zeta)
 
fmatvec::Vec3 evalParDer2Wn (const fmatvec::Vec2 &zeta)
 
fmatvec::Vec3 evalParDer1Wu (const fmatvec::Vec2 &zeta)
 
fmatvec::Vec3 evalParDer2Wu (const fmatvec::Vec2 &zeta)
 
fmatvec::Vec3 evalParDer1Wv (const fmatvec::Vec2 &zeta)
 
fmatvec::Vec3 evalParDer2Wv (const fmatvec::Vec2 &zeta)
 
fmatvec::Vec3 evalWrPS (const fmatvec::Vec2 &zeta)
 
fmatvec::Vec3 evalWs (const fmatvec::Vec2 &zeta)
 
fmatvec::Vec3 evalWt (const fmatvec::Vec2 &zeta)
 
ContactKinematicsfindContactPairingWith (std::string type0, std::string type1)
 contact search for RigidContours More...
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 
std::shared_ptr
< OpenMBV::RigidBody > & 
getOpenMBVRigidBody ()
 
void setOpenMBVRigidBody (const std::shared_ptr< OpenMBV::RigidBody > &ombvBody)
 
- Public Member Functions inherited from MBSim::Contour
 Contour (const std::string &name)
 constructor More...
 
virtual ~Contour ()
 destructor
 
const std::vector< double > & getEtaNodes () const
 
const std::vector< double > & getXiNodes () const
 
void setEtaNodes (const std::vector< double > &etaNodes_)
 
void setXiNodes (const std::vector< double > &xiNodes_)
 
virtual int gethSize (int i=0) const
 
virtual int gethInd (int i=0) const
 
virtual void sethSize (int size, int i=0)
 
virtual void sethInd (int ind, int i=0)
 
virtual fmatvec::Vec3 evalKs (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalKt (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer1Ks (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer2Ks (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer1Kt (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer2Kt (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer1Kn (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer2Kn (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer1Ku (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer2Ku (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer1Kv (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Vec3 evalParDer2Kv (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Mat3x2 evalWN (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Mat3x2 evalWR (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Mat3x2 evalWU (const fmatvec::Vec2 &zeta)
 
virtual fmatvec::Mat3x2 evalWV (const fmatvec::Vec2 &zeta)
 
virtual void updatePositions (ContourFrame *frame)
 
virtual void updateVelocities (ContourFrame *frame)
 
virtual void updateAccelerations (ContourFrame *frame)
 
virtual void updateJacobians (ContourFrame *frame, int j=0)
 
virtual void updateGyroscopicAccelerations (ContourFrame *frame)
 
void setThickness (double thickness_)
 
double getThickness () const
 
virtual bool isZetaOutside (const fmatvec::Vec2 &zeta)
 
- Public Member Functions inherited from MBSim::Element
 Element (const std::string &name)
 constructor
 
virtual ~Element ()
 destructor
 
virtual void initDataInterfaceBase (DynamicSystemSolver *parentds)
 TODO.
 
virtual void setDynamicSystemSolver (DynamicSystemSolver *sys)
 sets the used dynamics system solver to the element More...
 
virtual void plotAtSpecialEvent ()
 plots time dependent data at special events More...
 
virtual void closePlot ()
 closes plot file
 
const std::string & getName () const
 
void setName (const std::string &str)
 
void setPath (const std::string &str)
 
DynamicSystemSolvergetDynamicSystemSolver ()
 
virtual void createPlotGroup ()
 creates the plotGroup for H5-output
 
H5::GroupBasegetPlotGroup ()
 
virtual void setPlotFeature (PlotFeature pf, PlotFeatureStatus value)
 Set a plot feature. More...
 
void setPlotFeatureForChildren (PlotFeature pf, PlotFeatureStatus value)
 Set a plot feature for the children of this object. More...
 
void setPlotFeatureRecursive (PlotFeature pf, PlotFeatureStatus value)
 Set a plot feature for this object and the children of this object. More...
 
PlotFeatureStatus getPlotFeature (PlotFeature pf)
 
PlotFeatureStatus getPlotFeatureForChildren (PlotFeature pf)
 
PlotFeatureStatus initializePlotFeatureStatusUsingXML (xercesc::DOMElement *e)
 
PlotFeature initializePlotFeatureUsingXML (xercesc::DOMElement *e)
 
const std::vector
< MBXMLUtils::EmbedDOMLocator > & 
getLocationStack () const
 
template<class T >
T * getByPath (const std::string &path, bool initialCaller=true) const
 Get the object of type T represented by the path path. Do not set any argurment other than path!
 
std::string getPath (const Element *relTo=NULL, std::string sep="/") const
 Return the path of this object. If relativeTo is not NULL return a relative path to relativeTo. Do not set any argurment other than relTo and sep!
 
virtual ElementgetChildByContainerAndName (const std::string &container, const std::string &name) const
 Get the Element named name in the container named container.
 
virtual std::shared_ptr
< OpenMBV::Group
getOpenMBVGrp ()
 
virtual ElementgetParent ()
 
virtual const ElementgetParent () const
 
virtual void setParent (Element *parent_)
 
std::vector< Element * > getDependencies () const
 checks dependency on other elements. More...
 
void addDependency (Element *ele)
 
int computeLevel ()
 computes the length of the pathes in the graph that represents the dependencies between all elements. More...
 
virtual void updatePositions (Frame *frame)
 
virtual void updateVelocities (Frame *frame)
 
virtual void updateAccelerations (Frame *frame)
 
virtual void updateJacobians (Frame *frame, int j=0)
 
virtual void updateGyroscopicAccelerations (Frame *frame)
 
virtual void resetUpToDate ()
 
const double & getTime () const
 
double getStepSize () const
 
- Public Member Functions inherited from fmatvec::Atom
Atomoperator= (const Atom &)
 
void setMessageStreamActive (MsgType type, bool active)
 
void getMessageStream (MsgType type, std::shared_ptr< bool > &a, std::shared_ptr< std::ostream > &s)
 
void adoptMessageStreams (const Atom *src=NULL)
 
std::ostream & msg (MsgType type)
 
bool msgAct (MsgType type)
 

Protected Member Functions

void updateEnclosingSphere ()
 
void createInventorFile ()
 create inventor file for visualisation
 
void enableOpenMBV_ (const fmatvec::Vec3 &dc, double tp, int polynomialPoints, int circularPoints)
 
- Protected Member Functions inherited from MBSim::Element
void updatePlotFeatures ()
 
- Protected Member Functions inherited from fmatvec::Atom
 Atom (const Atom &src)
 

Protected Attributes

fmatvec::Vec parameters
 vector holding our parameters of the polynom describing the frustum (radius over height) parameters=[a0,a1,a2,...an]
 
double height
 height of the frustum
 
double sphereRadius
 radius of the enclosing sphere
 
MBSim::RGBColor color
 color values for the iv-body
 
double transparency
 transparency value for the body
 
int polynomialPoints
 grid points in polynomial direction
 
int circularPoints
 grid points in polynomial direction
 
- Protected Attributes inherited from MBSim::RigidContour
FrameR
 coordinate system of contour
 
std::shared_ptr
< OpenMBV::RigidBody
openMBVRigidBody
 
- Protected Attributes inherited from MBSim::Contour
int hSize [2]
 size and index of right hand side for frame JACOBIAN settings
 
int hInd [2]
 
std::vector< double > etaNodes
 
std::vector< double > xiNodes
 
double thickness
 thickness of contour
 
- Protected Attributes inherited from MBSim::Element
Elementparent
 
std::string name
 name of element
 
std::string path
 The path of this object. Is set during the init stage reorganizeHierarchy. Before this the path is calculated dynamically using getPath() after this stage getPath just returns this value.
 
std::vector
< MBXMLUtils::EmbedDOMLocator
locationStack
 
DynamicSystemSolverds
 dynamic system
 
H5::VectorSerie< double > * plotVectorSerie
 time series
 
std::vector< double > plotVector
 one entry of time series
 
std::vector< std::string > plotColumns
 columns of time series
 
H5::GroupBaseplotGroup
 associated plot group
 
std::vector< Element * > dependency
 vector containing all dependencies.
 

Additional Inherited Members

- Public Types inherited from MBSim::Element
enum  PlotFeatureStatus { enabled, disabled, unset }
 Plot feature status. More...
 
enum  PlotFeature {
  plotRecursive =0, separateFilePerGroup, state, stateDerivative,
  notMinimalState, rightHandSide, globalPosition, globalVelocity,
  globalAcceleration, energy, openMBV, generalizedLinkForce,
  linkKinematics, stopVector, debug, LASTPLOTFEATURE
}
 Plot Features. More...
 
enum  InitStage {
  modelBuildup =0, resolveXMLPath, preInit, resize,
  plotting, reorganizeHierarchy, unknownStage, LASTINITSTAGE
}
 The stages of the initialization. More...
 
- Public Types inherited from fmatvec::Atom
enum  MsgType
 
- Static Public Member Functions inherited from MBSim::Element
static double getDouble (xercesc::DOMElement *e)
 
static int getInt (xercesc::DOMElement *e)
 
static bool getBool (xercesc::DOMElement *e)
 
static fmatvec::Vec3 getVec3 (xercesc::DOMElement *e)
 
static fmatvec::Vec getVec (xercesc::DOMElement *e, int rows=0)
 
static fmatvec::Mat3xV getMat3xV (xercesc::DOMElement *e, int cols=0)
 
static fmatvec::Mat getMat (xercesc::DOMElement *e, int rows=0, int cols=0)
 
static fmatvec::SqrMat3 getSqrMat3 (xercesc::DOMElement *e)
 
static fmatvec::SqrMat getSqrMat (xercesc::DOMElement *e, int size=0)
 
static fmatvec::SymMat3 getSymMat3 (xercesc::DOMElement *e)
 
static fmatvec::SymMat getSymMat (xercesc::DOMElement *e, int size=0)
 
- Static Public Member Functions inherited from fmatvec::Atom
static void setCurrentMessageStream (MsgType type, const std::shared_ptr< bool > &a=std::make_shared< bool >(true), const std::shared_ptr< std::ostream > &s=std::make_shared< std::ostream >(std::cout.rdbuf()))
 
static std::ostream & msgStatic (MsgType type)
 
static bool msgActStatic (MsgType type)
 

Detailed Description

Frustum contour with a polynomial radius over height course.

Author
Kilian Grundl, Tingting Sun
Date
09.10.2012

Constructor & Destructor Documentation

MBSim::PolynomialFrustum::PolynomialFrustum ( const std::string &  name,
const fmatvec::Vec param_ 
)

Constructor.

Parameters
nameName of the contour
param_

Member Function Documentation

MBSim::PolynomialFrustum::BOOST_PARAMETER_MEMBER_FUNCTION ( (void)  ,
enableOpenMBV  ,
tag  ,
(optional(polynomialPoints,(int), 0)(circularPoints,(int), 25)(diffuseColor,(const fmatvec::Vec3 &),"[-1;1;1]")(transparency,(double), 0))   
)
inline

enable visualisation

Parameters
enableenable or disable openmbv
polynomialPointshow fine should the grid be in polynomial direction
circulaPointshow fine should the grid be in circular direction
Vec3 MBSim::PolynomialFrustum::evalWn ( const fmatvec::Vec2 &  zeta)
virtual

in 2D plane, given a point outside a polynomial curve, search for the closest point on the curve to the point

Parameters
x_0,:starting point of the polynomial domain
x_end,:end point of the polynomial domain
P,:the given point
Returns
: a dimension 3 vector, vec[0] storing the dis, vec[1] and vec[2] for the 2D position of the closest point on the curve

Reimplemented from MBSim::Contour.

Vec3 MBSim::PolynomialFrustum::evalWu ( const fmatvec::Vec2 &  zeta)
virtual
Returns
first tangent in world frame
Parameters
ttime
cpcontour position

Reimplemented from MBSim::Contour.

Vec3 MBSim::PolynomialFrustum::evalWv ( const fmatvec::Vec2 &  zeta)
virtual
Returns
second tangent in world frame
Parameters
Lagrangianposition

Reimplemented from MBSim::Contour.

double MBSim::PolynomialFrustum::getEnclosingSphereRadius ( )

take the largest one among the distance from ((a+b)/2,0) to (a,f(a)),(b,f(b)) and (x,f(x)) where f(x) achieves maximum at x within[a,b]

Returns
the radius of the circumsphere
std::string MBSim::PolynomialFrustum::getType ( ) const
inlinevirtual
Returns
std::string representation

Reimplemented from MBSim::Contour.

void MBSim::PolynomialFrustum::init ( InitStage  stage)
virtual

plots time series header

Parameters
invocingparent class

Reimplemented from MBSim::RigidContour.

void MBSim::PolynomialFrustum::setHeight ( const double &  height_)
inline

set height of frustum

Parameters
heightheight of the frustum
void MBSim::PolynomialFrustum::updateEnclosingSphere ( )
protected

a sphere that totally encloses the frustum


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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML