kspaceFirstOrder3D-OMP 1.0
The C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
MatrixClasses/UXYZ_SGXYZMatrix.h
Go to the documentation of this file.
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 
 All Classes Files Functions Variables Typedefs Enumerations