MFEM  v4.6.0
Finite element discretization library
Public Member Functions | Public Attributes | List of all members
mfem::CartesianPML Class Reference

Class for setting up a simple Cartesian PML region. More...

#include <pml.hpp>

Public Member Functions

 CartesianPML (Mesh *mesh_, const Array2D< double > &length_)
 
const Array2D< double > & GetCompDomainBdr ()
 Return Computational Domain Boundary. More...
 
const Array2D< double > & GetDomainBdr ()
 Return Domain Boundary. More...
 
const Array< int > & GetMarkedPMLElements ()
 Return Marker list for elements. More...
 
void SetAttributes (Mesh *mesh_, Array< int > *attrNonPML=nullptr, Array< int > *attrPML=nullptr)
 Mark element in the PML region. More...
 
void SetOmega (double omega_)
 
void SetEpsilonAndMu (double epsilon_, double mu_)
 
void StretchFunction (const Vector &x, std::vector< std::complex< double >> &dxs)
 PML complex stretching function. More...
 

Public Attributes

int dim
 
double omega
 
double epsilon = 1.0
 
double mu = 1.0
 

Detailed Description

Class for setting up a simple Cartesian PML region.

Definition at line 18 of file pml.hpp.

Constructor & Destructor Documentation

◆ CartesianPML()

mfem::CartesianPML::CartesianPML ( Mesh mesh_,
const Array2D< double > &  length_ 
)

Constructor of the PML region using the mesh mesh_ and the 2D array of size (dim,2) length_ which represents the length of the PML in each direction.

Definition at line 17 of file pml.cpp.

Member Function Documentation

◆ GetCompDomainBdr()

const Array2D<double>& mfem::CartesianPML::GetCompDomainBdr ( )
inline

Return Computational Domain Boundary.

Definition at line 52 of file pml.hpp.

◆ GetDomainBdr()

const Array2D<double>& mfem::CartesianPML::GetDomainBdr ( )
inline

Return Domain Boundary.

Definition at line 55 of file pml.hpp.

◆ GetMarkedPMLElements()

const Array<int>& mfem::CartesianPML::GetMarkedPMLElements ( )
inline

Return Marker list for elements.

Definition at line 58 of file pml.hpp.

◆ SetAttributes()

void mfem::CartesianPML::SetAttributes ( Mesh mesh_,
Array< int > *  attrNonPML = nullptr,
Array< int > *  attrPML = nullptr 
)

Mark element in the PML region.

Definition at line 68 of file pml.cpp.

◆ SetEpsilonAndMu()

void mfem::CartesianPML::SetEpsilonAndMu ( double  epsilon_,
double  mu_ 
)
inline

Definition at line 65 of file pml.hpp.

◆ SetOmega()

void mfem::CartesianPML::SetOmega ( double  omega_)
inline

Definition at line 64 of file pml.hpp.

◆ StretchFunction()

void mfem::CartesianPML::StretchFunction ( const Vector x,
std::vector< std::complex< double >> &  dxs 
)

PML complex stretching function.

Definition at line 128 of file pml.cpp.

Member Data Documentation

◆ dim

int mfem::CartesianPML::dim

Definition at line 46 of file pml.hpp.

◆ epsilon

double mfem::CartesianPML::epsilon = 1.0

Definition at line 49 of file pml.hpp.

◆ mu

double mfem::CartesianPML::mu = 1.0

Definition at line 50 of file pml.hpp.

◆ omega

double mfem::CartesianPML::omega

Definition at line 47 of file pml.hpp.


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