File kernel/src/simulationTools/MoreauJeanBilbaoOSI.hpp

Go to the source code of this file

class MoreauJeanBilbaoOSI : public OneStepIntegrator

Public Types

enum MoreauJeanBilbaoOSI_ds_workVector_id

Values:

TWO_DT_SIGMA_STAR
ONE_MINUS_THETA
VFREE
WORK_LENGTH
enum MoreauJeanBilbaoOSI_interaction_workBlockVector_id

Values:

xfree
BLOCK_WORK_LENGTH
enum MoreauJeanBilbaoOSI_interaction_workVector_id

Values:

OSNSP_RHS
WORK_INTERACTION_LENGTH

Public Functions

MoreauJeanBilbaoOSI()
virtual ~MoreauJeanBilbaoOSI()

destructor

void _initialize_iteration_matrix(SP::DynamicalSystem ds)
ACCEPT_STD_VISITORS()
bool addInteractionInIndexSet(SP::Interaction inter, unsigned int i)

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

Return
Boolean
Parameters
  • inter: the Interaction to test
  • i: level of the IndexSet

void compute_parameters(double time_step, double omega, double sigma, double &theta, double &sigma_star)
void computeFreeOutput(InteractionsGraph::VDescriptor &vertex_inter, OneStepNSProblem *osnsp)

integrates the Interaction linked to this integrator, without taking non-smooth effects into account

Parameters
  • vertex_inter: vertex of the interaction graph
  • osnsp: pointer to OneStepNSProblem

void computeFreeState()

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

double computeResidu()

return the maximum of all norms for the “MoreauJeanOSI-discretized” residus of DS

Return
a double

void display()

print the data to the screen

virtual void initialize_nonsmooth_problems()

Initialization process of the nonsmooth problems linked to this OSI.

virtual 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

virtual 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

void integrate(double &tinit, double &tend, double &tout, int &idid)

integrate the system, between tinit and tend (->iout=true), with possible stop at tout (->iout=false)

Parameters
  • tinit: initial time
  • tend: end time
  • tout: real end time
  • idid: flag used in EventDriven schemes

SP::SimpleMatrix iteration_matrix(SP::DynamicalSystem ds)

get iteration_matrix (pointer link) corresponding to DynamicalSystem ds

Return
pointer to a SiconosMatrix
Parameters

unsigned int numberOfIndexSets() const

get the number of index sets required for the simulation

Return
unsigned int

void prepareNewtonIteration(double time)
bool removeInteractionFromIndexSet(SP::Interaction inter, unsigned int i)

Apply the rule to one Interaction to know if it should be removed from the IndexSet of level i.

Return
Boolean
Parameters
  • inter: the Interaction to test
  • i: level of the IndexSet

void updatePosition(DynamicalSystem &ds)

update the state of the dynamical systems

Parameters
  • ds: the dynamical to update

void updateState(const unsigned int level)

update the state of the DynamicalSystem attached to this Integrator

Parameters
  • level: level of interest for the dynamics level is set to 0 by default since in all time-stepping schemes we update all the state whatever the value of level is.

Protected Functions

ACCEPT_SERIALIZATION(MoreauJeanBilbaoOSI)

Friends

friend _NSLEffectOnFreeOutput