Class for radial PML in polar coordinates. More...

#include <pml_edge.hh>

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

Public Types

enum  Mode : int {
  Mode::A11, Mode::A22, Mode::A12, Mode::A21,
  Mode::M11, Mode::M22, Mode::M12, Mode::M21,
  Mode::N11, Mode::N22, Mode::N12, Mode::N21,
  Mode::IDENT, Mode::ROTROT
}
 
typedef Cmplx value_type
 

Public Member Functions

virtual FormulaPMLEdgeRadiaclone () const
 Virtual constructor. More...
 
virtual ElementFormula< Cmplx, typename Realtype< Cmplx >::type > * clone () const=0
 Virtual copy constructor. More...
 
 FormulaPMLEdgeRadia ()
 Constructor. More...
 
 FormulaPMLEdgeRadia (RCP< Formula< Real > > sigma, RCP< Formula< Real > > sigmaB, Mode mode, const Real2d &center=Real2d(0, 0))
 
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
 
virtual Cmplx operator() (const ElementWithCell< typename Realtype< Cmplx >::type > &elm, const Real p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual Cmplx operator() (const ElementWithCell< typename Realtype< Cmplx >::type > &elm, const Real2d &p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual Cmplx operator() (const ElementWithCell< typename Realtype< Cmplx >::type > &elm, const Real3d &p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
RCP< Formula< Real > > sigma () const
 
RCP< Formula< Real > > sigmaB () const
 

Protected Member Functions

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

Private Member Functions

Cmplx gamma_ (Real2d &p) const
 Returns the parameter $\gamma$ on page 2067 (no equation number) of the above article. More...
 
Cmplx gammaB_ (Real2d &p) const
 Returns the parameter $\overline{gamma}$ on page 2067 (no equation number) of the above article. More...
 

Private Attributes

Real2d center_
 Center of PML. More...
 
Mode mode_
 The choosen mode. More...
 
RCP< Formula< Real > > sigma_
 Function $\sigma: \mathbb{R}^2\to\mathbb{R}$. More...
 
RCP< Formula< Real > > sigmaB_
 Function $\overline{\sigma}: \mathbb{R}^2\to\mathbb{R}$. More...
 

Detailed Description

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:

IDENT The term for the (scalar) identity. ROTROT The term for the curl-curl. Aij The i-j-enty of the matrix function A. Mij The i-j-enty of the matrix function M. Nij The i-j-enty of the matrix function N.

Author
Vinh Tho Ma, 2016

Definition at line 30 of file pml_edge.hh.

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

◆ Mode

Enumerator
A11 
A22 
A12 
A21 
M11 
M22 
M12 
M21 
N11 
N22 
N12 
N21 
IDENT 
ROTROT 

Definition at line 32 of file pml_edge.hh.

Constructor & Destructor Documentation

◆ FormulaPMLEdgeRadia() [1/2]

concepts::FormulaPMLEdgeRadia::FormulaPMLEdgeRadia ( )

Constructor.

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

◆ FormulaPMLEdgeRadia() [2/2]

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

Member Function Documentation

◆ clone() [1/2]

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

Virtual constructor.

Returns a pointer to a copy of itself. The caller is responsible to destroy this copy.

Implements concepts::Cloneable.

Definition at line 60 of file pml_edge.hh.

◆ clone() [2/2]

virtual ElementFormula<Cmplx ,typename Realtype<Cmplx >::type >* concepts::ElementFormula< Cmplx , typename Realtype<Cmplx >::type >::clone ( ) const
pure virtualinherited

Virtual copy constructor.

◆ gamma_()

Cmplx concepts::FormulaPMLEdgeRadia::gamma_ ( Real2d p) const
inlineprivate

Returns the parameter $\gamma$ on page 2067 (no equation number) of the above article.

Definition at line 92 of file pml_edge.hh.

◆ gammaB_()

Cmplx concepts::FormulaPMLEdgeRadia::gammaB_ ( Real2d p) const
inlineprivate

Returns the parameter $\overline{gamma}$ on page 2067 (no equation number) of the above article.

Definition at line 98 of file pml_edge.hh.

◆ info()

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

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

◆ operator()() [1/6]

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

◆ operator()() [2/6]

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

◆ operator()() [3/6]

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

◆ operator()() [4/6]

virtual Cmplx concepts::ElementFormula< Cmplx , typename Realtype<Cmplx >::type >::operator() ( const ElementWithCell< G > &  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< G > &  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< G > &  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

◆ sigma()

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

Definition at line 71 of file pml_edge.hh.

◆ sigmaB()

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

Definition at line 74 of file pml_edge.hh.

Member Data Documentation

◆ center_

Real2d concepts::FormulaPMLEdgeRadia::center_
private

Center of PML.

Definition at line 87 of file pml_edge.hh.

◆ mode_

Mode concepts::FormulaPMLEdgeRadia::mode_
private

The choosen mode.

Definition at line 85 of file pml_edge.hh.

◆ sigma_

RCP<Formula<Real> > concepts::FormulaPMLEdgeRadia::sigma_
private

Function $\sigma: \mathbb{R}^2\to\mathbb{R}$.

Definition at line 81 of file pml_edge.hh.

◆ sigmaB_

RCP<Formula<Real> > concepts::FormulaPMLEdgeRadia::sigmaB_
private

Function $\overline{\sigma}: \mathbb{R}^2\to\mathbb{R}$.

Definition at line 83 of file pml_edge.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich