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.
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.
Propagation of a 1D wave based on d'Alembert's solution
Propagation of a 1D wave with a time-space dependent source and variable coefficient
Viscous inclusion - Schmid & Podladchikov (2003)
Double corner flow - Moulas et al., (2021)
Fluid injection in a poroelastic medium
1D wave: Finite Difference Method (FDM) with velocity-stress discretisation
1D wave: Finite Difference Method (FDM) with conventional O(2) discretisation
1D wave: Finite Difference Method (FDM) with optimised O(4) discretisation with constant coefficient