![]() |
WaveSimPP 1.0
A C library for solving the wave equation and reconstructing the wave field
|
Functions | |
| boost::multi_array< double, 2 > | get_sigma_1 (boost::multi_array< double, 1 > x, double dx, int nx, int nz, double c_max, int n=15, double R=1e-3, double m=2.0) |
| boost::multi_array< double, 2 > | get_sigma_2 (boost::multi_array< double, 1 > z, double dz, int nx, int nz, double c_max, int n=10, double R=1e-3, double m=2.0) |
| boost::multi_array< double, 2 > | get_profile (double xmin, double xmax, double zmin, double zmax, int nx, int nz, double r) |
| Get the velocity profile of the model as a 2D Array. | |
| boost::multi_array< double, 2 > | dfdx (boost::multi_array< double, 2 > f, double dx) |
| Takes the partial derivative of a 2D matrix f with respect to x. | |
| boost::multi_array< double, 2 > | dfdz (boost::multi_array< double, 2 > f, double dz) |
| Takes the partial derivative of a 2D matrix f with respect to z. | |
| boost::multi_array< double, 2 > | d2fdx2 (boost::multi_array< double, 2 > f, double dx) |
| Takes the second partial derivative of a 2D matrix f with respect to x. | |
| boost::multi_array< double, 2 > | d2fdz2 (boost::multi_array< double, 2 > f, double dz) |
| Takes the second partial derivative of a 2D matrix f with respect to z. | |
| boost::multi_array< double, 2 > | divergence (boost::multi_array< double, 2 > f1, boost::multi_array< double, 2 > f2, double dx, double dz) |
| boost::multi_array< double, 3 > | wave_solver (boost::multi_array< double, 2 > c, double dt, double dx, double dz, int nt, int nx, int nz, boost::multi_array< double, 3 > f) |
| boost::multi_array< double, 3 > | wave_solver_complex (boost::multi_array< double, 2 > c, double dt, double dx, double dz, int nt, int nx, int nz, boost::multi_array< double, 3 > f, boost::multi_array< double, 2 > sigma_1, boost::multi_array< double, 2 > sigma_2) |
| boost::multi_array< double, 3 > | ricker (int i_s, int j_s, double f, double amp, double shift, double tmin, double tmax, int nt, int nx, int nz) |
| Get the Ricker wavelet as a 3D Array. | |
This namespace contains all the core algorithm for solving wave equation
For the core algorithm, we need six functionalities:
1) create the computational domain,
2) create a velocity profile (1 & 2 can be put together)
3) create attenuation coefficients,
4) create source functions,
5) helper functions to compute eg. df/dx
6) use all above to create a solver function for wave equation