Class documentation of Concepts

Loading...
Searching...
No Matches
concepts::FormulaPMLRadia Class Referenceabstract

#include <pml_formula.h>

Inheritance diagram for concepts::FormulaPMLRadia:
concepts::ElementFormula< Cmplx > concepts::ElementFormula< Cmplx > concepts::Cloneable concepts::OutputOperator concepts::Cloneable concepts::OutputOperator

Public Types

enum  PMLMode {
  AD1 , AD2 , AS , IDENT ,
  AD1 , AD2 , AS1 , AS2 ,
  IDENT
}
 
enum  PMLMode {
  AD1 , AD2 , AS , IDENT ,
  AD1 , AD2 , AS1 , AS2 ,
  IDENT
}
 
typedef Cmplx value_type
 

Public Member Functions

 FormulaPMLRadia (const ElementFormulaContainer< Cmplx > coeff_a, const ElementFormulaContainer< Cmplx > coeff_b, RCP< concepts::Formula< Real > > sigma, RCP< concepts::Formula< Real > > sigmaB, PMLMode mode, double omega)
 
virtual FormulaPMLRadiaclone () const
 Virtual copy constructor.
 
virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real3d &p, const Real t=0.0) const
 
virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real p, const Real t=0.0) const
 
Cmplx gamma (Real2d &p) const
 Returns the parameter gamma in page 2067(no equation number) of the above article.
 
Cmplx gammaB (Real2d &p) const
 Returns the parameter gamma bar in page 2067(no equation number) of the above article.
 
Real c_c (Real2d &p) const
 
Real s_s (Real2d &p) const
 
Real s_c (Real2d &p) const
 
virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real2d &p, const Real t=0.0) const
 
 FormulaPMLRadia (RCP< Formula< Real > > sigma, RCP< Formula< Real > > sigmaB, PMLMode mode, const Real2d &center=Real2d(0, 0))
 
virtual FormulaPMLRadiaclone () const
 Virtual copy constructor.
 
virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real p, const Real t=0.0) const
 
virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real2d &p, const Real t=0.0) const
 
virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real3d &p, const Real t=0.0) const
 
RCP< Formula< Real > > sigma () const
 
RCP< Formula< Real > > sigmaB () const
 
virtual Cmplx operator() (const ElementWithCell< typename Realtype< Cmplx >::type > &elm, const Real p, const Real t=0.0) const=0
 
virtual Cmplx operator() (const ElementWithCell< typename Realtype< Cmplx >::type > &elm, const Real2d &p, const Real t=0.0) const=0
 
virtual Cmplx operator() (const ElementWithCell< typename Realtype< Cmplx >::type > &elm, const Real3d &p, const Real t=0.0) const=0
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
 
virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
 

Detailed Description

Class for PML in polar coordinates.

The class is either one of the formulas needed for PML in polar coordinates, which are determined by one of the following modes.

There are four modes of the formula. AD1 First diagonal entry of matrix A. AD2 Second diagonal entry of matrix A. AS A12 = A21 = AS IDENT The term for MASS matrix

Taken from the article: F.Collino and P.Monk, The perfectly matched layer in curvilinear coordinates, SIAM J.Sci Comput. 19(6)(1998)2061-2090"

Author
Mengyu Wang, 2010

Class for radial PML in polar coordinates.

The class provides formulas for radial PML in polar coordinates, which are determined by one of the following modes:

AD1 First diagonal entry of matrix A. AD2 Second diagonal entry of matrix A. AS Both off-diagonal entries of matrix A. IDENT The term for mass matrix

Author
Mengyu Wang, 2010

Definition at line 834 of file pml_formula.h.

Member Typedef Documentation

◆ value_type

typedef Cmplx concepts::ElementFormula< Cmplx , typename Realtype<Cmplx >::type >::value_type
inherited

Definition at line 37 of file elementFormula.hh.

Member Enumeration Documentation

◆ PMLMode [1/2]

enum concepts::FormulaPMLRadia::PMLMode

Definition at line 836 of file pml_formula.h.

◆ PMLMode [2/2]

enum concepts::FormulaPMLRadia::PMLMode

Definition at line 434 of file pml_formula.hh.

Constructor & Destructor Documentation

◆ FormulaPMLRadia() [1/2]

concepts::FormulaPMLRadia::FormulaPMLRadia ( const ElementFormulaContainer< Cmplx coeff_a,
const ElementFormulaContainer< Cmplx coeff_b,
RCP< concepts::Formula< Real > >  sigma,
RCP< concepts::Formula< Real > >  sigmaB,
PMLMode  mode,
double  omega 
)
inline

Constructor

Parameters
coeff_aElement formula for material alpha in the global domain
coeff_bElement formula for material beta in the global domain
sigmaFormula for sigma, which takes the general form of $PMLstrength*(\rho-PMLdist)^{powercoeff}$
sigmaBFormula for sigmabar in the above article, page 2067
modeMode
omegaWave number

