kspaceFirstOrder3D-CUDA  1.1
The CUDA/C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TKSpaceFirstOrder3DSolver Class Reference

Class responsible for running the k-space first order 3D method. More...

#include <KSpaceFirstOrder3DSolver.h>

Collaboration diagram for TKSpaceFirstOrder3DSolver:

Public Member Functions

 TKSpaceFirstOrder3DSolver ()
 Constructor. More...
 
virtual ~TKSpaceFirstOrder3DSolver ()
 Destructor. More...
 
virtual void AllocateMemory ()
 Memory allocation. More...
 
virtual void FreeMemory ()
 Memory deallocation.
 
virtual void LoadInputData ()
 Load simulation data from the input file. More...
 
virtual void Compute ()
 Compute the k-space simulation. More...
 
size_t GetHostMemoryUsageInMB ()
 Get memory usage in MB on the CPU side. More...
 
size_t GetDeviceMemoryUsageInMB ()
 Get memory usage in MB on the GPU side. More...
 
const std::string GetCodeName () const
 Get code name - release code version. More...
 
void PrintFullNameCodeAndLicense () const
 Print the code name and license. More...
 
double GetTotalTime () const
 Get total simulation time. More...
 
double GetPreProcessingTime () const
 Get pre-processing time. More...
 
double GetDataLoadTime () const
 Get data load time. More...
 
double GetSimulationTime () const
 Get simulation time (time loop). More...
 
double GetPostProcessingTime () const
 Get post-processing time. More...
 
double GetCumulatedTotalTime () const
 Get total simulation time cumulated over all legs. More...
 
double GetCumulatedPreProcessingTime () const
 Get pre-processing time cumulated over all legs. More...
 
double GetCumulatedDataLoadTime () const
 Get data load time cumulated over all legs. More...
 
double GetCumulatedSimulationTime () const
 Get simulation time (time loop) cumulated over all legs. More...
 
double GetCumulatedPostProcessingTime () const
 Get post-processing time cumulated over all legs. More...
 

Protected Member Functions

 TKSpaceFirstOrder3DSolver (const TKSpaceFirstOrder3DSolver &src)
 Copy constructor not allowed for public.
 
TKSpaceFirstOrder3DSolveroperator= (const TKSpaceFirstOrder3DSolver &src)
 operator = not allowed for public.
 
void InitializeFFTPlans ()
 Initialize FFT plans. More...
 
void PreProcessingPhase ()
 Compute pre-processing phase.
 
void ComputeMainLoop ()
 Compute the main time loop of the kspaceFirstOrder3D. More...
 
void PostProcessing ()
 Post processing, and closing the output streams.
 
void StoreSensorData ()
 Store sensor data. More...
 
void WriteOutputDataInfo ()
 Write statistics and header into the output file. More...
 
void SaveCheckpointData ()
 Save checkpoint data. More...
 
void ComputeVelocity ()
 Compute new values of acoustic velocity. More...
 
void ComputeGradientVelocity ()
 Compute new values of acoustic velocity gradients. More...
 
void ComputeDensityNonliner ()
 Compute new values of acoustic density for non-linear case. More...
 
void ComputeDensityLinear ()
 Compute new values of acoustic density for linear case. More...
 
void ComputePressureNonlinear ()
 Compute acoustic pressure for nonlinear case. More...
 
void ComputePressureLinear ()
 Compute acoustic pressure for linear case.
 
void AddVelocitySource ()
 Add in velocity source. More...
 
void AddPressureSource ()
 Add in pressure source.
 
void Calculate_p0_source ()
 Calculate p0_ ource. More...
 
void GenerateKappa ()
 Generate kappa matrix for non-absorbing media. More...
 
void GenerateKappaAndNablas ()
 Generate kappa matrix, absorb_nabla1, absorb_nabla2 for absorbing media.
 
void GenerateTauAndEta ()
 Generate absorb_tau, absorb_eta for heterogenous media. More...
 
void GenerateInitialDenisty ()
 Calculate dt ./ rho0 for non-uniform grids. More...
 
void Compute_c2 ()
 Calculate square of velocity. More...
 
void ComputePressurePartsNonLinear (TRealMatrix &rho_part, TRealMatrix &BonA_part, TRealMatrix &du_part)
 Calculate three temporary sums in the new pressure formula, non-linear absorbing case. More...
 
void ComputePressurePartsLinear (TRealMatrix &rhoxyz_sum, TRealMatrix &rho0_du_sum)
 Calculate two temporary sums in the new pressure formula, linear absorbing case. More...
 
void SumPressureTermsNonlinear (TRealMatrix &absorb_tau_temp, TRealMatrix &absorb_eta_temp, TRealMatrix &BonA_temp)
 Sum sub-terms to calculate new pressure, non-linear case. More...
 
void SumPressureTermsLinear (TRealMatrix &absorb_tau_temp, TRealMatrix &absorb_eta_temp, TRealMatrix &rhoxyz_sum)
 Sum sub-terms to calculate new pressure, linear case. More...
 
void SumPressureNonlinearLossless ()
 Sum sub-terms for new p, linear lossless case. More...
 
void SumPressureLinearLossless ()
 Sum sub-terms for new p, linear lossless case. More...
 
void CalculateShiftedVelocity ()
 Calculate ux_shifted, uy_shifted and uz_shifted. More...
 
void PrintStatistics ()
 Print progress statistics. More...
 
bool IsTimeToCheckpoint ()
 Is time to checkpoint (save actual state on disk). More...
 
bool IsCheckpointInterruption () const
 Was the loop interrupted to checkpoint? More...
 
void CheckOutputFile ()
 Check the output file has the correct format and version. More...
 
void CheckCheckpointFile ()
 Check the checkpoint file has the correct format and version. More...
 
void LoadElapsedTimeFromOutputFile (THDF5_File &o1utputFile)
 Reads the header of the output file and sets the cumulative elapsed time from the first log. More...
 
TRealMatrixGet_kappa ()
 Get the kappa matrix from the container.
 
TRealMatrixGet_c2 ()
 Get the c^2 matrix from the container.
 
TRealMatrixGet_p ()
 Get the p matrix from the container.
 
TRealMatrixGet_ux_sgx ()
 Get the ux_sgx matrix from the container.
 
TRealMatrixGet_uy_sgy ()
 Get the uy_sgy matrix from the container.
 
TRealMatrixGet_uz_sgz ()
 Get the uz_sgz matrix from the container.
 
TRealMatrixGet_ux_shifted ()
 Get the ux_shifted matrix from the container.
 
TRealMatrixGet_uy_shifted ()
 Get the uy_shifted matrix from the container.
 
TRealMatrixGet_uz_shifted ()
 Get the uz_shifted matrix from the container.
 
TRealMatrixGet_duxdx ()
 Get the duxdx matrix from the container.
 
TRealMatrixGet_duydy ()
 Get the duydy matrix from the container.
 
TRealMatrixGet_duzdz ()
 Get the duzdz matrix from the container.
 
TRealMatrixGet_dt_rho0_sgx ()
 Get the dt.*rho0_sgx matrix from the container.
 
TRealMatrixGet_dt_rho0_sgy ()
 Get the dt.*rho0_sgy matrix from the container.
 
TRealMatrixGet_dt_rho0_sgz ()
 Get the dt.*rho0_sgz matrix from the container.
 
TRealMatrixGet_rhox ()
 Get the rhox matrix from the container.
 
TRealMatrixGet_rhoy ()
 Get the rhoy matrix from the container.
 
TRealMatrixGet_rhoz ()
 Get the rhoz matrix from the container.
 
TRealMatrixGet_rho0 ()
 Get the rho0 matrix from the container.
 
