5#include <boost/multi_array.hpp>
6#include <boost/array.hpp>
7#include "CustomLibraries/np.hpp"
8#include "CustomLibraries/np_to_matplot.hpp"
9#include "CustomLibraries/wavePlotter.hpp"
10#include <matplot/matplot.h>
16#include "CoreAlgorithm/helper_func.hpp"
17#include "CoreAlgorithm/coeff.hpp"
18#include "CoreAlgorithm/source.hpp"
19#include "CoreAlgorithm/computational.hpp"
20#include "CoreAlgorithm/solver.hpp"
22void benchmark_solver()
33 double xmax = nx * dx;
35 double zmax = nz * dz;
37 double tmax = nt * dt;
43 boost::multi_array<double, 3> f =
waveSimCore::ricker(50, 50, f_M, amp, shift, tmin, tmax, nt, nx, nz);
47 auto start = std::chrono::high_resolution_clock::now();
49 auto stop = std::chrono::high_resolution_clock::now();
50 auto duration = std::chrono::duration_cast<std::chrono::microseconds>(stop - start);
51 std::cout <<
"Time taken by the solving function: " << duration.count() <<
" microseconds" << std::endl;
54void benchmark_gradient()
64 int axis[4] = {sizex, sizey, sizez, sizet};
65 boost::multi_array<double, 4> nd_array = np::zeros<double>(axis);
66 auto start = std::chrono::high_resolution_clock::now();
68 auto stop = std::chrono::high_resolution_clock::now();
69 auto duration = std::chrono::duration_cast<std::chrono::microseconds>(stop - start);
70 std::cout <<
"Time taken by the gradient function: " << duration.count() <<
" microseconds" << std::endl;
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.
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, 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)
::value constexpr std::vector< boost::multi_array< T, ND > > gradient(boost::multi_array< T, ND > inArray, std::initializer_list< T > args)