Definition at line 849 of file pml_formula.h.

◆ FormulaPMLRadia() [2/2]

concepts::FormulaPMLRadia::FormulaPMLRadia ( RCP< Formula< Real > >  sigma,
RCP< Formula< Real > >  sigmaB,
PMLMode  mode,
const Real2d center = Real2d(0, 0) 
)

Constructor

Parameters
sigmaFunction $\sigma: \mathbb{R}^2\to\mathbb{R}$
sigmaBFunction $\overline{\sigma}: \mathbb{R}^2\to\mathbb{R}$
modeOne of the four modes

In the report of Monk & Collino (see page 2067) the functions $sigma$ and $\overline{sigma}$ are weighted by $1/\omega$. To do so, multiply the formulas in advance by this factor.

Member Function Documentation

◆ c_c()

Real concepts::FormulaPMLRadia::c_c ( Real2d p) const
inline

Definition at line 888 of file pml_formula.h.

◆ clone() [1/2]

virtual FormulaPMLRadia * concepts::FormulaPMLRadia::clone ( ) const
inlinevirtual

Virtual copy constructor.

Implements concepts::ElementFormula< Cmplx >.

Definition at line 864 of file pml_formula.h.

◆ clone() [2/2]

virtual FormulaPMLRadia * concepts::FormulaPMLRadia::clone ( ) const
inlinevirtual

Virtual copy constructor.

Implements concepts::ElementFormula< Cmplx >.

Definition at line 450 of file pml_formula.hh.

◆ gamma()

Cmplx concepts::FormulaPMLRadia::gamma ( Real2d p) const
inline

Returns the parameter gamma in page 2067(no equation number) of the above article.

Definition at line 880 of file pml_formula.h.

◆ gammaB()

Cmplx concepts::FormulaPMLRadia::gammaB ( Real2d p) const
inline

Returns the parameter gamma bar in page 2067(no equation number) of the above article.

Definition at line 884 of file pml_formula.h.

◆ info() [1/2]

virtual std::ostream & concepts::FormulaPMLRadia::info ( std::ostream &  os) const
inlineprotectedvirtual

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

Definition at line 914 of file pml_formula.h.

◆ info() [2/2]

virtual std::ostream & concepts::FormulaPMLRadia::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

◆ operator()() [1/6]

virtual Cmplx concepts::FormulaPMLRadia::operator() ( const ElementWithCell< Real > &  elm,
const Real  p,
const Real  t = 0.0 
) const
inlinevirtual

Definition at line 874 of file pml_formula.h.

◆ operator()() [2/6]

virtual Cmplx concepts::FormulaPMLRadia::operator() ( const ElementWithCell< Real > &  elm,
const Real2d p,
const Real  t = 0.0 
) const
inlinevirtual

Definition at line 900 of file pml_formula.h.

◆ operator()() [3/6]

virtual Cmplx concepts::FormulaPMLRadia::operator() ( const ElementWithCell< Real > &  elm,
const Real3d p,
const Real  t = 0.0 
) const
inlinevirtual

Definition at line 868 of file pml_formula.h.

◆ operator()() [4/6]

virtual Cmplx concepts::ElementFormula< Cmplx , typename Realtype<Cmplx >::type >::operator() ( const ElementWithCell< typename Realtype<Cmplx >::type > &  elm,
const Real  p,
const Real  t = 0.0 
) const
pure virtualinherited

Evaluates the formula.

Parameters
elmElement
pPoint in space in local element coordinates
tPoint in time

◆ operator()() [5/6]

virtual Cmplx concepts::ElementFormula< Cmplx , typename Realtype<Cmplx >::type >::operator() ( const ElementWithCell< typename Realtype<Cmplx >::type > &  elm,
const Real2d p,
const Real  t = 0.0 
) const
pure virtualinherited

Evaluates the formula.

Parameters
elmElement
pPoint in space in local element coordinates
tPoint in time

◆ operator()() [6/6]

virtual Cmplx concepts::ElementFormula< Cmplx , typename Realtype<Cmplx >::type >::operator() ( const ElementWithCell< typename Realtype<Cmplx >::type > &  elm,
const Real3d p,
const Real  t = 0.0 
) const
pure virtualinherited

Evaluates the formula.

Parameters
elmElement
pPoint in space in local element coordinates
tPoint in time

◆ s_c()

Real concepts::FormulaPMLRadia::s_c ( Real2d p) const
inline

Definition at line 896 of file pml_formula.h.

◆ s_s()

Real concepts::FormulaPMLRadia::s_s ( Real2d p) const
inline

Definition at line 892 of file pml_formula.h.

◆ sigma()

RCP< Formula< Real > > concepts::FormulaPMLRadia::sigma ( ) const
inline

Definition at line 461 of file pml_formula.hh.

◆ sigmaB()

RCP< Formula< Real > > concepts::FormulaPMLRadia::sigmaB ( ) const
inline

Definition at line 462 of file pml_formula.hh.


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