Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:meshtransfer:datatransferbetweenmeshes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:user:meshtransfer:datatransferbetweenmeshes [2014/12/03 13:30] bussettadoc:user:meshtransfer:datatransferbetweenmeshes [2015/01/28 10:15] – [Méthode de transfert utilisant les éléments joints (Mortar Elements)] joris
Line 36: Line 36:
 On suppose que ''oldMetafor'' réfère à l'ancien ''Metafor'' et que ''newMetafor'' réfère au nouveau ''Metafor''.\\ On suppose que ''oldMetafor'' réfère à l'ancien ''Metafor'' et que ''newMetafor'' réfère au nouveau ''Metafor''.\\
 On souhaite transférer les données de l'interaction ''oldInteraction'' de ''oldMetafor'' vers l'interaction ''newInteraction'' de ''newMetafor''. On souhaite transférer les données de l'interaction ''oldInteraction'' de ''oldMetafor'' vers l'interaction ''newInteraction'' de ''newMetafor''.
 +Pour utiliser le calcul des transfert de donnée il faut importer ''wrap.mtDataTransfer''.
  
 +  from wrap.mtDataTransfer import *
   transferOperator = MetaforTransferOperator(oldMetafor, newMetafor)   transferOperator = MetaforTransferOperator(oldMetafor, newMetafor)
   transferOperator.setCouplingInteraction(oldInteraction, newInteraction)   transferOperator.setCouplingInteraction(oldInteraction, newInteraction)
Line 99: Line 101:
  
 La définition de l' ''ElementProperties'' permettant d'utiliser cette méthode avec le calcul approché est : La définition de l' ''ElementProperties'' permettant d'utiliser cette méthode avec le calcul approché est :
-  transferElementProperties = ElementProperties(METMCell)+  transferElementProperties = ElementProperties(MTMCell)
   transferElementProperties.put (MTMSOLVERTYPE, solver  )   transferElementProperties.put (MTMSOLVERTYPE, solver  )
   transferElementProperties.put (INTPT_NB     , intePtNb)   transferElementProperties.put (INTPT_NB     , intePtNb)
Line 108: Line 110:
     * ''LOCALSOLVER'' : calcul local (explicite)     * ''LOCALSOLVER'' : calcul local (explicite)
  
-  * ''intePtNb'' = Nombre de points d'intégration par direction pour le calcul du couplage +  * ''intePtNb'' = Nombre de points d'intégration pour le calcul du couplage 
 +    * nombre de points par direction pour les quadrangles, hexaèdres, etc. 
 +    * nombre de points d'intégration total pour les triangles, tétraèdres, etc.
  
   * ''QuadType'' = schéma d'intégration utilisé dans le calcul approché du couplage:   * ''QuadType'' = schéma d'intégration utilisé dans le calcul approché du couplage:
Line 115: Line 119:
     * ''LOBATTOQUADRATURE'' : méthodes de quadrature de Lobatto     * ''LOBATTOQUADRATURE'' : méthodes de quadrature de Lobatto
  
