Acoustic FDTD Solver
|
Simulate the propagation of the acoustic wave in lossy media using the finite-difference time-domain method. More...
#include <ACFDTD22.hpp>
Public Member Functions | |
ACFDTD22 () | |
ACFDTD22 (const double frequency, const double cfl_number) | |
virtual void | calcCoefficients (const Model &model, const Grid &grid) |
Calculate the coefficients of the FDTD update equations. | |
virtual void | execute (const Grid &grid, const CartPosition &sig_loc, const Function *signal, const double time_span, const std::vector< Sensor * > &sen_vec, const unsigned negY=BC_PRESS, const unsigned posY=BC_PRESS, const unsigned negZ=BC_PRESS, const unsigned posZ=BC_PRESS) |
Engine to handle the hard acoustic pressure source. | |
virtual void | execute (const Model &model, const Grid &grid, const HardPlaneWaveSource &source, const double time_span, const std::vector< Sensor * > &sen_vec, const unsigned negY=BC_PRESS, const unsigned posY=BC_PRESS, const unsigned negZ=BC_PRESS, const unsigned posZ=BC_PRESS) |
Engine to handle the hard plane wave source. | |
virtual double | getDeltaT () const |
virtual unsigned | getnTimeSteps () const |
virtual | ~ACFDTD22 () |
Protected Attributes | |
UniqueCoefficientContainer | container |
populated in ACFDTD22::calcCoefficients() | |
std::string | sim_name |
double | f_c |
Central frequency. | |
double | S |
CFL number. | |
double | dt |
temporal step. | |
unsigned | nTimeSteps |
Initialized in ACFDTD22::execute(). |
Private Member Functions | |
void | parseModel (const Model &model, const Grid &grid) |
Update the cofficients pra, prb, prc, prd, pred and uya, uyb, uyc, uza, uzb, uzc. |
Private Attributes | |
unsigned short ** | bya |
unsigned short ** | byb |
unsigned short ** | bza |
unsigned short ** | bzb |
unsigned short ** | pra |
unsigned short ** | prb |
unsigned short ** | prc |
unsigned short ** | prd |
unsigned short ** | pre |
unsigned short ** | aya |
unsigned short ** | ayb |
unsigned short ** | aza |
unsigned short ** | azb |
unsigned short ** | uya |
unsigned short ** | uyb |
unsigned short ** | uyc |
unsigned short ** | uza |
unsigned short ** | uzb |
unsigned short ** | uzc |
Simulate the propagation of the acoustic wave in lossy media using the finite-difference time-domain method.
ACFDTD22::ACFDTD22 | ( | ) |
ACFDTD22::ACFDTD22 | ( | const double | frequency, |
const double | cfl_number | ||
) |
|
virtual |
Calculate the coefficients of the FDTD update equations.
If the Model contains the PML around its boundaries, this function also calculates the coefficients in the PML region. See notes on 2012-05-14 for the expression of the coefficients.
Reimplemented in ACFDTD22MemEfficient.
|
virtual |
Engine to handle the hard acoustic pressure source.
Reimplemented in ACFDTD22MemEfficient.
|
virtual |
Engine to handle the hard plane wave source.
On the boundary conditions, if BC_PRESS is specified on a boundary, the acoustic pressure is set to 0 on that boundary.
If BC_RIGID is specified on a boundary, the particle velocity normal to the boundary is set to 0.
If BC_PERIODIC is specifified on a boundary, then it is assumed that BC_PERIODIC is also specified on the opposite boundary. The values of the acoustic pressure on the positive boundary are copied to the values of the acoustic pressure on the negative boundary to impose the periodicity.
Reimplemented in ACFDTD22MemEfficient.
|
virtual |
|
virtual |
Update the cofficients pra, prb, prc, prd, pred and uya, uyb, uyc, uza, uzb, uzc.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protected |
populated in ACFDTD22::calcCoefficients()
|
protected |
temporal step.
Initialized in calcCoefficient().
|
protected |
Central frequency.
|
protected |
Initialized in ACFDTD22::execute().
|
private |
|
private |
|
private |
|
private |
|
private |
|
protected |
CFL number.
|
protected |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |