WaveSimPP 1.0
A C library for solving the wave equation and reconstructing the wave field
All Classes Namespaces Functions Modules Pages
Functions
waveSimCore Namespace Reference

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.
 

Detailed Description

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