82 : pml(pml_), Function(F)
89 return ((*Function)(transip, pml));
111 (*Function)(transip, pml, K);
Dynamic 2D array using row-major layout.
Class for setting up a simple Cartesian PML region.
void SetEpsilonAndMu(real_t epsilon_, real_t mu_)
const Array< int > & GetMarkedPMLElements()
Return Marker list for elements.
void SetAttributes(Mesh *mesh_, Array< int > *attrNonPML=nullptr, Array< int > *attrPML=nullptr)
Mark element in the PML region.
void StretchFunction(const Vector &x, std::vector< std::complex< real_t > > &dxs)
PML complex stretching function.
CartesianPML(Mesh *mesh_, const Array2D< real_t > &length_)
void SetOmega(real_t omega_)
const Array2D< real_t > & GetDomainBdr()
Return Domain Boundary.
const Array2D< real_t > & GetCompDomainBdr()
Return Computational Domain Boundary.
Base class Coefficients that optionally depend on space and time. These are used by the BilinearFormI...
Data type dense matrix using column-major storage.
void SetSize(int s)
Change the size of the DenseMatrix to s x s.
Class for integration point with weight.
Base class for Matrix Coefficients that optionally depend on time and space.
virtual real_t Eval(ElementTransformation &T, const IntegrationPoint &ip)
Evaluate the coefficient in the element described by T at the point ip.
PmlCoefficient(real_t(*F)(const Vector &, CartesianPML *), CartesianPML *pml_)
PmlMatrixCoefficient(int dim, void(*F)(const Vector &, CartesianPML *, DenseMatrix &), CartesianPML *pml_)
virtual void Eval(DenseMatrix &K, ElementTransformation &T, const IntegrationPoint &ip)
Evaluate the matrix coefficient in the element described by T at the point ip, storing the result in ...
real_t detJ_r_function(const Vector &x, CartesianPML *pml)
PML stretching functions: See https://doi.org/10.1006/jcph.1994.1159.
void Jt_J_detJinv_r_function(const Vector &x, CartesianPML *pml, DenseMatrix &M)
void abs_Jt_J_detJinv_2_function(const Vector &x, CartesianPML *pml, DenseMatrix &M)
void detJ_Jt_J_inv_r_function(const Vector &x, CartesianPML *pml, DenseMatrix &M)
void Jt_J_detJinv_i_function(const Vector &x, CartesianPML *pml, DenseMatrix &M)
real_t abs_detJ_2_function(const Vector &x, CartesianPML *pml)
real_t detJ_i_function(const Vector &x, CartesianPML *pml)
void abs_detJ_Jt_J_inv_2_function(const Vector &x, CartesianPML *pml, DenseMatrix &M)
void detJ_Jt_J_inv_i_function(const Vector &x, CartesianPML *pml, DenseMatrix &M)