GaussianRandomFields is a Julia package to compute and sample from Gaussian random fields.
- Support for stationary separable and non-separable isotropic and anisotropic Gaussian random fields.
- We provide most standard covariance functions such as Gaussian, Exponential and Matérn covariances. Adding a user-defined covariance function is very easy.
- Implementation of most common methods to generate Gaussian random fields: Cholesky factorization, eigenvalue decomposition, Karhunen-Loève expansion and circulant embedding.
- Easy generation of Gaussian random fields defined on a Finite Element mesh.
- Versatile plotting features for easy visualisation of Gaussian random fields using Plots.jl.
GaussianRandomFields is a registered package and so can be installed via
] add GaussianRandomFields
- See the Tutorial for an introduction on how to use this package (including fancy pictures!)
- See the API for a detailed manual
 Lord, G. J., Powell, C. E. and Shardlow, T. An introduction to computational stochastic PDEs. No. 50. Cambridge University Press, 2014.
 Graham, I. G., Kuo, F. Y., Nuyens, D., Scheichl, R. and Sloan, I.H. Analysis of circulant embedding methods for sampling stationary random fields. SIAM Journal on Numerical Analysis 56(3), pp. 1871-1895, 2018.
 Le Maître, O. and Knio, M. O. Spectral methods for uncertainty quantification: with applications to computational fluid dynamics. Springer Science & Business Media, 2010.
 Baker, C. T. The numerical treatment of integral equations. Clarendon Press, 1977.
 Betz, W., Papaioannou I. and Straub, D. Numerical methods for the discretization of random fields by means of the Karhunen–Loève expansion. Computer Methods in Applied Mechanics and Engineering 271, pp. 109-129, 2014.