TComplexMatrixGet_ddx_k_shift_pos ()
 Get the ddx_k_shift_pos matrix from the container.
 
TComplexMatrixGet_ddy_k_shift_pos ()
 Get the ddy_k_shift_pos matrix from the container.
 
TComplexMatrixGet_ddz_k_shift_pos ()
 Get the ddz_k_shift_pos matrix from the container.
 
TComplexMatrixGet_ddx_k_shift_neg ()
 Get the ddx_k_shift_neg matrix from the container.
 
TComplexMatrixGet_ddy_k_shift_neg ()
 Get the ddy_k_shift_neg matrix from the container.
 
TComplexMatrixGet_ddz_k_shift_neg ()
 Get the ddz_k_shift_neg matrix from the container.
 
TComplexMatrixGet_x_shift_neg_r ()
 Get the x_shift_neg_r matrix from the container.
 
TComplexMatrixGet_y_shift_neg_r ()
 Get the y_shift_neg_r from the container.
 
TComplexMatrixGet_z_shift_neg_r ()
 Get the y_shift_neg_r from the container.
 
TRealMatrixGet_pml_x_sgx ()
 Get the pml_x_sgx matrix from the container.
 
TRealMatrixGet_pml_y_sgy ()
 Get the pml_y_sgy matrix from the container.
 
TRealMatrixGet_pml_z_sgz ()
 Get the pml_z_sgz matrix from the container.
 
TRealMatrixGet_pml_x ()
 Get the pml_x matrix from the container.
 
TRealMatrixGet_pml_y ()
 Get the pml_y matrix from the container.
 
TRealMatrixGet_pml_z ()
 Get the pml_z matrix from the container.
 
TRealMatrixGet_dxudxn ()
 Get the dxudxn matrix from the container.
 
TRealMatrixGet_dyudyn ()
 Get the dyudyn matrix from the container.
 
TRealMatrixGet_dzudzn ()
 Get the dzudzn matrix from the container.
 
TRealMatrixGet_dxudxn_sgx ()
 Get the dxudxn_sgx matrix from the container.
 
TRealMatrixGet_dyudyn_sgy ()
 Get the dyudyn_sgy matrix from the container.
 
TRealMatrixGet_dzudzn_sgz ()
 Get the dzudzn_sgz matrix from the container.
 
TRealMatrixGet_BonA ()
 Get the BonA matrix from the container.
 
TRealMatrixGet_absorb_tau ()
 Get the absorb_tau matrix from the container.
 
TRealMatrixGet_absorb_eta ()
 Get the absorb_eta matrix from the container.
 
TRealMatrixGet_absorb_nabla1 ()
 Get the absorb_nabla1 matrix from the container.
 
TRealMatrixGet_absorb_nabla2 ()
 Get the absorb_nabla2 matrix from the container.
 
TIndexMatrixGet_sensor_mask_index ()
 Get the sensor_mask_index matrix from the container.
 
TIndexMatrixGet_sensor_mask_corners ()
 Get the sensor_mask_corners matrix from the container.
 
TIndexMatrixGet_u_source_index ()
 Get the u_source_index matrix from the container.
 
TIndexMatrixGet_p_source_index ()
 Get the p_source_index matrix from the container.
 
TIndexMatrixGet_delay_mask ()
 Get the delay_mask matrix from the container.
 
TRealMatrixGet_transducer_source_input ()
 Get the transducer_source_input matrix from the container.
 
TRealMatrixGet_p_source_input ()
 Get the p_source_input matrix from the container.
 
TRealMatrixGet_p0_source_input ()
 Get the p0_source_input from the container.
 
TRealMatrixGet_ux_source_input ()
 Get the ux_source_input matrix from the container.
 
TRealMatrixGet_uy_source_input ()
 Get the uy_source_input matrix from the container.
 
TRealMatrixGet_uz_source_input ()
 Get the uz_source_input matrix from the container.
 
