File kernel/src/simulationTools/MoreauJeanDirectProjectionOSI.hpp

Go to the source code of this file

MoreauJeanOSI Time-Integrator for Dynamical Systems for Combined Projection Algorithm.

Variables

const unsigned int MOREAUPROJECTONCONSTRAINTSOSISTEPSINMEMORY = 1
class MoreauJeanDirectProjectionOSI : public MoreauJeanOSI
#include <MoreauJeanDirectProjectionOSI.hpp>

One Step time Integrator for First Order Dynamical Systems for mechanical Systems (LagrangianDS and NewtonEulerDS) with Direct Projection Algorithm.

This class reimplement a special activation of constraints in the MoreauJeanOSI for the Direct Projection Algorithm

References :

V. Acary. Projected event-capturing time-stepping schemes for nonsmooth mechanical systems with unilateral contact and coulomb’s friction. Computer Methods in Applied Mechanics and Engineering, 256:224 – 250, 2013. ISSN 0045-7825. URL http://www.sciencedirect.com/science/article/pii/S0045782512003829.

Public Functions

MoreauJeanDirectProjectionOSI(double theta)

constructor from theta value only

Parameters
  • theta: value for all these DS.

MoreauJeanDirectProjectionOSI(double theta, double gamma)

constructor from theta value only

Parameters
  • theta: value for all these DS.
  • gamma: value for all these DS.

virtual ~MoreauJeanDirectProjectionOSI()

destructor

ACCEPT_STD_VISITORS()

visitors hook

double activateYPosThreshold()
double activateYVelThreshold()
bool addInteractionInIndexSet(SP::Interaction inter, unsigned int i)

Apply the rule to one Interaction to known if is it should be included in the IndexSet of level i.

Return
bool
Parameters
  • inter: concerned interaction
  • i: level

void computeFreeState()

Perform the integration of the dynamical systems linked to this integrator without taking into account the nonsmooth input (_r or _p)

double deactivateYPosThreshold()
double deactivateYVelThreshold()
void initializeWorkVectorsForDS(double t, SP::DynamicalSystem ds)

initialization of the work vectors and matrices (properties) related to one dynamical system on the graph and needed by the osi

Parameters
  • t: time of initialization
  • ds: the dynamical system

void initializeWorkVectorsForInteraction(Interaction &inter, InteractionProperties &interProp, DynamicalSystemsGraph &DSG)

initialization of the work vectors and matrices (properties) related to one interaction on the graph and needed by the osi

Parameters
  • inter: the interaction
  • interProp: the properties on the graph
  • DSG: the dynamical systems graph

unsigned int numberOfIndexSets() const

get the number of index sets required for the simulation

Return
unsigned int

bool removeInteractionFromIndexSet(SP::Interaction inter, unsigned int i)

Apply the rule to one Interaction to known if is it should be removed in the IndexSet of level i.

Return
bool
Parameters
  • inter: concerned interaction
  • i: level

void setActivateYPosThreshold(double newValue)
void setActivateYVelThreshold(double newValue)
void setDeactivateYPosThreshold(double newValue)
void setDeactivateYVelThreshold(double newValue)

Protected Functions

MoreauJeanDirectProjectionOSI()

Default constructor.

ACCEPT_SERIALIZATION(MoreauJeanDirectProjectionOSI)

serialization hooks

Protected Attributes

double _activateYPosThreshold
double _activateYVelThreshold
double _deactivateYPosThreshold
double _deactivateYVelThreshold