Class NewtonEuler1DR#
Defined in Program listing for file kernel/src/modelingTools/NewtonEuler1DR.hpp
-
class NewtonEuler1DR : public NewtonEulerR#
This class is an interface for a relation with impact.
It implements the computation of the jacoboian of h from the points of contacts and the normal. Use this class consists in overloading the method computeh, by setting the member pc1, pc2, nc and y. The matrix jachq is used both for the building of the OSNSP (with T) and for the predictor of activation of deactivation of the Interaction.
Subclassed by NewtonEuler3DR, NewtonEuler5DR
Public Functions
-
inline NewtonEuler1DR()#
constructor
-
inline virtual ~NewtonEuler1DR()#
destructor
-
virtual void computeJachq(double time, Interaction &inter, SP::BlockVector q0) override#
compute the jacobian of h w.r.t.
q
- Parameters:
time – current time
inter – the interaction using this relation
q0 – the container of the block vector to the dynamical system
-
virtual void initialize(Interaction &inter) override#
initialize the relation (check sizes, memory allocation …)
- Parameters:
inter – the interaction using this relation
-
virtual void computeJachqT(Interaction &inter, SP::BlockVector q0) override#
Default implementation consists in multiplying jachq and T (see NewtonEulerR::computeJachqT) but here we compute the operator from the the contact point locations and the local frame at contact.
- Parameters:
inter – interaction that owns the relation
q0 – the block vector to the dynamical system position
-
virtual void computeh(double time, const BlockVector &q0, SiconosVector &y) override#
to compute the output y = h(t,q,z) of the Relation
- Parameters:
time – current time value
q – coordinates of the dynamical systems involved in the relation
y – the resulting vector
-
void computehFromRelativeContactPoints(double time, const BlockVector &q0, SiconosVector &y)#
to compute the output y = h(t,q,z) of the Relation with the relative contact points
- Parameters:
time – current time value
q – coordinates of the dynamical systems involved in the relation
y – the resulting vector
-
double distance() const#
Return the distance between pc1 and pc, with sign according to normal.
-
inline void setRelPc1(SP::SiconosVector npc)#
Set the coordinates of first contact point in ds1 frame.
It will be used to compute _Pc1 during computeh().
- Parameters:
npc – new coordinates
-
inline void setRelPc2(SP::SiconosVector npc)#
Set the coordinates of second contact point in ds2 frame It will be used to compute _Pc2 during computeh().
- Parameters:
npc – new coordinates
-
inline void setRelNc(SP::SiconosVector nnc)#
Set the coordinates of inside normal vector at the contact point in ds2 frame.
It will be used to compute _Nc during computeh().
- Parameters:
nnc – new coordinates
-
inline virtual void display() const override#
main relation members display
Public Members
-
bool _isOnContact = false#
V.A.
boolean _isOnCOntact ?? Why is it public members ? seems parametrize the projection algorithm the projection is done on the surface \( y=0 \) or on \( y \geq 0 \)
-
inline NewtonEuler1DR()#