Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:elements:general:start

This is an old revision of the document!


Introduction

ElementProperties

Les ElementProperties de Metafor permettent de lier la physique du problème au maillage de la structure (éléments de volume ou de coque). Les ElementProperties permettent donc d'associer les propriétés d'éléments à ceux-ci. Chaque ElementProperties regroupe un ensemble de propriétés relatives à un groupe d'éléments (voir définition d'ElementProperties). Par exemple, on trouve le numéro du matériau associé à l'élément, des choix concernant les méthodes d'intégration utilisée (SRI/EAS), etc. Ils permettent aussi d'appliquer des conditions aux limites (par exemple de pression, de flux thermique…) ou d'imposer un contact entre deux structures.

Remarques

  • Dans Bacon, un numéro de ElementProperties est similaire à un numéro d'attribut.
  • L'utilisation d'un ElementProperties est très similaire à celle d'un matériau (En interne dans Metafor un matériau est un “adapter” vers MaterialProperties) ou une loi matérielle (MaterialLawProperties). Pour les connaisseurs du C++, ces trois classes sont, en fait, 3 instanciations d'un même template. Ils possèdent donc les mêmes fonctions : un put() pour définir une nouvelle entrée et un depend() pour faire évoluer cette valeur en fonction de divers paramètres.

Interaction

Initialement dans Metafor, on appelait “Interaction” l'objet qui générait les éléments de condition aux limites et de contact. Actuellement, le concept a été étendu à la génération de n'importe quel type d'élément, y compris les éléments de volumes. On a le schéma suivant: Interactions

Attention:

Le numéro de chaque Interaction doit être unique! Un FieldApplicator (interaction de volume) ne peut donc pas avoir le même numéro qu'un ContactInteraction (interaction de contact).

Lien entre interaction et ElementProperties

En pratique, il faut associer un ElementProperties à chaque Interaction. Metafor se chargera alors de transmettre l' ElementProperties à chaque élément qui sera créé par cette Interaction. De plus, l' Interaction lit le type d'élément à générer à partir du ElementProperties qu'on lui associe. Les interactions sont spécifiques au type d'éléments créés, on retrouve donc des interactions de volume, de contact, de conditions aux limites… La liaison entre l'Interaction et l'ElementProperties se fait par la commande addProperty:

interactionset(no).addProperty(prp)

qui ajoute à l'Interaction numéro no l'ElementProperties prp.

Dans le jeu de données, la manière la plus “propre” d'écrire est la suivante (exemple pour les éléments de volume):

  #1. Definition des proprietes des elements finis volumiques
  #----------------------------------------------------------
  prp1 = ElementProperties (Volume2DElement)    #Creer une propriete prp1 pour les elements finis volumiques
                                                #et definir le type d elements 
  prp1.put (MATERIAL, 1)                        #Numero du materiau associe
  prp1.put (OMEGA_PT1, 101)                     #Numero du 1er point definissant l axe de rotation
  prp1.put (OMEGA_PT2, 102)                     #Numero du 2e point definissant l axe de rotation
  prp1.put (OMEGA, Omega)                       #Valeur de la vitesse de rotation (en degre/s)
  
  fct1 = PieceWiseLinearFunction()              #Definition d une fct rampe pour l evolution 
  fct1.setData(0.,0.)                           #de la vitesse de rotation
  fct1.setData(1.,1.) 
  
  prp1.depend (OMEGA, fct1, Field1D(TM,RE))     #La vitesse de rotation effective vaut Omega*fct1 
                                                #(elle depend donc du temps)
  prp1.put (STIFFMETHOD,STIFF_ANALYTIC)         #Methode de calcul de la matrice de raideur analytique
                           
  prp1.put (CAUCHYMECHVOLINTMETH,VES_CMVIM_STD) #Methode d'integration des contraintes sur l'element 
                                                #standard (integrer les contraintes deviatoriques et 
                                                #pression a chaque point d'intégration, attention au locking!)
  
  #2. Generation des elements finis volumiques sur le maillage
  #-----------------------------------------------------------
  app = FieldApplicator(1)                      #Creation d un generateur (numero 1) d elements volumiques (interaction)  
  app.push(sideset(1))                          #Support = face 1 (supposee maillee)
  app.addProperty(prp1)                         #Assigner la propriete prp1 aux futurs elements volumiques de la face 1 
  interactionset.add(app)                       #Ajouter le generateur 1 (interaction) a la liste des interactions

Attention: la commande addProperty ajoute une référence à l' ElementProperties dans l' Interaction et incrémente son nombre de références. En conséquence, modifier prp après cette commande modifiera le comportement de l' Interaction!

On peut également écrire :

prp = ElementProperties(typeEl)
interactionset(no).addProperty(prp)
prp.put(param1, valeur1)
prp.depend(param1, fct1, lock1)  # facultatif
prp.put(param2, valeur2)
prp.depend(param2, fct2, lock2)  # facultatif
...

A ce jour, addProperty ne renvoie pas de référence vers l'objet. On ne peut donc PAS écrire

prp = interactionset(no).addProperty( ElementProperties(typeEl) )
doc/user/elements/general/start.1373636557.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki