![]() |
kspaceFirstOrder3D-OMP 1.0
The C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
|
00001 00032 #ifndef UXYZ_SGXYZREALMATRIX_H 00033 #define UXYZ_SGXYZREALMATRIX_H 00034 00035 00036 #include <MatrixClasses/RealMatrix.h> 00037 #include <MatrixClasses/FFTWComplexMatrix.h> 00038 00043 class Tuxyz_sgxyzMatrix : public TRealMatrix { 00044 public: 00045 00050 Tuxyz_sgxyzMatrix(struct TDimensionSizes DimensionSizes) : 00051 TRealMatrix(DimensionSizes) {}; 00052 00053 00054 00056 void Compute_dt_rho_sg_mul_ifft_div_2(TRealMatrix& dt_rho_0_sgx, TFFTWComplexMatrix& FFT); 00058 void Compute_dt_rho_sg_mul_ifft_div_2(float dt_rho_0_sgx, TFFTWComplexMatrix& FFT); 00060 void Compute_dt_rho_sg_mul_ifft_div_2_scalar_nonuniform_x(float dt_rho_0_sgx, TRealMatrix & dxudxn_sgx, TFFTWComplexMatrix& FFT); 00062 void Compute_dt_rho_sg_mul_ifft_div_2_scalar_nonuniform_y(float dt_rho_0_sgy, TRealMatrix & dyudyn_sgy, TFFTWComplexMatrix& FFT); 00064 void Compute_dt_rho_sg_mul_ifft_div_2_scalar_nonuniform_z(float dt_rho_0_sgz, TRealMatrix & dzudzn_sgz, TFFTWComplexMatrix& FFT); 00065 00067 void Compute_ux_sgx_normalize(TRealMatrix& FFT_p, TRealMatrix& dt_rho0, TRealMatrix& pml); 00069 void Compute_ux_sgx_normalize_scalar_uniform(TRealMatrix& FFT_p, float dt_rho0, TRealMatrix& pml); 00071 void Compute_ux_sgx_normalize_scalar_nonuniform(TRealMatrix& FFT_p, float dt_rho0, TRealMatrix & dxudxn_sgx, TRealMatrix& pml); 00072 00074 void Compute_uy_sgy_normalize(TRealMatrix& FFT_p, TRealMatrix& dt_rho0, TRealMatrix& pml); 00076 void Compute_uy_sgy_normalize_scalar_uniform(TRealMatrix& FFT_p, float dt_rho0, TRealMatrix& pml); 00078 void Compute_uy_sgy_normalize_scalar_nonuniform(TRealMatrix& FFT_p, float dt_rho0,TRealMatrix & dyudyn_sgy, TRealMatrix& pml); 00079 00081 void Compute_uz_sgz_normalize(TRealMatrix& FFT_p, TRealMatrix& dt_rho0, TRealMatrix& pml); 00083 void Compute_uz_sgz_normalize_scalar_uniform(TRealMatrix& FFT_p, float& dt_rho0, TRealMatrix& pml); 00085 void Compute_uz_sgz_normalize_scalar_nonuniform(TRealMatrix& FFT_p, float& dt_rho0,TRealMatrix & dzudzn_sgz, TRealMatrix& pml); 00086 00087 00089 void AddTransducerSource(TLongMatrix& u_source_index, TLongMatrix& delay_mask, TRealMatrix& transducer_signal); 00090 00092 void Add_u_source(TRealMatrix &u_source_input, TLongMatrix & u_source_index, int t_index, long u_source_mode, long u_source_many); 00093 00095 virtual ~Tuxyz_sgxyzMatrix() {}; 00096 00097 protected: 00098 // Default constructor not allowed for public 00099 Tuxyz_sgxyzMatrix() : TRealMatrix() {}; 00104 Tuxyz_sgxyzMatrix(const Tuxyz_sgxyzMatrix& src); 00105 00107 Tuxyz_sgxyzMatrix& operator = (const Tuxyz_sgxyzMatrix& src); 00108 private: 00109 00110 }; // end of Tuxyz_sgxyzMatrix 00111 00112 #endif /* UX_SGREALMATRIX_H */ 00113