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_);
52 fmatvec::Vec operator()(
const fmatvec::Vec &xin)
override;
106 bool isBetter(
const fmatvec::Vec &x,
const fmatvec::Vec & fVal = fmatvec::Vec(0,fmatvec::NONINIT))
override;
110 const std::vector<double> & getResults() {
157 void assignContours(
const std::vector<Contour*> &contour)
override;
160 void setGridSizeY(
int gridSizeY_);
161 void setGridSizeZ(
int gridSizeZ_);
Mother class for different criterias that are fulfilled or not.
Definition: criteria_functions.h:33
Definition: function.h:53
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
class to compute the Jacobian matrix for the newton method numerically
Definition: newton_method_jacobian_functions.h:60
RigidContour Plate.
Definition: plate.h:37
Frustum contour with a polynomial radius over height course.
Definition: polynomial_frustum.h:38
Definition: damping_functions.h:63
Definition: plate_polynomialfrustum.h:71
double frustumHeight
height of frustum
Definition: plate_polynomialfrustum.h:127
double ax
xPosition of starting Point
Definition: plate_polynomialfrustum.h:137
~edgePolyFrustumCriteria() override=default
Destructor.
void setFrustumHeight(const double &frustumHeight_)
set frustum height
Definition: plate_polynomialfrustum.h:86
std::vector< double > criteriaResults
saves the results of the criteria
Definition: plate_polynomialfrustum.h:132
int operator()(const fmatvec::Vec &xin) override
computes the criteria
Definition: plate_polynomialfrustum.cc:71
bool isBetter(const fmatvec::Vec &x, const fmatvec::Vec &fVal=fmatvec::Vec(0, fmatvec::NONINIT)) override
compares the result of given vector with the last result and returns if it got better (for damping)
Definition: plate_polynomialfrustum.cc:83
edgePolyFrustumCriteria(const double &tolerance_=1e-10)
Constructor.
Definition: plate_polynomialfrustum.cc:67
double tolerance
tolerance value for the criteria results
Definition: plate_polynomialfrustum.h:122
void setStartingXCoordinate(const double &ax_)
set starting x coordinate
Definition: plate_polynomialfrustum.h:93
double dx
xdirection
Definition: plate_polynomialfrustum.h:142
void setdirectionXCoordinate(const double &dx_)
set starting x coordinate
Definition: plate_polynomialfrustum.h:100
bool inBounds(const double &t)
checks if current point fullfills the boundary conditions
Definition: plate_polynomialfrustum.cc:93
void clear() override
deletes the list of criteria results
Definition: plate_polynomialfrustum.h:107
Function describing the scalar product between normal of frustum point and difference between frustum...
Definition: plate_polynomialfrustum.h:35
edgePolyFrustum(const PolynomialFrustum *frustum_)
constructor
Definition: plate_polynomialfrustum.cc:35
~edgePolyFrustum() override
standard destructor
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
const PolynomialFrustum * frustum
polynomials of frustum contour
Definition: plate_polynomialfrustum.h:58
fmatvec::Vec dir
direction of edge
Definition: plate_polynomialfrustum.h:68
fmatvec::Vec A
position of starting point on the line
Definition: plate_polynomialfrustum.h:63
the Jacobian function for the projectAlongNormal Function
Definition: point_polynomialfrustum.h:64
function that is zero for a height-coordinate of the polynomial frustum on which the normal on that p...
Definition: point_polynomialfrustum.h:34
namespace MBSim
Definition: bilateral_constraint.cc:30