20 #ifndef AREA_POLYNOMIALFRUSTUM_H_
21 #define AREA_POLYNOMIALFRUSTUM_H_
23 #include "contact_kinematics.h"
25 #include <mbsim/contours/polynomial_frustum.h>
26 #include <mbsim/contours/plate.h>
27 #include <mbsim/numerics/nonlinear_algebra/multi_dimensional_newton_method.h>
28 #include <mbsim/contact_kinematics/point_polynomialfrustum.h>
50 void setAdir(
const fmatvec::Vec3 &
A,
const fmatvec::Vec3 &
dir);
110 const std::vector<double> & getResults() {
158 virtual void updateg(
double & g, std::vector<ContourFrame*> &cFrame,
int index = 0);
160 throw MBSimError(
"(ContactKinematicsPlatePolynomialFrustum::updatewb): not implemented!");
163 void setGridSizeY(
int gridSizeY_);
164 void setGridSizeZ(
int gridSizeZ_);
185 bool gridContact(
double & g, std::vector<ContourFrame*> &cFrame);
191 bool cornerContact(
double & g, std::vector<ContourFrame*> &cFrame);
199 bool edgeContact(
double & g, std::vector<ContourFrame*> &cFrame);
This criteria function class applies the infinity norm globally on the complete vector and compares i...
Definition: criteria_functions.h:170
Newton method for multidimensional root finding.
Definition: multi_dimensional_newton_method.h:41
std::vector< double > criteriaResults
saves the results of the criteria
Definition: plate_polynomialfrustum.h:132
virtual void clear()
deletes the list of criteria results
Definition: plate_polynomialfrustum.h:107
class to compute the Jacobian matrix for the newton method numerically
Definition: newton_method_jacobian_functions.h:61
fmatvec::Vec dir
direction of edge
Definition: plate_polynomialfrustum.h:68
virtual ~edgePolyFrustumCriteria()
Destructor.
Definition: plate_polynomialfrustum.h:81
double ax
xPosition of starting Point
Definition: plate_polynomialfrustum.h:137
void setStartingXCoordinate(const double &ax_)
set starting x coordinate
Definition: plate_polynomialfrustum.h:93
Frustum contour with a polynomial radius over height course.
Definition: polynomial_frustum.h:38
double dx
xdirection
Definition: plate_polynomialfrustum.h:142
double frustumHeight
height of frustum
Definition: plate_polynomialfrustum.h:127
double tolerance
tolerance value for the criteria results
Definition: plate_polynomialfrustum.h:122
virtual bool isBetter(const fmatvec::Vec &x, const fmatvec::Vec &fVal=fmatvec::Vec(0, fmatvec::NONINIT))
compares the result of given vector with the last result and returns if it got better (for damping) ...
Definition: plate_polynomialfrustum.cc:83
Function describing the scalar product between normal of frustum point and difference between frustum...
Definition: plate_polynomialfrustum.h:35
RigidContour Plate.
Definition: plate.h:37
Definition: plate_polynomialfrustum.h:71
void setFrustumHeight(const double &frustumHeight_)
set frustum height
Definition: plate_polynomialfrustum.h:86
fmatvec::Vec A
position of starting point on the line
Definition: plate_polynomialfrustum.h:63
function that is zero for a height-coordinate of the polynomial frustum on which the normal on that p...
Definition: point_polynomialfrustum.h:34
Mother class for different criterias that are fulfilled or not.
Definition: criteria_functions.h:33
the Jacobian function for the projectAlongNormal Function
Definition: point_polynomialfrustum.h:64
Definition: planar_contour.h:31
bool inBounds(const double &t)
checks if current point fullfills the boundary conditions
Definition: plate_polynomialfrustum.cc:96
void setAdir(const fmatvec::Vec3 &A, const fmatvec::Vec3 &dir)
set the one corner point A and the direction of the edge with (A + dir) is the other corner point ...
Definition: plate_polynomialfrustum.cc:41
basic error class for mbsim
Definition: mbsim_event.h:38
Definition: damping_functions.h:64
virtual int operator()(const fmatvec::Vec &x)
computes the criteria
Definition: plate_polynomialfrustum.cc:71
const PolynomialFrustum * frustum
polynomials of frustum contour
Definition: plate_polynomialfrustum.h:58
edgePolyFrustumCriteria(const double &tolerance_=1e-10)
Constructor.
Definition: plate_polynomialfrustum.cc:67
edgePolyFrustum(const PolynomialFrustum *frustum)
constructor
Definition: plate_polynomialfrustum.cc:34
void setdirectionXCoordinate(const double &dx_)
set starting x coordinate
Definition: plate_polynomialfrustum.h:100
virtual ~edgePolyFrustum()
standard destructor
Definition: plate_polynomialfrustum.cc:38