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
doc:user:meshtransfer:datatransferbetweenmeshes [2014/12/03 13:40] – [Méthode de transfert utilisant les éléments joints (Mortar Elements)] bussettadoc:user:meshtransfer:datatransferbetweenmeshes [2016/03/30 15:23] (current) – external edit 127.0.0.1
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 117: 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 138: 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 145: 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 151: 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 181: 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.1417610433.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki