pml_formula.h
Go to the documentation of this file.
376 virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real3d &p, const Real t=0.0) const
382 virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real2d &p, const Real t=0.0) const
388 virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real p, const Real t=0.0) const
698 virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real3d &p, const Real t=0.0) const
703 virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real2d &p, const Real t=0.0) const
708 virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real p, const Real t=0.0) const
770 virtual F operator() (const ElementWithCell< Real > &elm, const Real3d &p, const Real t=0.0) const
776 virtual F operator() (const ElementWithCell< Real > &elm, const Real2d &p, const Real t=0.0) const
808 return os << "FormulaPMLBoxRestriction(" << formula << " :" << *sigma_x << ", " << sigma_y << ")))";
900 virtual Cmplx operator() (const ElementWithCell< Real > &elm, const Real2d &p, const Real t = 0.0) const
905 case AD1: return (gammaB(px)/gamma(px)*c_c(px) + gamma(px)/gammaB(px)*s_s(px)) * (coeff_a)(elm, p);
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Definition: pml_formula.h:424
virtual std::ostream & info(std::ostream &os) const
Definition: pml_formula.h:42
FormulaExpImag2DGrad(const Real2d k, const Cmplx u=1.0, Real2d x0=Real2d(0, 0))
Definition: pml_formula.h:139
virtual F operator()(const concepts::ElementWithCell< Real > &elm, const Real p, const Real t=0.0) const
Definition: pml_formula.h:212
virtual FormulaExpImag2DGrad * clone() const
Definition: pml_formula.h:143
#define conceptsThrowSimpleE(msg)
Throws a equivalent to conceptsAssert(false, exc)
Definition: exceptions.hh:411
Class for the function for radial PML, see INRIA report of Collino & Monk.
Definition: pml_formula.h:551
virtual std::ostream & info(std::ostream &os) const
Definition: pml_formula.h:537
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Definition: pml_formula.h:914
Piecewise constant function defined by the attribute of a cell.
Definition: formula.hh:84
RCP< concepts::FormulaExpImag2D > u_inc
Definition: pml_formula.h:431
virtual F operator()(const concepts::ElementWithCell< G > &elm, const Real p, const Real t=0.0) const
Definition: pml_formula.h:330
FormulaExpImag2DRadialDer(const Real2d k, const Cmplx u=1.0)
Definition: pml_formula.h:94
Computes the scalar product <n, vf> of the normal n with a vector valued formula vf,...
Definition: pml_formula.h:195
FormulaPMLPowerSigma2D(const Real offset, const int power=2, const F sigma0=5.0, const Real2d ¢er=Real2d(0, 0))
Definition: pml_formula.h:553
bool inPMLregion(const concepts::Real2d &p, const Real t=0.0)
Definition: pml_formula.h:565
virtual F operator()(const Real p, const Real t=0.0) const
Application operator.
Definition: pml_formula.h:509
concepts::Real arg(const concepts::Point< concepts::Real, 2 > &p)
Returns the phase angle of a real 2D vector.
const ElementFormulaContainer< Cmplx > coeff_a
globally defined material, piecewise constant dielectric
Definition: pml_formula.h:920
A cell in a mesh consist of topological information (neighbours, connectivity, orientation) and geome...
Definition: cell.hh:39
RCP< concepts::Formula< Real > > sigmaB
sigma bar function, given in the above article page 2067, the average of sigma
Definition: pml_formula.h:925
Real3d elemMap(const Real coord_local) const
Definition: element.hh:86
concepts::ElementFormulaContainer< Cmplx > coeff_a
Definition: pml_formula.h:428
FormulaPMLPowerSigma(const Real offset, const int power=2, const F sigma0=5.0, const Real center=0)
Definition: pml_formula.h:490
virtual Cmplx operator()(const Real p, const Real t=0.0) const
Application operator.
Definition: pml_formula.h:31
virtual FormulaExpImag2D * clone() const
Definition: pml_formula.h:59
virtual concepts::Point< F, DIM > operator()(const concepts::ElementWithCell< G > &elm, const Real p, const Real t=0.0) const
Definition: pml_formula.h:284
ComposeFormulaMatVec(RCP< const ElementFormula< concepts::Mapping< F, DIM >, G > > A, RCP< const ElementFormula< concepts::Point< F, DIM >, G > > vf)
Definition: pml_formula.h:272
FormulaIncPlaneWaveSource(ElementFormulaContainer< Cmplx > coeff_a, ElementFormulaContainer< Cmplx > coeff_b, RCP< concepts::FormulaExpImag2D > u_inc)
Definition: pml_formula.h:362
virtual std::ostream & info(std::ostream &os) const
Definition: pml_formula.h:123
RCP< concepts::ElementFormula< F > > formula
Definition: pml_formula.h:813
#define DEBUGL(doit, msg)
RCP< const concepts::ElementFormula< Cmplx > > coeff_b
Definition: pml_formula.h:748
virtual F operator()(const Real p, const Real t=0.0) const
Application operator.
Definition: pml_formula.h:561
bool inPMLregion(const concepts::Real2d &p, const Real t=0.0)
Definition: pml_formula.h:628
virtual std::ostream & info(std::ostream &os) const
Definition: pml_formula.h:661
FormulaPMLPowerSigmaB2D(const Real offset, const int power=2, const F sigma0=5.0, const Real2d ¢er=Real2d(0, 0))
Definition: pml_formula.h:616
RCP< concepts::Formula< Real > > sigma
sigma function, which takes the general form of
Definition: pml_formula.h:923
FormulaPMLBoxRestriction(RCP< concepts::FormulaPMLPowerSigma< Real > > sigma_x, RCP< concepts::FormulaPMLPowerSigma< Real > > sigma_y, RCP< concepts::ElementFormula< F, G > > formula)
Definition: pml_formula.h:760
virtual Cmplx2d operator()(const Real p, const Real t=0.0) const
Application operator.
Definition: pml_formula.h:147
RCP< concepts::Formula< Real > > sigma_x
Definition: pml_formula.h:749
virtual Cmplx operator()(const Real p, const Real t=0.0) const
Application operator.
Definition: pml_formula.h:63
FormulaPMLCart(RCP< const ElementFormula< Cmplx > > coeff_a, RCP< const ElementFormula< Cmplx > > coeff_b, RCP< concepts::Formula< Real > > sigma_x, RCP< concepts::Formula< Real > > sigma_y, PMLMode mode, double omega)
Definition: pml_formula.h:678
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Definition: pml_formula.h:348
virtual Cmplx operator()(const ElementWithCell< Real > &elm, const Real3d &p, const Real t=0.0) const
Definition: pml_formula.h:698
virtual std::ostream & info(std::ostream &os) const
Definition: pml_formula.h:170
RCP< concepts::FormulaPMLPowerSigma< Real > > sigma_x
Definition: pml_formula.h:811
Interface for a formula defined element by element.
Definition: elementFormula.hh:35
concepts::ElementFormulaContainer< Cmplx > coeff_b
Definition: pml_formula.h:428
FormulaExpImag1D(const Real k, const Cmplx u=1.0, Real x0=0.0)
Definition: pml_formula.h:24
virtual F operator()(const ElementWithCell< Real > &elm, const Real3d &p, const Real t=0.0) const
Definition: pml_formula.h:770
F dot(const Point< F, dim > &b) const
Inner product, i.e. for complex arguments: this * conjugate(b)
static PiecewiseConstFormula< Cmplx > genTMCoeff(const MID &attToEps)
Definition: pml_formula.h:434
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Definition: pml_formula.h:304
ComposeFormulaVecEntry(RCP< const ElementFormula< concepts::Point< F, DIM >, G > > vf, int index)
Definition: pml_formula.h:318
static Real powi(Real x, int power)
Definition: pml_formula.h:525
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Definition: pml_formula.h:254
FormulaNormalOuterSP2D(const ElementFormulaContainer< concepts::Point< F, 2 > > vf, Real2d center=Real2d(0, 0), bool direction=OUTER)
Definition: pml_formula.h:200
const ElementFormulaContainer< concepts::Point< F, 2 > > vf
Definition: pml_formula.h:258
Cmplx gamma(Real2d &p) const
Returns the parameter gamma in page 2067(no equation number) of the above article.
Definition: pml_formula.h:880
std::complex< Real > Cmplx
Type for a complex number. It also depends on the setting of Real.
Definition: typedefs.hh:39
Cmplx gammaB(Real2d &p) const
Returns the parameter gamma bar in page 2067(no equation number) of the above article.
Definition: pml_formula.h:884
RCP< const ElementFormula< concepts::Point< F, DIM >, G > > vf
Definition: pml_formula.h:352
const ElementFormulaContainer< Cmplx > coeff_b
Definition: pml_formula.h:921
RCP< concepts::FormulaPMLPowerSigma< Real > > sigma_y
Definition: pml_formula.h:812
FormulaExpImag2D(const Real2d k, const Cmplx u=1.0, Real2d x0=0.0)
Definition: pml_formula.h:56
virtual FormulaPMLPowerSigmaB2D * clone() const
Definition: pml_formula.h:620
Point< F, dim > & ortho(const Point< F, dim > &a)
Change vector to the by 90 degrees (clockwise) rotated vector a (only 2D)
Definition: pml_formula.h:488
virtual Cmplx operator()(const Real p, const Real t=0.0) const
Application operator.
Definition: pml_formula.h:101
virtual Cmplx operator()(const ElementWithCell< Real > &elm, const Real3d &p, const Real t=0.0) const
Definition: pml_formula.h:868
Computes the Matrix-vector product A * vf, where A is a matrix valued formula and vf a vector valued ...
Definition: pml_formula.h:270
virtual FormulaPMLPowerSigma2D * clone() const
Definition: pml_formula.h:557
virtual const Cell & cell() const =0
Returns the cell on which the element is built.
static PiecewiseConstFormula< Cmplx > genTECoeff(const MID &attToEps)
Definition: pml_formula.h:463
RCP< const concepts::ElementFormula< Cmplx > > coeff_a
Definition: pml_formula.h:747
virtual FormulaExpImag1D * clone() const
Definition: pml_formula.h:27
Class for the function for radial PML, see INRIA report of Collino & Monk.
Definition: pml_formula.h:614
bool inPMLregion(const concepts::Real p, const Real t=0.0)
Definition: pml_formula.h:502
virtual FormulaExpImag2DRadialDer * clone() const
Definition: pml_formula.h:97
virtual F operator()(const Real p, const Real t=0.0) const
Application operator.
Definition: pml_formula.h:624
virtual std::ostream & info(std::ostream &os) const
Definition: pml_formula.h:79
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)
Constructor.
Definition: pml_formula.h:849
RCP< const ElementFormula< concepts::Point< F, DIM >, G > > vf
Definition: pml_formula.h:309
RCP< const ElementFormula< concepts::Mapping< F, DIM >, G > > A
Definition: pml_formula.h:308
virtual std::ostream & info(std::ostream &os) const
Definition: pml_formula.h:598
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Definition: pml_formula.h:807
static Real powi(Real x, int power)
Definition: pml_formula.h:649
RCP< concepts::Formula< Real > > sigma_y
Definition: pml_formula.h:750
virtual FormulaPMLPowerSigma * clone() const
Definition: pml_formula.h:498
virtual Cmplx operator()(const ElementWithCell< Real > &elm, const Real3d &p, const Real t=0.0) const
Definition: pml_formula.h:376
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Definition: pml_formula.h:740
static Real powi(Real x, int power)
Definition: pml_formula.h:586