4. Calculation parametrization#

◆ INCREMENT = _F (
        # If: exists (" INST_INIT ") or exists (" INST_FIN ")
            ◇ CRITERE = "RELATIF ",
            # If: (equal_to (" CRITERE ", 'RELATIF'))
                ◇ PRECISION = float (default: 1e-06),
        ◆ LIST_INST = list_inst/listr8,
        ◇/NUME_INST_INIT = int,
        /INST_INIT = float,
        ◇/NUME_INST_FIN = int,
        /INST_FIN = float,
    ),

The nonlinear calculation is solved by an incremental method, so it is necessary to setup the calculation. We use the time variable for this (noted INST), even if it does not have a step of physical meaning in statics. (pseudo-) -temporal discretization is managed by the keyword factor INCREMENT which will define the time intervals taken in the incremental method.

note

The moments thus defined have physical meaning only for behavioral relationships where the Time intervenes explicitly (visco-elastic or visco-plastic for example). In other cases, they only allow you to index the load increments and parameterize the evolution of a possible temperature field.

4.1. General definition of the list of moments#

To fill in the instant list, there are two ways to do this. The first is direct: The list of moments is given by the keyword LIST_INST. This list is given by the operator [U4.34.01]. This way of doing things does not give access to the advanced functionalities of automatic management of list of moments. It is therefore not recommended.

We can define the calculation times by the operator [DEFI_LIST_INST] and manage simultaneously automatic time step cutting and other advanced features. It is the recommended way to do it.

It should also be remembered that, by convention, the initial moment of the calculation of a blank calculation (without repetition) is designated by the order number 0. In addition, the order numbers are necessarily increasing and without « holes ».

4.2. Management of takeovers#

If nothing is specified, the calculation will be performed at all the times defined by LIST_INST. He is possible to manage this list more finely. The initial moment of the calculation (which is therefore not (re) calculated) is designated either by its value (INST_INIT), or by its order number in the list of litps moments (NUME_INST_INIT).

In the absence of the keywords INST_INIT or NUME_INST_INIT, the default is NUME_INST_INIT =0.

The final moment (last calculated step) is designated in the same way as the initial moment (either NUME_INST_FIN or INST_FIN), except that it’s not possible to refer to the moment of the initial state.

notes
  • If the automatic redistribution of the time step is activated, NUME_INST_FIN does not hold Count and is still working on the initial list of moments. NUME_INST_INIT and NUME_INST_FIN are only active upon initialization.

  • As the list of moments is strictly increasing, it may happen that some time steps are not archived although requested. For example, in the case of a calculation restart. If the calculation repeated from a previous calculation has no moment greater than the first one* calculation phase, no time steps will be archived.

  • If INST_INIT does not exist in the moment list, we take the next higher time step

A - Simple example (by default behavior)

listInst = DEFI_LIST_REEL (DEBUT =0. ,
                          INTERVALLE =_F (JUSQU_A = 10. , NOMBRE =10))),
evolNoli = MECA_NON_LINE (INCREMENT =_F (LIST_INST =listinst,
                         INST_FIN =4. )),
evolNoli = MECA_NON_LINE (reuse=evolnoli,
                         INCREMENT =_F (LIST_INST =listinst),
                         ETAT_INIT =_F (EVOL_NOLI =EvolNoli)

The first MECA_NON_LINE performs the calculation for the times 1, 2, 3 and 4.

The second MECA_NON_LINE: performs the calculation for the times 5, 6, 6, 7, 7, 8, 9 and 10, the initial state corresponding to time 4.

B - Example to show the value of INST_INIT

listInst = DEFI_LIST_REEL (DEBUT =0. ,
                          INTERVALLE =_F (JUSQU_A = 10. , NOMBRE =10))),
evolNoli = MECA_NON_LINE (INCREMENT =_F (LIST_INST =listinst,
                         INST_FIN =4. )),
evolNoli = MECA_NON_LINE (reuse=evolnoli,
                         INCREMENT =_F (LIST_INST =listinst,
                         INST_INIT =8. ),
                         ETAT_INIT =_F (EVOL_NOLI =EvolNoli)

First MECA_NON_LINE: Perform the calculation of the times 1 to 4.

Second MECA_NON_LINE: perform the calculation for moments 9 and 10 (we do nothing for \(t=5,6,7\) and 8), the initial state corresponding to time 4.

4.3. Selecting moments#

The moments in MECA_NON_LINE are marked by an order number (an integer). If the user wants to use a moment (a real one) and not a serial number for the selection, the keywords PRECISION and CRITERE allow this serial number to be identified (see [U4.71.00] for detailed syntax)

These parameters are used to find the correct order number (NUME_INST_FIN/NUME_INST_INIT) when the user enters the moment (INST_FIN/INST_INIT).

Here is the following list of moments:

NUME

1

2

3

3

3

4

5

6

7

INST

0.0010

0.0020

0.0020

0.0030

0.0030

0.0040

0.0050

0.0060

0.0070

If the user wants to select the moment corresponding to NUME =4, all they have to do is say INST =0.0040.

Let’s take another example

NUME

1

2

3

3

3

4

5

6

7

INST

0.10000001

0.10000002

0.10000002

0.10000002

0.10000005

0.10000006

0.10000006

0.10000007

If the user wants to select the moment corresponding to NUME =4, it is not enough for him to say INST =0.10000004, because the relative difference between the times is equal \(\frac{0,10000005-0,10000004}{0,10000004}=1,0\times 10^{-7}\) which is less than the precision value by default (\(1,0\times 10^{-6}\)). We will therefore not be able to distinguish NUME =3, 4 and 5 (the code then stops in a fatal error). All you have to do is change the PRECISION parameter to be able to select the moment (in our example, PRECISION =1E-8 will be fine).