You are on page 1of 24

Non-linear transient dynamics analysis

on modal basis

Code_Aster, Salome-Meca course material


GNU FDL licence (http://www.gnu.org/copyleft/fdl.html)
Introduction to nonlinear transient computing
for structural dynamics
Numerical methods for nonlinear analysis

Linear to nonlinear analysis on modal basis

Different kind of nonlinearities

Damping for nonlinear analysis on modal basis

Calculation of transient response on modal basis

Postprocessing

Nonlinear transient studies

2 - Code_Aster and Salome-Meca course material GNU FDL Licence


Numerical methods for nonlinear analysis

Direct transient response with DYNA_NON_LINE


Localized non-linearities: shocks, friction
Limited size of the discretized system (< 500,000 DoF)
Nonlinearities as internal forces:
Non-linear constitutive relations: plasticity, damage…
full implicit representation
Geometric nonlinearities: large displacements
Implicit time integrators: Newmark family, HHT, Krenk, q-method
Explicit time integration schemes: central difference, Tchamwa-Wielgosz

Modal transient response with DYNA_VIBRA


Only localised nonlinearities (quasilinear system)
Low frequency responses
Nonlinearities in right hand terms of
Modal reduction for fast computation
equations: explicit representation
Explicit time schemes: Euler, De Vogelære, adaptive
Implicit time schemes: Newmark

3 - Code_Aster and Salome-Meca course material GNU FDL Licence


Linear to nonlinear analysis on modal basis
Governing FE equations, at each time step:
𝑀 𝑞ሷ 𝑡 + 𝐷𝑣 𝑞ሶ 𝑡 + 𝐾𝑒 𝑞(𝑡) = 𝑓(𝑡)
On modal basis :

𝑇𝑟 𝑇 𝑀 𝑇𝑟 𝑞𝑟ሷ 𝑡 + 𝑇𝑟 𝑇 𝐷𝑣 𝑇𝑟 𝑞𝑟ሶ 𝑡 + 𝑇𝑟 𝑇 𝐾𝑒 𝑇𝑟 𝑞𝑟 (𝑡) = 𝑇𝑟 𝑇 𝑓(𝑞, 𝑡)

𝑇𝑟 : Modal basis, composed of eingenmode and enrichment vectors :


constraint modes / inertia relief modes / attachement modes / static responses / etc
𝑇𝑟 𝑇 𝑀 𝑇𝑟 : generalised mass matrix
𝑇𝑟 𝑇 𝐷𝑣 𝑇𝑟 : generalised damping matrix
𝑇𝑟 𝑇 𝐾𝑒 𝑇𝑟 : generalised stiffness matrix
𝑓 𝑞, 𝑡 = 𝑓 𝑡 + 𝑓𝑛𝑙 (𝑞) : generalised forces + nonlinear forces

For non-linear analysis on modal basis, only 𝑓(𝑞, 𝑡) is modified at


each time step. Can be used only for localised nonlinearities
(contact, damping, )
4 - Code_Aster and Salome-Meca course material GNU FDL Licence
Nonlinear analysis on modal basis

Each non-linearity is composed of :


one or two nodes
no finite element

During calculations:
At time step 𝑡 :
Use of forces calculated at time step 𝑡 − 𝑑𝑡, in the right hand side
Calculation of the solution for the time step 𝑡
Restitution of displacements and velocities of nodes to physical basis
Calculation non-linear forces
Projection of forces on modal basis
At time step 𝑡 + 𝑑𝑡 :
Use of forces calculated at time step 𝑡, in the second member

Small variations of forces between time step 𝑡 and 𝑡 + 𝑑𝑡


Relative displacements of nodes must be presents into the modal basis
→ Enrichment of modal basis with DEFI_BASE_MODALE

5 - Code_Aster and Salome-Meca course material GNU FDL Licence


Nonlinear analysis on modal basis
KE = CALC_MATR_ELEM(OPTION = 'RIGI_MECA', KE2 = CALC_MATR_ELEM(OPTION='RIGI_MECA',
MODELE = MOD_DYN, MODELE=MOD_DYN,
CHAM_MATER = MAT_DYN, CHAM_MATER=MAT_DYN,
CARA_ELEM = CARA_DYN, CARA_ELEM=CARA_DYN,
CHARGE = (CHAR_DYN,),); CHARGE=(CHAR_STAT),);

ME = CALC_MATR_ELEM(OPTION = 'MASS_MECA', ME2 = CALC_MATR_ELEM(OPTION='MASS_MECA',


MODELE = MOD_DYN, MODELE=MOD_DYN,
CHAM_MATER = MAT_DYN, CHAM_MATER=MAT_DYN,
CARA_ELEM = CARA_DYN, CARA_ELEM=CARA_DYN,
CHARGE = (CHAR_DYN,),); CHARGE=(CHAR_STAT),);

NU = NUME_DDL(MATR_RIGI=KE,); NU2 = NUME_DDL(MATR_RIGI=KE2,);

MATRAS = ASSE_MATRICE(MATR_ELEM=KE, NUME_DDL=NU,); MATRAS2 = ASSE_MATRICE(MATR_ELEM=KE2,NUME_DDL=NU2,);


MATMAS = ASSE_MATRICE(MATR_ELEM=ME ,NUME_DDL=NU,); MATMAS2 = ASSE_MATRICE(MATR_ELEM=ME2,NUME_DDL=NU2,);

M_DYN = CALC_MODES(MATR_RIGI = MATRAS, M_STAT = MODE_STATIQUE(MATR_RIGI = MATRAS2,


MATR_MASS = MATMAS, MATR_MASS = MATMAS2,
OPTION = 'BANDE', MODE_STAT = _F(GROUP_NO = (‘N01',
CALC_FREQ =_F(FREQ = (0, f_max ),), ‘N02‘,’N03’),
SOLVEUR = _F(METHODE='MUMPS',),); AVEC_CMP = ('DX','DY','DZ')));

PSEUDO = MODE_STATIQUE(MATR_RIGI = MATRAS2,


MATR_MASS = MATMAS2,
PSEUDO_MODE = _F(AXE=('X','Y','Z')));

MODES = DEFI_BASE_MODALE(RITZ =_F(MODE_MECA = (M_DYN, M_STAT,PSEUDO),),


NUME_REF = NU,);

numgen = NUME_DDL_GENE(BASE=MODES, STOCKAGE='PLEIN',);


mgene = PROJ_MATR_BASE(BASE=MODES, NUME_DDL_GENE= numgen, MATR_ASSE=MATMAS,);
rgene = PROJ_MATR_BASE(BASE=MODES, NUME_DDL_GENE= numgen, MATR_ASSE=MATRAS,);

6 - Code_Aster and Salome-Meca course material GNU FDL Licence


Different sort of nonlinearities

Contact-friction (‘CONTACT’)
Between one node and an obstacle, or between two nodes
Each point is associated to a width.

Geometries of contact:
Point between two planes
Point in a circle
Plane vs plane
Circle vs circle

7 - Code_Aster and Salome-Meca course material GNU FDL Licence


Different sort of nonlinearities

Buckling (‘FLAMBAGE’)
Penalised contact law
Similar to Contact (without friction)
with a maximum load, and post buckling parameters (load, stifness)

8 - Code_Aster and Salome-Meca course material GNU FDL Licence


Different sort of nonlinearities

Damping (‘DIS_VISC’)
Nonlinear viscoelastic behaviour between two nodes.
Only affects the degree of freedom DX of the element (from node 1 to node 2).

‘DIS_ECRO_TRAC’ ‘DIS_VISC’

Nonlinear stiffness (‘DIS_ECRO_TRAC’)


Nonlinear behaviour, allowing to schematize the behaviour of an uniaxial
device, only according to the degree of freedom DX.
The non-linear behaviour is given by a curve Fx= fonction(ΔU x)
9 - Code_Aster and Salome-Meca course material GNU FDL Licence
Different sort of nonlinearities

Antiseismic device (‘ANTI_SISM’)


Calculation of the nonlinear force which exists if an antiseismic device is placed between
the two antagonistic nodes.

Relation force – displacement (‘RELA_EFFO_DEPL’) , or force –


velocity (‘RELA_EFFO_VITE’)
Relation force-displacement (force – velocity) on a degree of freedom of a node, given
by a nonlinear curve.
Only available for the absolute displacement of a node, not between two nodes,

10 - Code_Aster and Salome-Meca course material GNU FDL Licence


Nonlinear analysis on modal basis
Ω1
Ω1
Focus on contact non-linearity :
Signorini condition :
Ω2
Ω2

Relation force-displacement is not differentiable → not usable in a simple way


in a dynamic calculation algorithm. → Modelisation of contact by penalization

: contact stiffness

: contact damping

11 - Code_Aster and Salome-Meca course material GNU FDL Licence


Nonlinear analysis on modal basis

Focus on friction non-linearity :


Coulomb condition :

This relation is not differentiable → not usable in a simple way in a dynamic


calculation algorithm. → Modelisation of friction by penalization
: Force at the previous time step

: Tangential damping, dissipation


of parasitic vibrations in phase of adherence

Checks the criterion of Coulomb :

If it’s not the case :

12 - Code_Aster and Salome-Meca course material GNU FDL Licence


Nonlinear analysis on modal basis

Time integration scheme with localised non-linearities :


Only explicit schemes :

'DIFF_CENTRE' : constant time step - explicit ordre 1


'DEVOGE' : adaptive time step - explicit ordre 4
'ADAPT_ORDRE2' : adaptive time step - explicit ordre 2
'RUNGE_KUTTA_32' : adaptive time step - explicit
'RUNGE_KUTTA_54' : adaptive time step - explicit
'ADAPT_ORDRE1' : adaptive time step - explicit ordre 1

→ Time step may have to be reduced to ensure stability

13 - Code_Aster and Salome-Meca course material GNU FDL Licence


Damping for nonlinear analysis on modal basis

Rayleigh damping (for each material)


C = a.K + b.M
Convenient for linear modal dynamics, but limited physical meaning
Defined with DEFI_MATERIAU and AMOR_ALPHA = a , AMOR_BETA = b
Relation with modal damping coefficient: 2 x (w) = a / w + b . w
Parameters can be fitted with 2 methods
1. Mean value x between w1 and w2
2. Enforcing x value at w1 and w2

Rigid body modes:


In presence rigid body modes, it’s recommended to use C = b.M
a.K is not used to not overdamp rigid body modes
However low frequency modes are practically not damped
14 - Code_Aster and Salome-Meca course material GNU FDL Licence
Damping for nonlinear analysis on modal basis

Modal damping

𝐶𝑖
For each mode x𝑖 (reduced modal damping) =
2 w𝑖 𝑚𝑖
Based on a modal basis precalculated in the form of concept of the type MODE_MECA
Defined in DYNA_VIBRA
This damping is taken into account in the dynamic equilibrium equation like a correct
force with the second member −𝐶 𝑋ሶ

AMOR_MODAL=_F(AMOR_REDUIT= (x𝟏 , x𝟐 , x𝟑 , …)),


If the number of reduced damping given is lower than the number of basis vectors used
in the modal base, damping of the additional vectors is taken equal to the last damping
of the list.

15 - Code_Aster and Salome-Meca course material GNU FDL Licence


Calculation of transient response on modal basis

Ex :
TRANGEN = DYNA_VIBRA(TYPE_CALCUL='TRAN',
BASE_CALCUL='GENE',
SCHEMA_TEMPS=_F(SCHEMA='DEVOGE',PAS_MAXI=PAS*10., PAS_MINI=PAS/100.,),
MATR_MASS=mgene,
MATR_RIGI=rgene,
AMOR_MODAL=_F(AMOR_REDUIT=amor)
INCREMENT=_F(PAS=PAS,
INST_INIT=0.0,
INST_FIN=TFIN ,),
EXCIT=(_F(VECT_ASSE_GENE=F_CHAR, FONC_MULT=F_MULT,), ),
ARCHIVAGE =_F(PAS_ARCH = 1,),
COMPORTEMENT= _F(RELATION='DIS_CHOC',
INTITULE='CHOC1',
GROUP_NO_1 = 'N01',
GROUP_NO_2 = 'N02',
OBSTACLE=OBS_R1,
NORM_OBST= (1.,0.,0.),
RIGI_NOR=KN_Choc,
RIGI_TAN=KS_Choc,
AMOR_NOR = CN,
AMOR_TAN = CT,
FROTTEMENT = 'COULOMB',
COULOMB_STAT = mu,
DIST_1 = d,
DIST_2 = d,),
);
16 - Code_Aster and Salome-Meca course material GNU FDL Licence
Postprocessing

Projection on physical basis (REST_GENE_PHYS)


Projection of DEPL, VITE, and ACCE
at the given INST or LIST_INST
for the given nodes, or elements

Ex TRANGEN2 = REST_GENE_PHYS(RESU_GENE = TRANGEN,


LIST_INST=LISTVISU,
INTERPOL = 'LIN',
NOM_CHAM='DEPL');

IMPR_RESU(FORMAT='MED',
UNITE=83,
RESU=_F(RESULTAT=TRANGEN2, NOM_CHAM='DEPL'),);

17 - Code_Aster and Salome-Meca course material GNU FDL Licence


Postprocessing

DYNA_VIBRA contains only DEPL, VITE, ACCE, and nonlinearities


Use CALC_CHAMP to compute stress and strain

TRANGEN2 = REST_GENE_PHYS(RESU_GENE = TRANGEN,


LIST_INST = LISTER2,
INTERPOL = 'LIN',
TOUT_CHAM = 'OUI',);

DYNATRAN = CALC_CHAMP(RESULTAT = TRANGEN2, reuse = TRANGEN2,


MODELE = MODELE,
CHAM_MATER = CHMAT,
CARA_ELEM = CARAELEM,
GROUP_MA=('Group_MA',),
CONTRAINTE=('SIGM_ELNO','SIGM_ELGA',),
CRITERES=('SIEQ_ELNO','SIEQ_ELGA',),);

SIG_MOY = POST_CHAMP(RESULTAT=DYNATRAN,
GROUP_MA=('Group_MA',),
EXTR_COQUE =_F(NOM_CHAM=('SIGM_ELNO','SIGM_ELGA','SIEQ_ELGA','SIEQ_ELNO',),
NUME_COUCHE = 1,
NIVE_COUCHE = 'MOY',),);

SIG_MOY = CALC_CHAMP(RESULTAT = SIG_MOY, reuse = SIG_MOY,


GROUP_MA=('Group_MA',),
CRITERES = ('SIEQ_NOEU',));

IMPR_RESU(FORMAT='MED', UNITE=80, RESU=_F(RESULTAT=SIG_MOY, NOM_CHAM=('DEPL','SIEQ_NOEU',),),);

18 - Code_Aster and Salome-Meca course material GNU FDL Licence


Postprocessing

Direct postprocessing:
RECU_FONCTION =_F (RESU_GENE=…)
DEPL, VITE, and ACCE
Ex : DX=RECU_FONCTION(RESU_GENE=TRANGEN,
NOM_CHAM='DEPL',
NOM_CMP='DX',
GROUP_NO='N01');

Contact forces FN FT1, FT2


Ex:
FN=RECU_FONCTION(RESU_GENE=TRANGEN,
PARA_X='INST',
PARA_Y='FN',
GROUP_NO_CHOC='N01',);

19 - Code_Aster and Salome-Meca course material GNU FDL Licence


Postprocessing

Direct postprocessing:
Python method
Returns a numpy array for a given non linearity of index <i>, at the archived instants
DEBUT(PAR_LOT = 'NON');

F = FORCE_NORMALE(i) -> Returns a 1D array giving the evolution of the normal force at the archived instants

V = VARI_INTERNE(i) -> Returns a 2D array of all internal variables for a given non linearity of index <i>

Output ARRAY : -----------------------------------------


| VINT1 VINT2 VINT3 ... VINTn
-------------------------------------------------
| INST1 |
| INST2 |
...
| INSTn |
-------------------------------------------------

VARI_INTERNE prints informations on the internal variables in mess file:


--------------------------------------------------------------------------------------------------------
Information regarding the saved internal variables for FLAMBAGE non linearity (index=1)
--------------------------------------------------------------------------------------------------------
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
F_NORMAL | DXLOC_N1 | DYLOC_N1 | DZLOC_N1 | DXLOC_N2 | DYLOC_N2 | DZLOC_N2 | V_NORMAL
--------------------------------------------------------------------------------------------------------
9 | 10 | 11
ENFO_PLA | RIGI_P_F | ENFO_MAX
--------------------------------------------------------------------------------------------------------

20 - Code_Aster and Salome-Meca course material GNU FDL Licence


Postprocessing

Direct postprocessing:
POST_DYNA_MODA_T=_F(RESU_GENE=…)
Only for : DIS_CHOC, FLAMBAGE, RELA_EFFO_DEPL
INTITULE NOEUD CALCUL CHOC INST F_MAX IMPULSION T_CHOC V_IMPACT NB_IMPACT F_MAX_ABS F_MAX_MOY F_MAX_ETYPE CLASSE DEBUT FIN PROBA

CLA_M1 NO6 IMPACT 1 1.915E-02 1.092E+00 9.888E-02 1.145E-01 -1.000E-02 1 - - - - - - -

CLA_M1 NO6 GLOBAL - - - - - - - 1.090E+00 1.090E+00 0.000E+00 - - - -

CLA_M1 NO6 PROBA - - - - - - - - - - 1 1.020E+00 1.090E+00 1.000E+00

CLA_M1 NO6 PROBA - - - - - - - - - - 2 1.090E+00 1.092E+00 0.000E+00

CLA_M1 NO6 PROBA - - - - - - - - - - 3 1.092E+00 1.092E+00 0.000E+00

M1-M2 NO1 IMPACT 1 3.190E-02 1.155E+00 8.251E-02 1.109E-01 -1.000E-10 1 - - - - - - -

M1-M2 NO1 GLOBAL - - - - - - - 1.159E+00 1.155E+00 0.000E+00 - - - -

21 - Code_Aster and Salome-Meca course material GNU FDL Licence


Nonlinear transient studies

Seismic behaviour of overhead cranes using DYNA_VIBRA


Contact and friction nonlinearities
Rotation vs friction of wheels :
Drive wheels
Idler wheels → Unidirectional friction

22 - Code_Aster and Salome-Meca course material GNU FDL Licence


For more information
http://www.code-aster.org

Other Code_Aster training

Documentations:
U4.53.03 : DYNA_VIBRA
U4.44.21 : DEFI_OBSTACLE
U4.52.14 : MODES_STATIQUES
U4.64.02 : DEFI_BASE_MODALE
R5.06.03 : Modeling of the shocks and friction in transitory analysis by modal
recombination

Test-cases (names beginning with sdn)

23 - Code_Aster and Salome-Meca course material GNU FDL Licence


End of presentation

Is something missing or unclear in this document?


Or feeling happy to have read such a clear tutorial?

Please, we welcome any feedbacks about Code_Aster training materials.


Do not hesitate to share with us your comments on the Code_Aster forum
dedicated thread.

24 - Code_Aster and Salome-Meca course material GNU FDL Licence

You might also like