Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mesh:meshadaptation [2017/10/26 06:36]
fgillet [Mesh Adaptation (2D)]
mesh:meshadaptation [2018/03/06 16:08] (current)
fgillet [Mesh Adaptation (2D)]
Line 2: Line 2:
 This page describes how to use the tools dedicated to mesh adaptation using the Mmg remeshing library (http://www.mmgtools.org/). This page describes how to use the tools dedicated to mesh adaptation using the Mmg remeshing library (http://www.mmgtools.org/).
  
-**Currently the solvers are compatible with version 5.2.6 (https://github.com/MmgTools/mmg/releases) +**<del>Currently the solvers are compatible with version 5.2.6 (https://github.com/MmgTools/mmg/releases)</del> 
-**+**  
 + 
 +**Since elmerice rev. f6873f2(6/03/2018) compatibility is with MMG 5.3.10 (https://github.com/MmgTools/mmg/releases)** 
  
 Using the remeshing solver require to install Mmg and provide the direction to the header files and library using the CMake arguments  "MMG_INCLUDE_DIR" and "MMG_LIBRARY": Using the remeshing solver require to install Mmg and provide the direction to the header files and library using the CMake arguments  "MMG_INCLUDE_DIR" and "MMG_LIBRARY":
Line 51: Line 53:
 Computing second derivatives in linear elements in not straightforward. Following Buscaglia and Dari (1997), this is done in two steps: Computing second derivatives in linear elements in not straightforward. Following Buscaglia and Dari (1997), this is done in two steps:
   * First, we compute the nodal gradient <m>g_i={{\partial v}/{\partial x_i}}</m> using the [[solvers:2Dnodalgradient|Compute2DNodalGradient Solver]]   * First, we compute the nodal gradient <m>g_i={{\partial v}/{\partial x_i}}</m> using the [[solvers:2Dnodalgradient|Compute2DNodalGradient Solver]]
-  * Second, we compute the hessian matrix //**H**// by solving the diffusive equation <m>H_ij+k ∇(H_ij) = 1/2 (dq_i/dx_j+dq_j/dx_i)</m>, where <m>k</m> is a diffusivity proportionnal to the local element size. The metric //**M**// is then computed from Eq. (1). This is done using the [[solvers:MMG2D_MetricAniso|MMG2D_MetricAniso Solver]].+  * Second, we compute the hessian matrix //**H**// by solving the diffusive equation <m>H_ij-k ∇(H_ij) = 1/2 (dq_i/dx_j+dq_j/dx_i)</m>, where <m>k</m> is a diffusivity proportionnal to the local element size. The metric //**M**// is then computed from Eq. (1). This is done using the [[solvers:MMG2D_MetricAniso|MMG2D_MetricAniso Solver]].
  
 ==== Metric intersection ==== ==== Metric intersection ====
Line 71: Line 73:
 The [[solvers:MMG2DSolver|MMG2DSolver Solver]] pass the mesh topology and required (isotropic or anisotropc) metric to the library then create the new mesh structure from the adapted mesh returned by the library. The [[solvers:MMG2DSolver|MMG2DSolver Solver]] pass the mesh topology and required (isotropic or anisotropc) metric to the library then create the new mesh structure from the adapted mesh returned by the library.
  
 +
 +==== Transient mesh adaptation ====
 +
 +During a transient simulation the progression of a physical phenomena, //e.g.// the location of the grounding line, in the computational domain is usually not known in advance. \\
 +If the mesh has been adapted using informations available at time //t//, the mesh may not be optimal anymore at time //t+n.dt//. Keeping a mesh sufficiently refined in areas where the physical phenomena progress requires to adapt the mesh frequently, introducing additionnal interpolation errors when  solutions are transfered to the adapted meshes. \\
 +The metric intersection formula given above allows to compute a metric map that contain informations at different time-steps. Iteratively solving the transient problem allows to adapt and refine the mesh in all regions where the phenomena progress.
 +
 +The algorithm described in Alauzet //et al.// (J. Comp. Phys., 2007) has been implemented using a bash script that allows to iterate .sif files for the physical transient simulation and the mesh adaptation. Details are given {{ :problems:mmg2d_transient.pdf |here}}
  
 ==== Examples ==== ==== Examples ====
-An example for isotropic mesh adaptation can be found under [ELMER_TRUNK]/elmerice/Tests/MMG2D_Iso. +  * An example for isotropic mesh adaptation can be found under  
-Examples for anisotropic mesh adaptation can be found under [ELMER_TRUNK]/elmerice/Tests/MMG2D_Aniso1 and [ELMER_TRUNK]/elmerice/Tests/MMG2D_Aniso2, where the mesh size is adapted using 1 or 2 variables (i.e. combining metric informations), respectively. +    * [ELMER_TRUNK]/elmerice/Tests/MMG2D_Iso \\ 
 +  Examples for anisotropic mesh adaptation where the mesh size is adapted using 1 or 2 variables (i.e. combining metric informations) can be found under 
 +    * [ELMER_TRUNK]/elmerice/Tests/MMG2D_Aniso1  
 +    * [ELMER_TRUNK]/elmerice/Tests/MMG2D_Aniso2 
 +  * An example for transient mesh adaptation can be found under  
 +    * [ELMER_TRUNK]/elmerice/Tests/MMG2D_Transient \\ 
mesh/meshadaptation.1508999807.txt.gz · Last modified: 2017/10/26 06:36 by fgillet
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0