2. Operands#

The operator outputs a mode_empi data structure (empirical modes).

2.1. Operand BASE#

◊ BASE = base, [base_empi]

It is possible to enrich a base of empirical modes by the following operations. In this case, it is provided here.

2.2. Operand OPERATION#

◊ OPERATION = |”POD”, [DEFAULT]

“GLUTTON”,
“TRUNCATION”,

|”ORTHO”,

This keyword allows you to choose how to calculate empirical modes:

* With a POD (OPERATION =' POD '): a SVD is performed on the snapshot matrix containing the results on a transient. This operation is accurate (in the sense of extracting empirical modes) but can be potentially expensive (in CPU and in memory);


* By an incremental POD (OPERATION =' POD_INCR '): we build the empirical base incrementally (see [:external:ref:`R5.01.50 <R5.01.50>`]). This method is less accurate than the classic POD but much less expensive. In addition, it makes it possible to enrich an existing empirical base with new results;


* By a greedy method (OPERATION =' GLOUTON ', see [:external:ref:`R5.01.50 <R5.01.50>`]) on parametric problems;


It is also possible to truncate a base (primal or dual) on a reduced domain (for example produced by the DEFI_DOMAINE_REDUIT command) with OPERATION =' TRONCATURE 'or to re-orthogonalize an existing base using the keyword' ORTHO '.

2.3. Operands for strategies POD#

2.3.1. Operand RESULTAT#

♦ RESULTAT = resu,


Name of the result data structure to be analyzed to generate the reduced database. Two possible types of results: evol_noli or evol_ther.


Limitations of use:

* Only works in 3D (thermal and mechanical);


* Cannot use Dirichlet boundary conditions by dualization (AFFE_CHAR_MECA or AFFE_CHAR_THER). Dirichlet boundary conditions by elimination must be used (AFFE_CHAR_CINE).

2.3.2. Operand SNAPSHOT#

◊ SNAPSHOT = nume_snap,


This keyword allows you to filter the moments in the result given by the RESULTAT keyword to generate the snapshot matrix. The selected moments are referenced by their order number.

2.3.3. Operand TABL_COOR_REDUIT#

◊ TABL_COOR_REDUIT = tabl_coor,


When calculating an empirical base using the incremental POD method to enrich an already existing base, it is necessary to have the reduced coordinates from the previous calculation. These coordinates are stored in a data structure named 'COOR_REDUIT' that is attached to the empirical database. It can be retrieved using the RECU_TABLE operator. For example:


cocoredp= RECU_TABLE (CO=base, NOM_TABLE =' COOR_REDUIT ')


But if you get back the empirical base previously calculated by an operator like LIRE_RESU (especially in the MED format), this table is not available. The TABL_COOR_REDUIT operator therefore allows it to be given to DEFI_BASE_REDUITE.


It is therefore necessary beforehand to have saved this table at the same time as the empirical base (with a IMPR_TABLE), then to retrieve it (with a LIRE_TABLE) to give it to DEFI_BASE_REDUITE. A typical succession of orders is therefore as follows:


1/ Creation of a first reduced base

* non-linear calculation


* creating the base with DEFI_BASE_REDUITE


* retrieving the reduced coordinate table with RECU_TABLE


* saving the empirical base by IMPR_RESU


* saving the coordinate table reduced by IMPR_TABLE


2/ Enrichment of the base reduce

* non-linear calculation


* reading the previous empirical base by LIRE_RESU


* reading the previous reduced coordinate table by LIRE_TABLE


* enrichment of the reduced base by DEFI_BASE_REDUITE by giving the previous base (keyword BASE) and the previous reduced coordinate table (keyword TABL_COOR_REDUIT)

2.3.4. Operand NOM_CHAM#

♦ NAME_CHAM =|'DEPL'

|”SIEF_KNOE” |”SIEF_ELGA” |”VARI_ELGA” |”TEMP” |”KNOT_FLOW”

We specify the type of reduced base field:

  • “DEPL” or” SIEF_NOEU “or” SIEF_ELGA “or” “or” VARI_ELGA “if the data structure is of type evol_noli;

  • “TEMP” or” FLUX_NOEU “if the data structure is of type evol_ther.

2.3.5. Operands NOM_CMP and NOM_VARI#

◊ NOM_CMP = lcmp, [TXM]

