This is an old revision of the document!
−Table of Contents
Metafor pour les nuls (partie #2)
Introduction
Ici nous utilisons la méthode de préprocessing la plus longue et la plus tordue:
- création des paramètres et conditions aux limites par Python,
- calcul par Metafor.
Cette méthode n'est PAS recommandée pour les tests simples (pouvant être maillés par les mailleurs inclus dans Metafor). Elle fait intervenir Samcef qui nécessite une licence. En bref, si on n'a plus de licence Samcef, on ne peut plus faire tourner le modèle créé sur cette page. Cette méthode est donc de moins en moins utilisée en pratique.
Partie Bacon
Présentation du cas-test
Le but de cet exercice est de créer un cas-test assez basique en passant par les 3 étapes: Bacon, Python et Metafor. Le calcul consiste en un cisaillement d'un cube (les faces supérieures et inférieures sont fixées et déplacées l'une par rapport à l'autre). La figure suivante montre la géométrie :
Le fichier aleCubeCg.dat
(dans apps/bQs
pour une version à jour) montre les commandes utilisées pour créer la géométrie, les maillages et les sélections. Voir le manuel Bacon pour le détail des commandes.
Géométrie
- Commande
.3poi
pour les 8 points. - Commande
.3dro
pour les 12 arêtes. - Commande
.con
pour les 6 contours. - Commande
.face
pour les 6 faces. - Commande
.plan
pour créer une surface (nécessaire pour le domaine 2D - voir + loin). - Commande
.vpeau
pour faire la peau (Skin
dans Metafor). - Commande
.dom
pour le domaine (1 domaine 3D - le cube - et 1 domaine 2D - la face inf qui va être maillée et extrudée).
Maillage
- Il s'effectue avec
.gen
. - Les lignes sont maillées avec la commande “
modifie ligne
”. - On maille la face inférieure en transfini (commande “
transfini
”) et on l'extrude avec la commande “extrusion
”. - Ne pas oublier de définir un numéro d'attribut.
Déclaration du type d'éléments
- utiliser la commande
.hyp volume
(en 2D et 3D).
Définition des sélections
- Utiliser la commande
.sel
- Si on utilise
.ren
pour renuméroter les noeuds et mailles, vérifier de le faire avant le.sel
. - Les sélections de noeuds seront utilisées pour la définition de conditions aux limites (fixations, contact, etc) dans le fichier python.
Création du fichier .fdb Bacon
A partir du fichier .dat
, on crée un .fdb
en le moulinant dans Bacon. Pour ce faire, en ligne de commande :
samcef ba aleCubeCg n 1 input .sauve db format .sto
Traduction des données vers un script Python
Dans Metafor, on traduit le fichier .dat
grâce à un module de traduction nommé importFdb
. Ca donne, en ligne de commande sous
import toolbox.importFdb toolbox.importFdb.bacon2PyMeta('apps/bQs/aleCubeCg')
Normalement, un fichier aleCubeCgBacon.py
a été créé dans le répertoire apps.bQs
Création du fichiers "paramètres" dans Python
Le fichier de paramètres et conditions aux limites se crée dans Python. La liste des commandes est similaire aux How to build my own FE model?.
Le fichier “paramètres” utile est nommé aleCubeCg.py
.
On peut récupérer les données venant de Bacon en important le module python créé par le traducteur importFdb
:
import apps.bQs.aleCubeCgBacon apps.bQs.aleCubeCgBacon.fillImportedFdb(dom)
Le reste des paramètres se définissent comme d'habitude. Pour distinguer les différents groupes de mailles (attributs Bacon), des groupes Metafor (classe Group
) ont été créés. Ils peuvent être utilisés pour appliquer des conditions aux limites et définir des propriétés élémentaires. Par exemple:
# ATTRIBUTS prp99 = ElementProperties(Volume3DElement) prp99.put(MATERIAL,1) prp99.put(CAUCHYMECHVOLINTMETH,VES_CMVIM_SRI) prp99.put(STIFFMETHOD,MES_STIFFANALYTIC) intset = dom.getInteractionSet() app99 = FieldApplicator(99) app99.push(99,GROUP_ID) intset.copy(app99) intset(99).addProperty(prp99)
Calcul Metafor
Conseils
- Ne pas définir de groupes ayant le même numéro que les numéros d'attribut (le père etant mis sur un groupe fictif du numéro d'attribut) sauf si il contient les noeuds du maillage de numéro d'attribut correspondant.
- Plus besoin de renuméroter les noeuds et mailles
Limites de l'import BACON
- Points
- Courbes :
Line
-Arc
(les points autogénérés de numérotation négatifs dans Bacon sont décalés (numPoint = numMaxPoints-numPoint
) - Surface :
Plan
-Ruled
-Coons
(Seuls les plans définis par 3 points sont importés (les autres génères des cpoints hors db) ) - Wire
- Sides : Importées (même si pas traitées par Bacon)
- Skins: Attention si on créé des objets
MultiProjSkin
, il vaut mieux les créer dans le jeux de données python… - Nodes :(importés en tant que
MeshedPoint
s) - Mailles : Triangle - Quad - Tetra - Hexa (avec redressement dans Metafor)
- Selections : seuls les groupes de noeuds sont importés (les autres n'ont pas d'usage dans Metafor)
- Les relations “DAO – Maillages” ne sont pas relues (
nodeOnLine
, …)