0% ont trouvé ce document utile (0 vote)
57 vues27 pages

Introduction à Cast3M et exemples d'utilisation

Transféré par

Hicham Farid
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
57 vues27 pages

Introduction à Cast3M et exemples d'utilisation

Transféré par

Hicham Farid
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Presentation Cast3M

Andrei Constantinescu Arnaud Delaplace

[Link]@[Link] delaplace@[Link]

[Link]
Program lements finis Cration ~ 1980 CEA Tierry Charras, Alain Millard, Pierre Verpeaux + ...

open source

langage orient objet ESOPEcompil GIBIANEinterpt ... donc trs souple


gratuit recherche / perso

Cast3M - Philosophie
opti paramtres ; objet = oprateur objet objet ... ; paramtres: dimension space, messages, ... objet:
gometrie: maillage, point, ligne, surface, volume nombres: flottant, entier, ... listes logiques: vrai, faux champs: par lment: par noeud:

,
u

operateur:

....

algbriques, trigonomtriques: +,,exp,log,tan mcaniques: bloq,rigi,pasapas,vibration,flambage,.... maillage: droite,volume,surface,syme,.... contrle: si,sinon,finsi;repeter,....

Cast3M Exemple chauffage Joule


problme lctrique = problem thermique stationnaire
Mod_el = bar mode thermique isotrope QUA4; Mat_el = matr Mod_el 'K' K_el; K_rig = rigi Mod_el Mat_el; U_pot = reso (K_rig et cdlu_bas et cdlu_hau) u_bas; gradU = grad Mod_el U_pot; J = (nomc Q (changer chpo Mod_el (exco 'T,X' gradU)**2) ); J = J + (nomc Q (changer chpo Mod_el (exco 'T,Y' gradU)**2) ); J = J + (nomc Q (changer chpo Mod_el (exco 'T,Z' gradU)**2) ); F_J = source mod_bar J;

problme thermique avec source F_J problme mcanique ...

Cast3M - Algorithme lastodynamique


K = rigi mod mat; M = mass mod mat; KM1 = M/(dt*dt) et (K/4.0); KM2 = M/(dt*dt) et (K/-4.0) * 2.0; F1 = press mass mod (lmoins et lplus) 0.08; U0 = manu chpo S 2 UX 0.0 UY 0.0; Fn = table; Un = table; n = 0; U1 = U0;

repeter boucle nb_temps; Fn.n = F1; Q = Fn.n + (KM2*U1) - (KM1*U0); V = reso KM1 Q; Un.n = redu V bord; U0 = U1; U1 = V; n = n + 1; fin boucle;

Cast3M Programmation
Procedure = fonction, subroutine
debproc devi sig*mchaml; sxx sxy syy szz = = = = exco exco exco exco smxx smxy smyy smzz sig sig sig sig scal; scal; scal; scal;

trac = (1/3.) * (sxx + syy + szz); sxx syy szz = = = exco scal (sxx - trac) smxx; exco scal (syy - trac) smyy; exco scal (szz - trac) smzz;

dev = sxx et syy et szz et sxy; finproc dev;

Cast3M Other commands


Switching from file reading to shell

opti donn 5; ... opti donn 3; ...

Save and recover data

opti sauv[er] 'my_file.dat'; sauv[er] object1 object2; opti rest[ituer] 'my_file.dat'; rest[ituer];

Save and recover mesh data (nodal coordinates and connectivities) -> see pdf document

Cast3M Pratique

[Link] documents, notices, examples local repertoire d'installation

installations et documentations:
... doc ... dgibi [Link] pdf ps html

Cast3M Pratique

lancement sur machines Linux

commandes en ligne (shell)

% castem -m XL ..... $ fin; %

commandes en fichier (editeur normal)

% castem -m XL mon_fichier.dgibi ..... $ fin; % les fichiers cres: UTILPROC, UTILNOTI: contient info procdures fort.98: contient commandes exectues

Cast3M Pratique

syntaxe

72 charactres sur ligne maximum 7 ligne conscutives chaque commande finit avec ; pas de diffrence entre majuscules ABCD... = minuscules abcd ... sauf en MOTS: 'TOTO' =!= 'toto'

* en premire caractre = commentaire pas des charactres spciaux TAB, ...

Cast3M Pratique

syntaxe algbre

pas de priorit des oprations algbriques

a + b * c = ( a + b ) * c
en non

a + ( b * c )

mettez des paranthses !!!

Elasticity Example Tensile Test

Cast3M Exemple traction

simple

Deplacement impose

Deplacements bloqus par symtrie

Cast3M Exemple traction


p 4 p 3

simple

opti dime 2 echo 1 elem myelem; ldom = 1.; r = 0.1; p1 p2 p3 p4 = = = = 0. 0.; ldom 0.; ldom ldom; 0. ldom;

p1

p 2

a2 = r 0.; a4 = 0. r; a3 = (r/1.4142) (r/1.4142);

Cast3M Exemple traction


nelem = 10;

simple

nel_bis = -20;

p 4

p 3

