4. Introduction of a new non-linear law#

A temporary data structure sd_nl has been created in order to be able to store all the parameters required for the calculation.

Several utilities are available:

  • nlinivec: allows you to initialize a vector to zero

  • nlsav: allows you to store the calculation parameters in the sd_nl data structure

  • nlget: allows you to retrieve information stored in sd_nl

  • togene: projection of a vector on a reduced basis

  • tophys: expansion of a generalized vector on a physical basis

  • tophys_ms: expansion on a physical basis taking into account the training movement (multi-support calculation)

To introduce a new non-linear law, the developer therefore only needs to write the data preparation routine: dtmprep_noli_newf.F90 and the one that calculates and archives the internal variables: dtmforc_newf.F90 (not forgetting to write the dtmprep_noli interface files_newf.h and dtmforc_newf.h).

For example, to define the effort-displacement relationship (RELA_EFFO_DEPL), we only need DTMPrep_Noli_Rede.F90 and DTMForC_Rede.F90. It can be used as inspiration for the writing of a new law.

We then update:

*the nldef.h file for the definition of non-linearity — associate an integer with the type of nonlinearity (NL_* NEWF *) and define the number of internal variables to be stored in advance (NBVARINT*_ NEWF *),

  • the nlinc.h file for defining the calculation parameters (in case it is necessary to add new parameters to the sd_nl),

  • the dyna_vibra.capy order catalog (keyword COMPORTEMENT/RELATION).