TRealMatrixGet_temp_1_real_3D ()
 Get the Temp_1_RS3D matrix from the container.
 
TRealMatrixGet_temp_2_real_3D ()
 Get the Temp_2_RS3D matrix from the container.
 
TRealMatrixGet_temp_3_real_3D ()
 Get the Temp_3_RS3D matrix from the container.
 
TCUFFTComplexMatrixGet_cufft_x_temp ()
 Get the CUFFT_X_temp from the container.
 
TCUFFTComplexMatrixGet_cufft_y_temp ()
 Get the FFT_Y_temp from the container.
 
TCUFFTComplexMatrixGet_cufft_z_temp ()
 Get the FFT_Z_temp from the container.
 
TCUFFTComplexMatrixGet_cufft_shift_temp ()
 Get the FFT_shift_temp the container.
 

Private Attributes

TMatrixContainer matrixContainer
 Matrix container with all the matrix classes.
 
TOutputStreamContainer outputStreamContainer
 Output stream container.
 
TParametersparameters
 Global parameters of the simulation.
 
size_t actPercent
 Percentage of the simulation done.
 
bool isTimestepRightAfterRestore
 This variable is true when calculating first time step after restore from checkpoint (to allow asynchronous IO)
 
TTimeMeasure totalTime
 Total time of the simulation.
 
TTimeMeasure preProcessingTime
 Pre-processing time of the simulation.
 
TTimeMeasure dataLoadTime
 Data load time of the simulation.
 
TTimeMeasure simulationTime
 Simulation time of the simulation.
 
TTimeMeasure postProcessingTime
 Post-processing time of the simulation.
 
TTimeMeasure iterationTime
 Iteration time of the simulation.
 

Detailed Description

Class responsible for running the k-space first order 3D method. This class maintain the whole k-wave (implements the time loop).

Definition at line 57 of file KSpaceFirstOrder3DSolver.h.

Constructor & Destructor Documentation

TKSpaceFirstOrder3DSolver::TKSpaceFirstOrder3DSolver ( )

Constructor of the class.

Definition at line 77 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

TKSpaceFirstOrder3DSolver::~TKSpaceFirstOrder3DSolver ( )
virtual

Destructor of the class.

Definition at line 93 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Member Function Documentation

void TKSpaceFirstOrder3DSolver::AddVelocitySource ( )
protected

Add velocity source to the particle velocity.

Definition at line 1297 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::AllocateMemory ( )
virtual

The method allocates the matrix container and create all matrices and creates all output streams.

Definition at line 110 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::Calculate_p0_source ( )
protected

Calculate p0 source when necessary.

Definition at line 1347 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::CalculateShiftedVelocity ( )
protected

Calculated shifted velocities.
ux_shifted = real(ifft(bsxfun(@times, x_shift_neg, fft(ux_sgx, [], 1)), [], 1));
uy_shifted = real(ifft(bsxfun(@times, y_shift_neg, fft(uy_sgy, [], 2)), [], 2));
uz_shifted = real(ifft(bsxfun(@times, z_shift_neg, fft(uz_sgz, [], 3)), [], 3));

Definition at line 1902 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::CheckCheckpointFile ( )
protected

Check the file type and the version of the checkpoint file.

Exceptions
ios::failureif an error happens

Definition at line 2046 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::CheckOutputFile ( )
protected

Check the output file has the correct format and version.

Exceptions
ios::failureif an error happens

Definition at line 1991 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

void TKSpaceFirstOrder3DSolver::Compute ( )
virtual

This method computes k-space First Order 3D simulation. It launches calculation on a given dataset going through FFT initialization, pre-processing, main loop and post-processing phases.

Definition at line 240 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::Compute_c2 ( )
protected

Compute c^2 on the CPU side.

Definition at line 1701 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::ComputeDensityLinear ( )
protected

