File kernel/src/simulationTools/TimeSteppingCombinedProjection.hpp

Go to the source code of this file

Time-Stepping simulation with projections on constraints.

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

Time-Stepping scheme.

Public Functions

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

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:

TimeSteppingCombinedProjection()

default constructor

virtual ~TimeSteppingCombinedProjection()
ACCEPT_STD_VISITORS()

visitors hook

void advanceToEvent()

step from current event to next event of EventsManager

void advanceToEventOLD()
void computeCriteria(bool *runningProjection)
unsigned int cumulatedNewtonNbIterations()

get the Cumulated Number of steps performed in the Newton Loop

Return
unsigned int

bool doCombinedProjOnEquality()
virtual void initOSNS()

initialisation for OneStepNSProblem.

double maxViolationEquality()
double maxViolationUnilateral()
unsigned int nbCumulatedProjectionIteration()

get the Number of cumulated iteration of projection

Return
unsigned int

unsigned int nbIndexSetsIteration()

get the Number of iteration for stabilizating indexsets

Return
unsigned int

unsigned int nbProjectionIteration()

get the Number of iteration of projection

Return
unsigned int nbProjectionIteration

void setConstraintTol(double v)
void setConstraintTolUnilateral(double v)
void setDoCombinedProj(unsigned int v)
void setProjectionMaxIteration(unsigned int v)
virtual void updateWorldFromDS()

Protected Functions

ACCEPT_SERIALIZATION(TimeSteppingCombinedProjection)

serialization hooks

void updateIndexSet(unsigned int level)

update indexSets[i] of the topology, using current y and lambda values of Interactions.

Parameters
  • level: unsigned int: the level of the set to be updated

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 _cumulatedNewtonNbIterations

Cumulated Number of steps performed is the Newton Loop.

bool _doCombinedProj

disabled or enabled projection (Debug Projection)

bool _doCombinedProjOnEquality

disabled or enabled projection On Equality (or Unilateral) for unilateral constraints

unsigned int _indexSetLevelForProjection

level of IndexSet on which we project (default =2 (subset of activated constraint with positive reactions))

bool _isIndexSetsStable

Boolean to check if the index sets are stabilized in the Combined Projection Algorithm.

unsigned int _kIndexSetMax

Default maximum number of index set activation iteration.

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 _nbCumulatedProjectionIteration

Number of cumulated iteration of projection.

unsigned int _nbIndexSetsIteration

Number of iteration for stabilizating indexsets.

unsigned int _nbProjectionIteration

Number of iteration of projection.

unsigned int _projectionMaxIteration

Default maximum number of projection iteration.

Friends

friend _SimulationEffectOnOSNSP