FCFV_Geodynamics.jl

Author tduretz
Popularity
12 Stars
Updated Last
5 Months Ago
Started In
May 2021

FCFV_Geodynamics.jl

This repository contains an implementation of the Face-Centered Finite Volume (FCFV) Poisson solver presented in Sevilla et al. (2018). The code heavily relies on the LoopVectorization package. The code supports quadrangular and triangular elements. Triangular mesh generation relies on the TriangleMesh package, which is a Julia wrapper to Triangle (Shewchuk, 2002).

Stokes solver

Convergence to manufactured solution using MainFCFV_Stokes_Convergence.jl (see Sevilla et al., 2018):

Total execution time of Julia code, as function of the total number of dofs (excluding visualisation) - Cholesky factorisation is the "bottleneck":

Poisson solver

Convergence to manufactured solution using MainFCFV_diffusion_Convergence.jl (see Sevilla et al., 2018):

Total execution time of Julia code, as function of the total number of dofs (excluding visualisation):

An example of computation on quads using MainFCFV_diffusion_v2.jl (512^2 - 262144 elements):

An example of computation on triangles (450219 elements):

The "grainy" pattern is due to the white outlines around elements which I did not manage to remove when plotting with Makie.

References

Sevilla, R, Giacomini, M, Huerta, A. A face-centred finite volume method for second-order elliptic problems. Int J Numer Methods Eng. 2018; 115: 986– 1014. https://doi.org/10.1002/nme.5833

Jonathan Richard Shewchuk, Delaunay Refinement Algorithms for Triangular Mesh Generation, Computational Geometry: Theory and Applications 22(1-3):21-74, May 2002