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
Last revision Both sides next revision
mesh:meshadaptation [2017/07/21 11:56]
tzwinger [Mesh Adaptation (2D)]
mesh:meshadaptation [2018/03/06 16:08]
fgillet [Mesh Adaptation (2D)]
Line 1: Line 1:
 ====== Mesh Adaptation (2D) ====== ====== Mesh Adaptation (2D) ======
 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/).
 +
 +**<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 48: Line 52:
 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 68: Line 72:
 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.txt · Last modified: 2018/03/06 16:08 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