Skip to main content
Version: 0.4.0

Front propagation

Verification of frontPropagation against closed-form solutions. All results are from FEAScript-core 0.4.0, solved with lusolve.

Planar front​

A front starts at one boundary, with zero gradient on the others. The exact solution of the eikonal equation is the distance to that boundary: u=xu = x in 1D on [0,2][0, 2], and u=yu = y in 2D on a 4 m × 2 m domain.

Planar front domains in 1D and 2D, with the front starting at the left and bottom boundaries

Boundary layer at the outflow boundary​

The model adds a viscous term ε∇2u\varepsilon \nabla^2 u that stabilizes the eikonal equation, with ε=max⁡(10−2, 0.1 h)\varepsilon = \max(10^{-2}, \, 0.1 \, h) for an element of size hh. At the outflow boundary, opposite the front, the zero-gradient condition becomes ε ∂u/∂n=0\varepsilon \, \partial u / \partial n = 0, while the exact solution has ∂u/∂n=1\partial u / \partial n = 1. The solution bends to meet the condition in a boundary layer about ε\varepsilon wide. In 1D,

u≈x−ε e(x−L)/ε,u \approx x - \varepsilon \, e^{(x - L)/\varepsilon},

so in 1D the largest deviation, at the outflow boundary node, equals ε\varepsilon. Because of the 10−210^{-2} floor on ε\varepsilon, it does not drop below 10−210^{-2} under mesh refinement. Away from the outflow boundary the layer has decayed and the solution matches the exact one closely.

Results​

2D meshes of the planar front test: structured 12 × 8 and 80 × 40, and four Gmsh meshes

The largest deviation over all nodes is in the boundary layer. The table gives ε\varepsilon of the elements along the outflow boundary, which varies from element to element on the Gmsh meshes:

DimensionElementsMeshε\varepsilon at the outflow boundaryLargest deviationTolerance
1DLinear20 elements1.0e-21.0e-25e-2
1DQuadratic20 elements1.0e-21.0e-25e-2
2DLinear quadrilaterals12 × 8 structured2.9e-22.8e-25e-2
2DLinear quadrilateralsGmsh, rect_quad_linear.msh5.4e-2 to 6.4e-27.1e-21.5e-1
2DQuadratic quadrilateralsGmsh, rect_quad_quadratic.msh2.5e-2 to 3.0e-22.7e-25e-2
2DLinear trianglesGmsh, rect_triang_linear.msh3.6e-2 to 4.4e-24.4e-25e-2
2DQuadratic trianglesGmsh, rect_triang_quadratic.msh1.8e-2 to 2.2e-22.3e-25e-2

In 1D the largest deviation equals ε\varepsilon. In 2D it is close to ε\varepsilon along the outflow boundary. On the coarse Gmsh linear quadrilaterals it is about 10 % larger: the elements, about 0.6 wide, are too coarse to resolve a layer about 0.06 wide.

The interior, more than 0.5 (50 ε\varepsilon) from the outflow boundary, is checked on meshes that resolve the layer:

DimensionElementsMeshRegionLargest deviationTolerance
1DLinear80 elementsx≤1.5x \le 1.52.4e-101e-8
1DQuadratic40 elementsx≤1.5x \le 1.52.4e-101e-8
2DLinear quadrilaterals80 × 40 structuredy≤1.5y \le 1.52.1e-61e-5

On coarser meshes the layer is not resolved and reaches further into the domain: in 1D the interior deviation is 8.8e-4 with 20 linear elements, 9.0e-7 with 40 and 2.4e-10 with 80.

In 1D the test also starts the front at u(0)=1u(0) = 1, where the exact solution is u=1+xu = 1 + x; the largest deviation is again 1.0e-2. In every case the frontal solver matches lusolve to within 6.7e-16 (tolerance 1e-8).

Tests: frontPropagation1DPlanarFront and frontPropagation2DPlanarFront.