d12 = droite nel_bis a2 p2 dini 0.002 dfin 0.15 ; d23 = droite nelem p2 p3; d34 = droite nelem p3 p4; d41 = droite nel_bis p4 a4 dini 0.15 dfin 0.002 ; bis = droite nel_bis a3 p3 dini 0.003 dfin 0.22 ; arc23 = cerc nelem a2 p1 a3; arc34 = cerc nelem a3 p1 a4;

p1

p 2

dom1 = dall d12 d23 (inve bis) (inve arc23); dom2 = dall (inve d41) (inve d34) (inve bis) arc34; dom = dom1 et dom2; trace dom;

Cast3M Exemple traction


mod

simple

= dom mode mecanique elastique isotrope; = mod mate 'YOUN' 2.e11 'NU' 0.3;

p 4

p 3

mat

rig = rigi mod mat; cd12 = bloq uy d12; cd41 = bloq ux d41; cd34 = bloq uy d34; f34 = depi cd34 0.1; u = reso (rig et cd12 et cd41 et cd34) f34;

p1

p 2

trace (((contour dom) coul vert) et (dom plus u));

Cast3M Exemple traction


p 4 p 3

simple

ux = exco ux u scal; uy = exco uy u scal; trace ux dom; trace (((ux*ux) + (uy*uy))**0.5) dom; eps = epsi mod u; sig = sigma mod mat u; trace mod sig;

p1

p 2

Cast3M Exercices I
Same geometry

change boundary conditions: applied forces forc[e] pressure pres[sion]: constant, varying

pass the compute the nodal values corresponding to the stress field using chan[ger] and plot using dess[iner] the evol[ution] on the hole boundary

start from the contour and mesh the plate using surf[ace] complete the plate through symetries: syme[trie] and turns (rotation): tour[ner] eliminate double nodes: elim[iner] apply boundary conditions, extract boundary nodes using poin[t] passage to 3D and shell elements opti dime 3;

Cast3M Exercices II
Other geometries Tube under pressure

circular pipe 2D / 3D shell / 3D Tube under temperature difference

circular pipe 2D / 3D shell / 3D

Spatially varying material constants create an inclusion using coor[dinate] fields and masq[uer], transform the field from nodes to Gauss points using chan[ger]

Plasticity Example Tensile Test

Cast3M Example simple tensile test


Imposed Displacement

Encastrated Displacements

Cast3M Example simple tensile test


myelem = TRI3; opti dime 2 echo 1 elem myelem; ldom = 1.; r = 0.1; p1 p2 p3 p4 = = = = 0. 0.; ldom 0.; ldom ldom; 0. ldom;

a2 = r 0.; a4 = 0. r; a3 = (r/1.4142) (r/1.4142);

Cast3M Example simple tensile test


nelem = 10; nel_bis = -20; d12 = droite nel_bis a2 p2 dini 0.002 dfin 0.15 ; d23 = droite nelem p2 p3; d34 = droite nelem p3 p4; d41 = droite nel_bis p4 a4 dini 0.15 dfin 0.002 ; bis = droite nel_bis a3 p3 dini 0.003 dfin 0.22 ; arc23 = cerc nelem a2 p1 a3; arc34 = cerc nelem a3 p1 a4; dom1 = dall d12 d23 (inve bis) (inve arc23); dom2 = dall (inve d41) (inve d34) (inve bis) arc34; dom = dom1 et dom2; trace dom;

Cast3M Example simple tensile test

mod_p
mat_p

= mode dom mecanique elastique isotrope plastique cinematique; = mate mod_p 'YOUN' 2.e11 'NU' 0.3 'SIGY' 200.e6 'H' 2.e9;

tt = prog 0. pas 5. 20.; a_ud34 = prog 0. 1. 0. -1. 0.; ev_ud34 = evol manu 'TEMPS' tt 'DIMP' a_ud34; dess ev_ud34; ch_ud34 = char 'DIMP' ud34 ev_ud34;

Cast3M Example simple tensile test

tabexp = table;
tabexp . 'MODELE' = mod_p; tabexp . 'CARACTERISTIQUES' = mat_p;

tabexp . 'BLOCAGES_MECANIQUES' = AA; tabexp . 'TEMPS_CALCULES' tabexp . 'CHARGEMENT' pasapas tabexp; = prog 0. pas 1. 20.; = ch_ud34;

Cast3M Example simple tensile test


list tabexp; list tabexp . deplacements ; list tabexp . contraintes ; trace trace trace

tabexp . contraintes . 15 mod; tabexp . variables_internes . 15 mod; tabexp . deformations_inelastiques . 15 mod

opti donn 5;

deplacement = displacement contraintes = stress deformation = strain variable internes = internal variables deformation inelastiques = anelastic strain (example plastic)

Cast3M Exercices
Same geometry change hardening type (fr. ecrouissage), then constitive law mode[le], mate[riaux]

plot using the time stress curve, strain stress curve using evol[ution] extracting values at nodes or gauss points extr[aire] constructiong the lists with prog[rammer] and repe[ter]

create a subroutine (fr. procedure) using debp[rocedure] and finp[rocedure] to encapsulate the preceding commands

Vous aimerez peut-être aussi