Calculate new values of rhox, rhoy and rhoz for linear case.

Definition at line 1188 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::ComputeDensityNonliner ( )
protected

Calculate new values of rhox, rhoy and rhoz for non-linear case.

Definition at line 1152 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::ComputeGradientVelocity ( )
protected

Compute new values for duxdx, duydy, duzdz, gradient of velocity.

Definition at line 1117 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::ComputeMainLoop ( )
protected

Compute the main time loop of KSpaceFirstOrder3D.

Definition at line 771 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::ComputePressureNonlinear ( )
protected

Compute acoustic pressure for non-linear case.

Definition at line 1224 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::ComputePressurePartsLinear ( TRealMatrix rhoxyz_sum,
TRealMatrix rho0_du_sum 
)
protected

Calculate two temporary sums in the new pressure formula, linear absorbing case.

Parameters
[out]rhoxyz_sum-rhox_sgx + rhoy_sgy + rhoz_sgz
[out]rho0_du_sum- rho0* (duxdx + duydy + duzdz);

Definition at line 1763 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::ComputePressurePartsNonLinear ( TRealMatrix rho_part,
TRealMatrix BonA_part,
TRealMatrix du_part 
)
protected

Compute three temporary sums in the new pressure formula, non-linear absorbing case.

Parameters
[out]rho_part- rhox_sgx + rhoy_sgy + rhoz_sgz
[out]BonA_part- BonA + rho ^2 / 2 rho0 + (rhox_sgx + rhoy_sgy + rhoz_sgz)
[out]du_part- rho0* (duxdx + duydy + duzdz)

Definition at line 1729 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::ComputeVelocity ( )
protected

Compute new values of ux_sgx, uy_sgy, uz_sgz (acoustic velocity).

Definition at line 1049 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::GenerateInitialDenisty ( )
protected

Prepare dt./ rho0 for non-uniform grid.

Definition at line 1629 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::GenerateKappa ( )
protected

Generate kappa matrix for non-absorbing mode.

Definition at line 1414 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::GenerateTauAndEta ( )
protected

Generate absorb_tau and absorb_eta in for heterogenous media.

Definition at line 1541 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

const string TKSpaceFirstOrder3DSolver::GetCodeName ( ) const

Get release code version.

Returns
core name

Definition at line 435 of file KSpaceFirstOrder3DSolver.cpp.

Here is the caller graph for this function:

double TKSpaceFirstOrder3DSolver::GetCumulatedDataLoadTime ( ) const

Get data load time cumulated over all legs.

Returns
time to load data cumulated over multiple legs

Definition at line 628 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

double TKSpaceFirstOrder3DSolver::GetCumulatedPostProcessingTime ( ) const

Get post-processing time cumulated over all legs.

Returns
cumulated time to do post-processing over multiple legs

Definition at line 650 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

double TKSpaceFirstOrder3DSolver::GetCumulatedPreProcessingTime ( ) const

Get pre-processing time cumulated over all legs.

Returns
pre-processing time cumulated over multiple legs

Definition at line 617 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

double TKSpaceFirstOrder3DSolver::GetCumulatedSimulationTime ( ) const

Get simulation time (time loop) cumulated over all legs.

Returns
simulation time cumulated over multiple legs

Definition at line 639 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

double TKSpaceFirstOrder3DSolver::GetCumulatedTotalTime ( ) const

Get total simulation time cumulated over all legs.

Returns
simulation time cumulated over multiple legs

Definition at line 606 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

double TKSpaceFirstOrder3DSolver::GetDataLoadTime ( ) const

Get data load time.

Returns
time to load data

Definition at line 573 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

size_t TKSpaceFirstOrder3DSolver::GetDeviceMemoryUsageInMB ( )

Get peak GPU memory usage.

Returns
Peak memory usage in MBs.

Definition at line 421 of file KSpaceFirstOrder3DSolver.cpp.