# If NOM_CHAM =” VARI_ELGA “ ◊ NOM_VARI = lvari, [TXM]

It is possible to select the name of the component on which the empirical modes will be built.

For fields VARI_ELGA, it is strongly recommended to build a database by component type. In this case, the use of NOM_VARI is possible and allows the user to give the name of the internal variables (ex: “EPSEQ”) rather than its order number (ex: “V1”). In practice the modes will have the same number of components as the initial field but the components not selected by these keywords will have a zero value.

2.3.6. Operand TYPE_BASE#

◊ TYPE_BASE =| '3D',
“LINEAR”,

The type of reduced base is specified.

The linear case is specific to the numerical simulation of welding. This case requires specifying the welding axis and information concerning the section of the welded zone, perpendicular to the welding axis.

2.3.7. Operands AXE and SECTION#

Operands used in the linear case (specific to the numerical simulation of welding).
♦ AXIS =|'OX',

|”OY”, |”OZ”,

Operand allowing the welding axis to be specified.

♦ SECTION = l_grno,


Operand used to specify the group of nodes contained in the first section of the mesh of the welded zone.


Note:

These operands make it possible to define a local numbering used for the calculation of reduced modes.

2.3.8. Operands NB_MODE/TOLE_SVD#

◊ TOLE_SVD = sheet metal

Refers to the tolerance used for SVD. The value by default is DE1.0e-6.


The modes selected are those whose singular value is greater than tole x sing_maxi where sing_maxi is the maximum singular value given by SVD.


Note: the incremental POD (OPERATION =' POD_INCR ') also does a SVD but not on the snapshot matrix. So this setting is also useful in this case.


◊ NB_MODE = nbmode


Number of modes selected for the construction of the reduced base.


The user must enter only one of the two operands to set the number of modes selected for the construction of the reduced base.

2.3.9. Operand TOLE#

◊ TOLE = /tole_incr, [R]

/1.0E-10, [DEFAUT]

This parameter allows you to adjust the precision of the incremental POD.

2.4. Operands for strategies GLOUTON#

The OPERATION =” GLOUTON “method makes it possible to build an empirical base on a parameterized problem. The basic principle is to build the linear system that solves the problem in question and to list the parameters that vary. The empirical base is then built by a Greedy Algorithm (Greedy Algorithm) to which the variation of the parameters must be provided.

The linear system will be written as follows:

(2.1)#\[ \ sum _ {i=1} ^ {{n} _ {m}}} {\ mathrm {\ alpha}}} _ {i}\ left ({\ mathrm {\ gamma}}} _ {j=\ mathrm {1,} {1,} {1,}} {1,} {1,} {j=\ mathrm {1,}} {1,} _ {v}}\ mathrm {\ beta}} _ {i}\ left ({\ mathrm {\ gamma}}} _ {j=\ mathrm {1,} {n} _ {p}}\ right) {V} _ {i}\]

It contains \({n}_{m}\) assembled matrices \({M}_{i}\) (real or complex). These matrices can be built in the classical way in code_aster (CALC_MATR_ELEM and ASSE_MATRICE for example). In front of each matrix, there is a coefficient \({\mathrm{\alpha }}_{i=\mathrm{1,}{n}_{m}}\), which is either constant (real or complex), or a function or a formula (real or complex) that depends on \({\mathrm{\gamma }}_{j=\mathrm{1,}{n}_{p}}\) parameters at most.

Finally, the second member \(V\) is also a linear combination of \({n}_{v}\) vectors (real or complex) with a coefficient \({\mathrm{\beta }}_{i=\mathrm{1,}{n}_{v}}\), which is either constant (real or complex), or a function or a formula (real or complex) that depends on a maximum of \({\mathrm{\gamma }}_{j=\mathrm{1,}{n}_{p}}\) parameters.

To build the empirical base, you have to go through the parameter space what the user defined in § 2.4.2.

2.4.1. Operands MATR_ASSE and VECT_ASSE#

♦ MATRICE = matrix,/[matr_ass_ DEPL_R]

/[matro_mass_ DEPL_C]

◊ COEF_C = coefc, [C]

◊ FONC_R = background, [function/formula]

2.4.2

We then choose the coefficient in front of each matrix. This coefficient is either constant (real by COEF_Rou complex by COEF_C), or a function (real by FONC_Rou complex by FONC_C). In the case of a function, it must depend on the parameters whose list (the variation) is given by the keyword factor VARI_PARA (see §).

