1. Generalities#

The function of this object of type EIGENOLVER is to store and transport between the various routines of the code (for the moment only inside the command CALC_MODES [1] _ ), information describing a modal problem in the sense of Code_Aster (GEP or QEP) as well as the parameters attached to the chosen modal solver (SORENSEN, TRI_DIAG, JACOBI or QZ). This object is created on a volatile basis.

It should only be created and filled in via VPINIS. The consistency of its parameters and those of some underlying objects (e.g. the matrices defining the problem) are checked via VPVERS. This routine also involves, optionally, the definition of this object (sd_eigensolver.py) in the Python sense of this object () via a call to the cheksd routine. In CALC_MODES this option is always enabled.

Other dedicated routines (« method » type in the C++ sense) also make it possible to manipulate this object:

  • Reread it entirely and update some auxiliary variables: VPLECS.

  • Read a given coefficient from this object: VPLECI.

  • Write a given coefficient for this object: VPECRI.

Normally, all fields in this object, once they have been filled in and checked, should no longer be changed. The only exceptions are, for now, in CALC_MODES:

  • ESVK (2) and ESVK (3): in order to switch the work matrices if OPTION =” PLUS_GRANDE “,

  • ESVI (1) and ESVI (2): recalculation/correction of the number of modes and the size of the projection space.

When modifying this data structure, care must therefore be taken to:

  • harmonize, if necessary, the sources mentioned above,

  • update, if necessary, the sd_eigensolver.py catalog,

  • update the documentation (this doc. D and if necessary the docs. U concerning modal calculation),

  • enrich or modify, if necessary, some test cases.