AcousticWaveCPML.jl

A Julia package for solving acoustic wave propagation in 2D and 3D on multi-xPUs using CPML boundary conditions.

Package Features

Usage

First of all, import the package with:

using AcousticWaveCPML

Then you have to import the submodule containing the specific version you want to run. There are 1D, 2D and 3D submodules. For 2D and 3D there are versions with and without using ParallelStencil. For 2D and 3D solvers there are versions for multi-xPUs using ParalleStencil and ImplicitGlobalGrid. Each submodule needs to be loaded separately and independently: this is because currently ParallelStencil does not easily support multiple initializations in the same module, so a workaround was needed.

Solvers that use ParallelStencil have either _Threads or _CUDA at the end of the name, respectively for CPU and GPU versions. Solvers that can be run on multi-xPUs have multi in their name.

For example, if you want to load the solver function for 2D acoustic wave propagation on GPUs, you will need to import with:

using AcousticWaveCPML.Acoustic2D_CUDA

and then use the function solve2D provided in the Acoustic2D_CUDA submodule.

See the Index for the complete list of documented functions and types.

GitHub repository

You will find most of the scientific info/results here.

Index