◊ VECT_ASSE = _F (

◊ COEF_R = core, [R] ◊ COEF_C = coefc, [C]

◊ FONC_R = background, [function/formula]

2.4.2

These keywords define the second member \(V\) by the keyword VECT_ASSE. We then choose the coefficient in front of each vector. This coefficient is either constant (real by COEF_Rou complex by COEF_C), or a function (real by FONC_Rou complex by FONC_C). In the case of a function, it must depend on the parameters whose list (the variation) is given by the keyword factor VARI_PARA (see §).

2.4.2. Operands VARI_PARA, NB_VARI_COEF, and TYPE_VARI_COEF#

These operands define the parametric space covered to build the empirical base.

 ♦ NB_VARI_COEF = nbvaricoef, [I]

 ◊ TYPE_VARI_COEF = |' DIRECT ', [DEFAULT]

NB_VARI_COEF gives the number of parameters when we go through the parametric space. The TYPE_VARI_COEF keyword allows you to say that we will give explicitly the list of parameter values (the only mode available at the moment).

◊ VARI_PARA = _F (

♦ VALE_PARA = valepara, [R] ♦ VALE_INIT = valeinit [R] ),

The keyword factor VARI_PARA lists the \({\mathrm{\gamma }}_{j=\mathrm{1,}{n}_{p}}\) parameters and their values. For each occurrence, we give the name of the parameter in NOM_PARA. This parameter is necessarily used in the coefficients \({\mathrm{\alpha }}_{i=\mathrm{1,}{n}_{m}}\) in front of the matrices. For each parameter, we give the list of its values by VALE_PARA. The length of vector VALE_PARA is necessarily equal to NB_VARI_COEF. You must also give an initial value VALE_INIT (which initializes the greedy algorithm).

2.4.3. Operand SOLVEUR#

This keyword gives the parameters of the solver used (see [:ref:`U4.50.01 <U4.50.01>`]). Indeed, the greedy algorithm will solve a large number of times the defined linear system.

2.4.4. Operand ORTHO_BASE#

◊ ORTHO_BASE = /' NON ', [DEFAUT]

This keyword makes it possible to orthonormalize the empirical base when ORTHO_BASE =” OUI “. This orthonormalization is done with an iterative Graam-Schmidt algorithm (IGS) according to the Kahan-Parlett version.

2.4.5. Operand TYPE_BASE#

◊ TYPE_BASE = /” STANDARD “, [DEFAUT]

When TYPE_BASE =” IFS_STAB “, an empirical base is created that will be stable when used for fluid-structure interaction models (model \(\{u,p,\mathrm{\varphi }\}\) see [R4.02.02]) in transient dynamics.

The strategy consists in building an empirical base by diagonalizing three bases on each of the components (see [R5.01.50]). When this keyword is activated, a check of the components present is performed on the components of the input result.


2.5. Other transactions#

2.5.1. Truncation of a base#

◊ OPERATION = “TRONCATURE”

♦ MODELE_REDUIT = model, [model]

The OPERATION =” TRONCATURE “method makes it possible to truncate an empirical base on a model that is smaller than the one that was used to build the base. This operation is essential when hyperreducing a model (see keyword DOMAINE_REDUIT in STAT_NON_LINE and THER_NON_LINE).

The input keyword BASE gives the empirical basis to truncate. The keyword MODELE_REDUIT gives the model on which the base will be truncated. It is the model and not the mesh.

2.5.2. Orthonormalization of a base#

◊ OPERATION = “ORTHO”

◊ ALPHA = 0.717, [DEFAUT]

Alpha [R]

The method OPERATION =” ORTHO “makes it possible to orthonormalize an empirical base. A standard POD procedure makes it possible to obtain an orthonormal basis. On the other hand, in some cases, it may happen that a base is not orthonormal:

  • when using a glutton algorithm

  • when using an incremental POD algorithm with some parameter values that are too « relaxed »

  • when the initial system to be solved is poorly conditioned

The input keyword BASE gives the empirical basis to orthonormalize.

This orthonormalization is done with an iterative Graam-Schmidt algorithm (IGS) according to the Kahan-Parlett version. Parameter ALPHA allows you to set the algorithm. The bigger it is, the less the algorithm will iterate but the more imperfect the orthonormalization will be.