File kernel/src/simulationTools/TimeSteppingCombinedProjection.hpp

Contents

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

virtual void initializeOneStepNSProblem() override

initialisation specific to TimeStepping for OneStepNSProblem.

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

inline TimeSteppingCombinedProjection()

default constructor

virtual ~TimeSteppingCombinedProjection()#
inline virtual void updateWorldFromDS() override#
inline unsigned int nbProjectionIteration()

get the Number of iteration of projection

Returns:

unsigned int nbProjectionIteration

inline unsigned int nbCumulatedProjectionIteration()

get the Number of cumulated iteration of projection

Returns:

unsigned int

inline unsigned int cumulatedNewtonNbIterations()

get the Cumulated Number of steps performed in the Newton Loop

Returns:

unsigned int

inline unsigned int nbIndexSetsIteration()

get the Number of iteration for stabilizating indexsets

Returns:

unsigned int

inline void setConstraintTol(double v)#
inline void setConstraintTolUnilateral(double v)#
inline double maxViolationUnilateral()#
inline double maxViolationEquality()#
inline void setProjectionMaxIteration(unsigned int v)#
inline void setDoCombinedProj(unsigned int v)#
inline bool doCombinedProjOnEquality()#
virtual void advanceToEvent() override

step from current event to next event of EventsManager

void advanceToEventOLD()#
void computeCriteria(bool *runningProjection)#
ACCEPT_STD_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(TimeSteppingCombinedProjection)#
virtual void updateIndexSet(unsigned int level) override#

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

unsigned int _indexSetLevelForProjection#

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

unsigned int _cumulatedNewtonNbIterations#

Cumulated Number of steps performed is the Newton Loop.

unsigned int _nbProjectionIteration#

Number of iteration of projection.

unsigned int _nbCumulatedProjectionIteration#

Number of cumulated iteration of projection.

unsigned int _nbIndexSetsIteration#

Number of iteration for stabilizating indexsets.

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.

double _maxViolationUnilateral#

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

double _maxViolationEquality#

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

unsigned int _projectionMaxIteration#

Default maximum number of projection iteration.

unsigned int _kIndexSetMax#

Default maximum number of index set activation iteration.

bool _doCombinedProj#

disabled or enabled projection (Debug Projection)

bool _doCombinedProjOnEquality#

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

bool _isIndexSetsStable#

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

Friends

friend struct _SimulationEffectOnOSNSP