Here is the caller graph for this function:

size_t TKSpaceFirstOrder3DSolver::GetHostMemoryUsageInMB ( )

Get peak CPU memory usage.

Returns
peak memory usage in MBs.

Definition at line 389 of file KSpaceFirstOrder3DSolver.cpp.

Here is the caller graph for this function:

double TKSpaceFirstOrder3DSolver::GetPostProcessingTime ( ) const

Get post-processing time.

Returns
post-processing time

Definition at line 596 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

double TKSpaceFirstOrder3DSolver::GetPreProcessingTime ( ) const

Get pre-processing time.

Returns
pre-processing time

Definition at line 562 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

double TKSpaceFirstOrder3DSolver::GetSimulationTime ( ) const

Get simulation time (time loop).

Returns
simulation time

Definition at line 585 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

double TKSpaceFirstOrder3DSolver::GetTotalTime ( ) const

Get total simulation time.

Returns
total simulation time.

Definition at line 551 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::InitializeFFTPlans ( )
protected

Initialize FFT plans.

Definition at line 665 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool TKSpaceFirstOrder3DSolver::IsCheckpointInterruption ( ) const
protected

Was the loop interrupted to checkpoint?

Returns
true if it is time to checkpoint

Definition at line 1980 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

bool TKSpaceFirstOrder3DSolver::IsTimeToCheckpoint ( )
protected

Is time to checkpoint?

Returns
true if it is necessary to stop to checkpoint

Definition at line 1964 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::LoadElapsedTimeFromOutputFile ( THDF5_File outputFile)
protected

Restore cumulated elapsed time from the output file. Open the header, read this and store into TMPI_Time classes

Parameters
[in]outputFile- Output file

Definition at line 2102 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::LoadInputData ( )
virtual

Load data from the input file provided by the parameter class and creates the output time series streams.

Definition at line 140 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::PrintFullNameCodeAndLicense ( ) const

Print full code name and the license

Definition at line 444 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::PrintStatistics ( )
protected

Print progress statistics.

Definition at line 1926 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::SaveCheckpointData ( )
protected

Save checkpoint data into the checkpoint file, flush aggregated outputs into the output file.

Definition at line 985 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::StoreSensorData ( )
protected

Store sensor data. This routine exploits asynchronous behavior. It first performs IO from the i-1th step while waiting for ith step to come to the point of sampling.

Definition at line 915 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::SumPressureLinearLossless ( )
protected

Sum sub-terms for new p, linear lossless case.

Definition at line 1878 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::SumPressureNonlinearLossless ( )
protected

Sum sub-terms for new p, non-linear lossless case.

Definition at line 1851 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::SumPressureTermsLinear ( TRealMatrix absorb_tau_temp,
TRealMatrix absorb_eta_temp,
TRealMatrix rhoxyz_sum 
)
protected

Sum sub-terms to calculate new pressure, linear case.

Parameters
[in]absorb_tau_temp- sub-term with absorb_tau
[in]absorb_eta_temp- sub-term with absorb_eta
[in]rhoxyz_sum- rhox_sgx + rhoy_sgy + rhoz_sgz

Definition at line 1824 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::SumPressureTermsNonlinear ( TRealMatrix absorb_tau_temp,
TRealMatrix absorb_eta_temp,
TRealMatrix BonA_temp 
)
protected

Sum sub-terms to calculate new pressure, non-linear case.

Parameters
[in]absorb_tau_temp- tau component
[in]absorb_eta_temp- BonA + rho ^2 / 2 rho0 + (rhox_sgx + rhoy_sgy + rhoz_sgz)
[in]BonA_temp- rho0* (duxdx + duydy + duzdz)

Definition at line 1790 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TKSpaceFirstOrder3DSolver::WriteOutputDataInfo ( )
protected

Write statistics and the header into the output file.

Definition at line 947 of file KSpaceFirstOrder3DSolver.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: