MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
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< real_t > &length_)
 
const Array2D< real_t > & GetCompDomainBdr ()
 Return Computational Domain Boundary.
 
const Array2D< real_t > & GetDomainBdr ()
 Return Domain Boundary.
 
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 SetOmega (real_t omega_)
 
void SetEpsilonAndMu (real_t epsilon_, real_t mu_)
 
void StretchFunction (const Vector &x, std::vector< std::complex< real_t > > &dxs)
 PML complex stretching function.
 

Public Attributes

int dim
 
real_t omega
 
real_t epsilon = 1.0
 
real_t 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< real_t > & 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< real_t > & mfem::CartesianPML::GetCompDomainBdr ( )
inline

Return Computational Domain Boundary.

Definition at line 52 of file pml.hpp.

◆ GetDomainBdr()

const Array2D< real_t > & 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 70 of file pml.cpp.

◆ SetEpsilonAndMu()

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

Definition at line 65 of file pml.hpp.

◆ SetOmega()

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

Definition at line 64 of file pml.hpp.

◆ StretchFunction()

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

PML complex stretching function.

Definition at line 130 of file pml.cpp.

Member Data Documentation

◆ dim

int mfem::CartesianPML::dim

Definition at line 46 of file pml.hpp.

◆ epsilon

real_t mfem::CartesianPML::epsilon = 1.0

Definition at line 49 of file pml.hpp.

◆ mu

real_t mfem::CartesianPML::mu = 1.0

Definition at line 50 of file pml.hpp.

◆ omega

real_t mfem::CartesianPML::omega

Definition at line 47 of file pml.hpp.


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