enfr

Newsletter

There are 100 newsletters.
The last newsletter is shown below.
The other ones are available by clicking on a number.

1 | ... | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | ... | 100

Newsletter date: 9 July 2009

Printable version
Si vous ne pouvez pas lire cette lettre correctement, cliquez ici.

Lettre d'information de Code_Aster

Propagation de fissures avec la méthode X-FEM

La méthode X-FEM permet d’introduire une fissure dans une structure saine. Elle est implémentée dans Code_Aster depuis plusieurs années et commence à être utilisée au sein de l’ingénierie d’EDF dans les analyses de nocivité de défaut.

La définition de la fissure ne se fait donc pas grâce au maillage de la structure, mais par le calcul de deux level sets : une level set normale permettant de situer la surface de la fissure, et une level set tangente permettant de situer le fond de fissure. De ce fait, la simulation de la propagation d’une fissure est équivalente à simuler la propagation des deux level sets.

La nouvelle commande PROPA_FISS permet de faire propager une fissure 3d quelconque par calculs successifs de nouvelles level sets par projection sur la nouvelle géométrie discrétisée de la fissure. PROPA_FISS nécessite d’avoir calculé au préalable les valeurs des facteurs d’intensité des contraintes en chaque point du fond de fissure. En 2d, les résultats sont très satisfaisants. En 3d, cette méthode se heurte encore à des difficultés pour des propagations hors-plan.

Plaque trouée en traction verticale
Plaque avec deux inclusions rigides en traction horizontale

Code_Aster présent au congrès NAFEMS 2009

NAFEMS World Congress 2009

Code_Aster était présent à la manifestation mondiale NAFEMS World Congress 2009 en Crête. Ce congrès est le rendez-vous des différents acteurs de la simulation numérique : industriels utilisateurs de codes, bureaux d’études, universitaires et développeurs de code.

PDF - 1.2 Mo
Présentation de Code_Aster au NAFEMS World Congress 2009

Amélioration du parallélisme dans Code_Aster grâce au solveur linéaire MUMPS

Dans le cadre des simulations thermo-mécaniques avec Code_Aster, l’essentiel des coûts calcul provient de la construction et de la résolution des systèmes linéaires. Ces systèmes sont souvent enfouis au plus profond d’autres algorithmes ou méthodes d’analyse : schéma non-linéaire, intégration en temps, analyse modale… Pour améliorer les performances de ces étapes, Code_Aster propose plusieurs stratégies :

  • Un "parallélisme informatique" mis en œuvre pour distribuer des calculs Aster indépendants (plusieurs fichiers de commande) ou distribuer des calculs élémentaires et, éventuellement, les assemblages matriciels/vectoriels associés (au sein d’un même fichier de commande).
  • Un "parallélisme numérique" mise en œuvre dans les algorithmes de résolution de système linéaire (multifrontale Aster en OpenMP[R6.02.02], le produit MUMPS[R6.02.03] et librairie PETSc[R6.01.02] en MPI).
  • Un "parallélisme plus mécanique" avec la méthode de décomposition de domaine FETI[R6.01.03] ou, prochainement, un préconditionneur multigrille adapté aux modélisations du code. Ces fonctionnalités restent encore du domaine de la recherche.

Ces différents niveaux de parallélisme peuvent éventuellement se cumuler pour gagner en efficacité et/ou accroître le portion parallélisée d’un calcul. Cette distribution des données (et donc de leurs traitements associés) entre les processeurs permet ainsi gagner en "temps elapsed" d’exécution et en quantité de mémoire RAM requise par processeur.

Actuellement un chantier logiciel important concerne l’intégration la plus optimale et la plus large possible du solveur direct MUMPS.

EDF R&D collabore d’ailleurs activement avec l’équipe de développement du produit (notamment via l’ANR SOLSTICE). En améliorant le couplage Code_Aster/MUMPS et en upgradant la version de MUMPS (de la 4.7.3 à la 4.8.4), des gains appréciables ont pu être dégagés en consommation RAM par processeurs (en dizaines de pourcents). Et ce, sans trop pénaliser les temps d’exécution. Ceux-ci sont dégradés de seulement quelques pourcents suivant la bande passante des disques et suivant l’importance de la phase de descente-remontée dans le calcul total (cf. figures).

D’autre part cette nouvelle version de MUMPS corrige quelques bugs liés à ses déchargements sur disque des blocs de la matrice factorisée (mot-clé Aster SOLVEUR/OUT_OF_CORE=’OUI’) et elle homogénéifie les pré-traitements qui sont opérés sur la matrice suivant les modes d’utilisation de MUMPS (notamment la phase de scaling ; mot-clé SOLVEUR/PRETRAITEMENTS).

Exemples
Exemples, avec M pour millions de termes, N la taille du problème, nnz le nombre de termes non nuls de la matrice et Kfact celui de sa factorisée renumérotée (via METIS). Cas-tests canonique (cube) et plus industriel (cuve simplifiée de l’étude Epicure) exploités sur la machine Aster. A titre de comparaison : le solveur linéaire de référence (la multifrontale Aster) consomme en séquentiel, respectivement, pour le cube 900Mo/248s et, pour EPICURE, 4750Mo/3800s.

Désormais MUMPS est utilisé quotidiennement sur des études (rupture, THM…) non seulement pour exploiter ses fonctionnalités numériques avancées (pivotage, estimation d’erreurs, raffinement itératif) mais aussi (et surtout), pour gagner en temps d’exécution et en mémoire RAM grâce au parallélisme et à l’Out-Of-Core.

Code_Aster Libre version 10.0 (sources) disponible en téléchargement

La version de développement de Code_Aster Libre version 10.0 est disponible en téléchargement. Il s’agit de la version stabilisée en mai 2009.

Le format de diffusion reste le même : une unique archive contenant Code_Aster et tous les outils annexes sous forme de code source.

Outre Code_Aster, on retrouve les dernières mises à jour disponibles : astk 1.7.4 (interface graphique de lancement d’Aster), Eficas 1.16 (éditeur graphique de fichiers de commandes), Homard 9.5 (outil de raffinement et déraffinement de maillages), la bibliothèque med 2.3.5 (échange de maillages et de champs avec des codes tiers), metis-edf-4.1 (outil de renumérotation), mumps 4.7.3 (solveur direct) etc.

Les pré-requis sont :

  • une version récente de Python (2.4 ou 2.5),
  • un compilateur fortran,
  • un compilateur C/C++.

Pour l’installation, consultez le fichier README, puis

python setup.py install.

Il est conseillé d’utiliser les compilateurs Intel s’ils sont disponibles pour Code_Aster, Mumps et Metis et les compilateurs GNU pour les autres produits embarqués.