Skip to content

Full field solutions of Poisson and Stokes problems in 1D, 2D and 3D. Full field solutions to other problems are welcome!

License

Notifications You must be signed in to change notification settings

tduretz/ExactFieldSolutions.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

112 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExactFieldSolutions.jl

CI

Full field solutions are essential for the verification of numerical codes that are based on the solution of Partial Differential Equations (PDE). They allow for checking if numerical solutions are meaningful in eyeball norm but, more importantly, they allow for the quantification of discretisation errors. This quantification further enables to check whether numerical solutions converge to exact solutions at expected theoretical rates. ExactFieldSolutions compiles full field solutions for 1D, 2D and 3D PDE problems including Poisson-type and mechanical problems (Stokes, elasticity). Contributions are welcome and full field solutions to other problems (electric, magnetic, MHD) are more than welcome. Feel free to make a PR.

ExactFieldSolutions benefits from automatic differentiation tools available within the Julia ecosystem (e.g., ForwardDiff). These allow to evaluate fluxes and sources terms in a simplified way. See this manufactured solution for the 2D Poisson problem.

Please note that ExactFieldSolutions is a registered package, so you can install it simply by typing add ExactFieldSolutions in package mode.

Visualisation examples

It is necessary to activate the example environment in order to reproduce the visualisations and benchmarks, one can use the package mode for this purpose (]):

(ExactFieldSolutions) pkg> activate examples/
  Activating project at `~/REPO/ExactFieldSolutions/examples`

(examples) pkg>

This functionality is temporary and will disappear oncee the upcoming workspace feature will be released.

Poisson 2D

Sevilla et al. (2018)

alt text

Poisson 3D

Sevilla et al. (2018)

alt text

Diffusion 1D

Diffusion of a 1D Gaussian

alt text

Diffusion 1D: Stefan Problem

alt text

Diffusion 2D

Diffusion of a 2D Gaussian

alt text

Wave 1D

Propagation of a 1D wave based on d'Alembert's solution

alt text

Propagation of a 1D wave with a time-space dependent source and variable coefficient

alt text

Stokes 2D

Viscous inclusion - Schmid & Podladchikov (2003)

alt text

Double corner flow - Moulas et al., (2021)

alt text

Donea & Huerta (2003)

alt text

SolKz - Zhong et al. (1996)

alt text

SolCx - Zhong et al. (1996)

alt text

Elasticity 2D

Elastic plate with a hole

alt text

Poroelasticity 2D

Fluid injection in a poroelastic medium

alt text

Benchmarking examples

Diffusion 1D

1D diffusion: Finite Difference Method (FDM) with backward-Euler integration and spatial staggering (θ = 1.0)

alt text

1D diffusion: Finite Difference Method (FDM) with Crank-Nicolson integration and spatial staggering (θ = 0.5)

alt text

Poisson 2D

2D Poisson: Finite Difference Method (FDM) using an O(4) compact discretisation with constant coefficient

alt text

Wave 1D

1D wave: Finite Difference Method (FDM) with velocity-stress discretisation

alt text

1D wave: Finite Difference Method (FDM) with conventional O(2) discretisation

alt text

1D wave: Finite Difference Method (FDM) with optimised O(4) discretisation with constant coefficient

alt text

About

Full field solutions of Poisson and Stokes problems in 1D, 2D and 3D. Full field solutions to other problems are welcome!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •