Helmholtz with PML¶
The following routines return a simple second-order discretization of the constant coefficient Helmholtz equation over \([0,1]^d\) with Perfectly Matched Layer boundary conditions with profile defined by the amplitude \(\sigma\) and exponent pmlExp, discretized over numPmlPoints grid points.
C++ API¶
-
void
HelmholtzPML
(Matrix<Complex<Real>> &H, Int n, Complex<Real> shift, Int numPmlPoints, Real sigma, Real pmlExp)¶
-
void
HelmholtzPML
(AbstractDistMatrix<Complex<Real>> &H, Int n, Complex<Real> shift, Int numPmlPoints, Real sigma, Real pmlExp)¶ 1D Helmholtz
-
void
HelmholtzPML
(Matrix<Complex<Real>> &H, Int nx, Int ny, Complex<Real> shift, Int numPmlPoints, Real sigma, Real pmlExp)¶
-
void
HelmholtzPML
(AbstractDistMatrix<Complex<Real>> &H, Int nx, Int ny, Complex<Real> shift, Int numPmlPoints, Real sigma, Real pmlExp)¶ 2D Helmholtz
C API¶
-
ElError
ElHelmholtzPML1D_c
(ElMatrix_c H, ElInt nx, complex_float omega, ElInt numPmlPoints, float sigma, float pmlExp)¶
-
ElError
ElHelmholtzPML1D_z
(ElMatrix_z H, ElInt nx, complex_double omega, ElInt numPmlPoints, double sigma, double pmlExp)¶
-
ElError
ElHelmholtzPML1DDist_c
(ElDistMatrix_c H, ElInt nx, complex_float omega, ElInt numPmlPoints, float sigma, float pmlExp)¶
-
ElError
ElHelmholtzPML1DDist_z
(ElDistMatrix_z H, ElInt nx, complex_double omega, ElInt numPmlPoints, double sigma, double pmlExp)¶ 1D Helmholtz
-
ElError
ElHelmholtzPML2D_c
(ElMatrix_c H, ElInt nx, ElInt ny, complex_float omega, ElInt numPmlPoints, float sigma, float pmlExp)¶
-
ElError
ElHelmholtzPML2D_z
(ElMatrix_z H, ElInt nx, ElInt ny, complex_double omega, ElInt numPmlPoints, double sigma, double pmlExp)¶
-
ElError
ElHelmholtzPML2DDist_c
(ElDistMatrix_c H, ElInt nx, ElInt ny, complex_float omega, ElInt numPmlPoints, float sigma, float pmlExp)¶
-
ElError
ElHelmholtzPML2DDist_z
(ElDistMatrix_z H, ElInt nx, ElInt ny, complex_double omega, ElInt numPmlPoints, double sigma, double pmlExp)¶ 2D Helmholtz
-
ElError
ElHelmholtzPML3D_c
(ElMatrix_c H, ElInt nx, ElInt ny, ElInt nz, complex_float omega, ElInt numPmlPoints, float sigma, float pmlExp)¶
-
ElError
ElHelmholtzPML3D_z
(ElMatrix_z H, ElInt nx, ElInt ny, ElInt nz, complex_double omega, ElInt numPmlPoints, double sigma, double pmlExp)¶