Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:geometry:import:tuto2

This is an old revision of the document!




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 d'une géométrie et d'un maillage par Bacon, le prépro de Samcef,
  • 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 :

Géométrie du test

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

Le calcul se lance par la commande meta('apps.bQs.aleCubeCg').

résultat du test aleCubeCg

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.
  • Si l'on a généré des éléments DAO non importés dans Metafor, utiliser la commande .del.dao pour la supprimer (une DAO incomplète risque de faire planter Metafor)
  • 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 MeshedPoints)
  • 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, …)
doc/user/geometry/import/tuto2.1373636557.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki