File kernel/src/simulationTools/MoreauJeanGOSI.hpp#

Go to the source code of this file

class MoreauJeanGOSI : public MoreauJeanOSI
#include <MoreauJeanGOSI.hpp>

A global version of the MoreauJeanOSI integrator.

Public Types

enum MoreauJeanGOSI_ds_workVector_id#

Values:

enumerator RESIDU_FREE#
enumerator FREE#
enumerator LOCAL_BUFFER#
enumerator WORK_LENGTH#

Public Functions

inline MoreauJeanGOSI(double theta = 0.5, double gamma = std::numeric_limits<double>::quiet_NaN())

constructor from theta value only

Parameters:
  • theta – value for all linked DS (default = 0.5).

  • gamma – value for all linked DS (default = NaN and gamma is not used).

inline virtual ~MoreauJeanGOSI()

destructor

virtual void initializeWorkVectorsForDS(double t, SP::DynamicalSystem ds) override

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) override

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

virtual double computeResidu() override
Returns:

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

virtual void computeFreeState() override

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

virtual void integrate(double &tinit, double &tend, double &tout, int &notUsed) override

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

Parameters:
  • tinit – the initial time

  • tend – the end time

  • tout – the real end time

  • notUsed – useless flag (for MoreauJeanGOSI, used in LsodarOSI)

virtual void updateState(const unsigned int level) override

update the state of the dynamical systems

Parameters:

level – the level of interest for the dynamics: not used at the time

void NonSmoothLawContributionToOutput(SP::Interaction inter, OneStepNSProblem &osnsp)

Compute the nonsmooth law contribution to the output.

Parameters:
  • inter – the interaction (for y_k)

  • osnsp – the non-smooth integrator

virtual void display() override

Displays the data of the MoreauJeanGOSI’s integrator.

ACCEPT_STD_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(MoreauJeanGOSI)#