-Pour utiliser le calcul exact (nécessite la construction d'un supermaillage) il faut remplacer ''METMCell'' par ''ExactMTMCell'' et inclure ''wrap.mtExactDataTransfer_CGAL''. L'''ElementProperties'' est donc défini par :+Pour utiliser le calcul exact (nécessite la construction d'un supermaillage) il faut remplacer ''MTMCell'' par ''ExactMTMCell'' et importer ''wrap.mtExactDataTransfer_CGAL''. L'''ElementProperties'' est donc défini par :
   from wrap.mtExactDataTransfer_CGAL import *   from wrap.mtExactDataTransfer_CGAL import *
   transferElementProperties = ElementProperties(ExactMTMCell)   transferElementProperties = ElementProperties(ExactMTMCell)
Line 136: Line 140:
   transferElementProperties.put (QUADRATURETYPE, QuadType)   transferElementProperties.put (QUADRATURETYPE, QuadType)
  
-  * ''intePtNb'' = Nombre de points d'intégration par direction pour le calcul du couplage +  * ''intePtNb'' = Nombre de points d'intégration pour le calcul du couplage  
 +    * nombre de points par direction pour les quadrangles, hexaèdres, etc. 
 +    * nombre de points d'intégration total pour un triangle, tétraèdre, etc.
  
   * ''QuadType'' = schéma d'intégration utilisé dans le calcul approché du couplage:   * ''QuadType'' = schéma d'intégration utilisé dans le calcul approché du couplage:
Line 143: Line 149:
     * ''LOBATTOQUADRATURE'' : méthodes de quadrature de Lobatto     * ''LOBATTOQUADRATURE'' : méthodes de quadrature de Lobatto
  
-Pour utiliser le calcul exact (nécessite la construction d'un supermaillage) il faut remplacer ''FVTMCell'' par ''ExactFVTMCell'' et inclure ''wrap.mtExactDataTransfer_CGAL''. L'''ElementProperties'' est donc défini par :+Pour utiliser le calcul exact (nécessite la construction d'un supermaillage) il faut remplacer ''FVTMCell'' par ''ExactFVTMCell'' et importer ''wrap.mtExactDataTransfer_CGAL''. L'''ElementProperties'' est donc défini par :
   from wrap.mtExactDataTransfer_CGAL import *   from wrap.mtExactDataTransfer_CGAL import *
   transferElementProperties = ElementProperties(ExactFVTMCell)   transferElementProperties = ElementProperties(ExactFVTMCell)
Line 149: Line 155:
 === Option pour la reconstruction constante === === Option pour la reconstruction constante ===
   transferElementProperties.put (FVCELLTYPE  , GODUNOVCELL)   transferElementProperties.put (FVCELLTYPE  , GODUNOVCELL)
-  transferElementProperties.put (UPWIND_COEFF, 1.0) 
- 
-L'utilisateur peut choisir un coefficient d'upwind (UPWIND_COEFF). 
-Une valeur de 1.0 (par défaut) donne un schéma appelé "full donor cell differencing" (corresponds à un décentrage arrière complet). 
-Il est fort diffusif mais est TVD (total variation diminishing - pas d'oscillations) et très rapide. 
  
 === Option pour la reconstruction linéaire === === Option pour la reconstruction linéaire ===
Line 179: Line 180:
   transferElementProperties = ElementProperties(NeighbourTMCell)   transferElementProperties = ElementProperties(NeighbourTMCell)
   transferElementProperties.put (FVCELLTYPE, GODUNOVCELL)   transferElementProperties.put (FVCELLTYPE, GODUNOVCELL)
 +
 +===== Exemple  =====
 +
 +On souhaite transférer les données de ''oldInteraction1'' vers ''newInteraction1'' et de ''oldInteraction2'' vers ''newInteraction2''
 +
 +  transferElementProperties = ElementProperties(FVTMCell)
 +  transferElementProperties.put (FVCELLTYPE , LINEARRECCELL)
 +  transferElementProperties.put (STENCILTYPE, LEASTSQUARE_STENCIL)
 +  transferElementProperties.put (LIMITERTYPE, SIMPLE_LIMITER )
 +  transferElementProperties.put (INTPT_NB     , 5)
 +
 +  transferOperator = MetaforTransferOperator(oldMetafor, newMetafor)
 +  transferOperator.setCouplingInteraction(oldInteraction1, newInteraction1)
 +  transferOperator.setCouplingInteraction(oldInteraction2, newInteraction2)
 +
 +  region1 = transferOperator.get(oldInteraction1) # optionnelle
 +  region1.add(transferElementProperties) # optionnelle
 +
 +  region2 = transferOperator.get(oldInteraction2) # optionnelle
 +  region2.add(transferElementProperties) # optionnelle
 +
 +  transferOperator.execute()
  
 ===== Extracteur de valeurs ===== ===== Extracteur de valeurs =====
doc/user/meshtransfer/datatransferbetweenmeshes.txt · Last modified: 2016/03/30 15:23 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki