File kernel/src/simulationTools/TimeSteppingDirectProjection.hpp

Go to the source code of this file

Time-Stepping simulation with projections on constraints.

class TimeSteppingDirectProjection : public TimeStepping
#include <TimeSteppingDirectProjection.hpp>

Time-Stepping scheme with a direct projection onto the constraint thanks to the GGL augmentation of the system.

For details, have a look on Projected event-capturing time-stepping schemes for nonsmooth mechanical systems with unilateral contact and Coulomb’s friction Vincent Acary Computer Methods in Applied Mechanics and Engineering, Elsevier, 2013, 256, pp. 224-250

Public Functions

TimeSteppingDirectProjection(SP::NonSmoothDynamicalSystem nsds, SP::TimeDiscretisation td, SP::OneStepIntegrator osi, SP::OneStepNSProblem osnspb_velo, SP::OneStepNSProblem osnspb_pos, unsigned int _level = 1)

Constructor with the time-discretisation.

Parameters
  • nsds: the nsds that we want to simulate
  • td: a pointer to a timeDiscretisation (linked to the model that owns this simulation)
  • osi: a one step integrator
  • osnspb_velo: a one step non smooth problem for the velocity formulation
  • osnspb_pos: a one step non smooth problem for the position formulation
  • _level:

TimeSteppingDirectProjection()

default constructor

virtual ~TimeSteppingDirectProjection()
ACCEPT_STD_VISITORS()

visitors hook

void advanceToEvent()

step from current event to next event of EventsManager

void computeCriteria(bool *runningProjection)
virtual void initOSNS()

initialisation for OneStepNSProblem.

double maxViolationEquality()
double maxViolationUnilateral()
unsigned int nbProjectionIteration()

get the Number of iteration of projection

Return
_nbProjectionIteration

void newtonSolve(double criterion, unsigned int maxStep)
void nextStep()
void setConstraintTol(double v)
void setConstraintTolUnilateral(double v)
void setDoOnlyProj(unsigned int v)
void setDoProj(unsigned int v)
void setProjectionMaxIteration(unsigned int v)
virtual void updateWorldFromDS()

Protected Functions

ACCEPT_SERIALIZATION(TimeSteppingDirectProjection)

serialization hooks

Protected Attributes

double _constraintTol

tolerance for the violation of the equality constraints at the position level.

double _constraintTolUnilateral

tolerance for the violation of the unilateral constraints at the position level.

unsigned int _doOnlyProj
unsigned int _doProj

disabled or enabled projection (Debug Projection)

unsigned int _indexSetLevelForProjection

level of IndexSet on which we project (default =1 (activated contact))

double _maxViolationEquality

maximum violation for the violation of the equality constraints at the position level.

double _maxViolationUnilateral

maximum violation for the violation of the unilateral constraints at the position level.

unsigned int _nbProjectionIteration

Number of iteration of projection.

unsigned int _projectionMaxIteration

Default maximum number of projection iteration.