Formula for plane wave source in layered structure. More...

#include <sources.hh>

Inheritance diagram for concepts::FormulaLayerPlaneWaveTotal:
concepts::PiecewiseFormula< Cmplx > concepts::PiecewiseFormulaBase< Cmplx > concepts::ElementFormula< Cmplx, concepts::Realtype< Cmplx >::type > concepts::Cloneable concepts::OutputOperator

Public Types

typedef concepts::Realtype< Cmplx >::type G
 
typedef Cmplx value_type
 

Public Member Functions

virtual PiecewiseFormula< Cmplx > * clone () const
 Virtual constructor. More...
 
virtual Cloneableclone () const =0
 Virtual constructor. More...
 
virtual Cmplxdflt_value ()
 Gives default value. More...
 
virtual const Cmplxdflt_value () const
 Gives default value. More...
 
 FormulaLayerPlaneWaveTotal (const Vector< Real > &epsilon, const Vector< Real > &d, const Real kx, const Real omega, const std::map< int, int > phystolayer)
 Constructor. More...
 
void multiply (const H &factor)
 Multiplies all values with this factor. More...
 
void multiply (const uint attrib, const H &factor)
 Multiply the formula with attribute attrib with this factor. More...
 
virtual Cmplx operator() (const Connector &cell, const Real p, const Real t=0.0) const
 Gives the value in an particular cell. More...
 
virtual Cmplx operator() (const Connector &cell, const Real2d &p, const Real t=0.0) const
 
virtual Cmplx operator() (const Connector &cell, const Real3d &p, const Real t=0.0) const
 
virtual Cmplx operator() (const ElementWithCell< concepts::Realtype< Cmplx >::type > &elm, const Real p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual Cmplx operator() (const ElementWithCell< concepts::Realtype< Cmplx >::type > &elm, const Real2d &p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual Cmplx operator() (const ElementWithCell< concepts::Realtype< Cmplx >::type > &elm, const Real3d &p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual Cmplx operator() (const ElementWithCell< G > &elm, const Real p, const Real t=0.0) const
 
virtual Cmplx operator() (const ElementWithCell< G > &elm, const Real2d &p, const Real t=0.0) const
 
virtual Cmplx operator() (const ElementWithCell< G > &elm, const Real3d &p, const Real t=0.0) const
 
void set (const uint attrib, const Cmplx a)
 
void set (const uint attrib, const Formula< Cmplx > &formula)
 Set the constant in an particular cell. More...
 
 ~FormulaLayerPlaneWaveTotal ()
 

Protected Member Functions

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

Protected Attributes

HashMap< FormulaFactor > formula_
 Mapping from the elements on to the formula. More...
 

Private Attributes

Cmplx dflt_value_
 default value More...
 

Detailed Description

Formula for plane wave source in layered structure.

This Formula build the layer plane wave

Author
Adrien Semin, 2016

Definition at line 1085 of file sources.hh.

Member Typedef Documentation

◆ G

Definition at line 45 of file piecewiseFormula.hh.

◆ value_type

Definition at line 37 of file elementFormula.hh.

Constructor & Destructor Documentation

◆ FormulaLayerPlaneWaveTotal()

concepts::FormulaLayerPlaneWaveTotal::FormulaLayerPlaneWaveTotal ( const Vector< Real > &  epsilon,
const Vector< Real > &  d,
const Real  kx,
const Real  omega,
const std::map< int, int >  phystolayer 
)
inline

Constructor.

Parameters
epsilonVector containing the $\varepsilon$ parameter, per layer, of size $N$
dVector containing the decreasing values of layer separation, of size $N-1$
kxWave number in the $x$-direction
omegaFrequency
phystolayerMapping from physical attributes to layer attributes.

For any cell that has a physical attribute p, and a layer attribute l, we consider that

  • l=0 : the cell is above the line $y=d(0)$
  • l=N-1 : the cell is below the line $y=d(N-1)$
  • other case : the cell is between the lines $y=d(l)$ and $y=d(l-1)$

Definition at line 1102 of file sources.hh.

◆ ~FormulaLayerPlaneWaveTotal()

concepts::FormulaLayerPlaneWaveTotal::~FormulaLayerPlaneWaveTotal ( )
inline

Definition at line 1188 of file sources.hh.

Member Function Documentation

◆ clone() [1/2]

virtual PiecewiseFormula<Cmplx >* concepts::PiecewiseFormula< Cmplx >::clone
virtualinherited

Virtual constructor.

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

Implements concepts::PiecewiseFormulaBase< Cmplx >.

◆ clone() [2/2]

virtual Cloneable* concepts::Cloneable::clone ( ) const
pure virtualinherited

Virtual constructor.

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

Implemented in concepts::BilinearForm< F, G >, hp2D::PolyEdgeRule, concepts::Operation< F >, concepts::MappingEdge2d, concepts::ElementFormulaVectorBase< F, G, H, I >, concepts::PiecewiseFormulaBase< F >, concepts::ElementFormula< F, G >, concepts::ExplicitResidual< F >, concepts::LocalEstimator< F >, concepts::FormulaIncPlaneWaveSource, concepts::ComposeFormulaVecEntry< F, DIM, G >, concepts::ComposeFormulaMatVec< F, DIM, G >, concepts::FormulaNormalOuterSP2D< F >, concepts::FrmE_PMLTransformation< dim >, concepts::FormulaPMLHamburger, concepts::FormulaPMLCartNew, concepts::FormulaPMLRadia, concepts::FormulaPMLBoxRestriction< F, G >, concepts::FormulaPMLCart, concepts::FormulaPMLEdgeRadia, concepts::SourceFunctionF0_y, concepts::SourceFunctionF0_x, concepts::FrmE_ScalarProductNormalEdge2d< F >, concepts::ElementFormulaRotate2D< F >, concepts::ElementFormulaBoundary, concepts::ElementFormulaCompose< F, G, H >, concepts::ElementFormulaLiCo< F, G, H, J >, concepts::BilinearF_W< F, H, J, G >, concepts::BilinearF_Sum< F, H, J, G >, concepts::BilinearFormContainer< F, G >, concepts::BilinearFormLiCo< F, G >, linearFEM::Identity2d, linearFEM::Laplace2d, linearFEM::CIdentity1d, linearFEM::Identity1d, linearFEM::Laplace1d, linDG3D::LaplaceVolBF, linDG3D::Identity, linDG2D::LaplaceStabBf, linDG2D::LaplaceFluxBf, linDG2D::LaplaceVolBf, linDG2D::IdentityBf, linDG1D::BoundaryIntStab, linDG1D::BoundaryInt, hp3D::ElementFormulaVectorOnTrace< dim, F, G >, hp3D::RotRot, hp3D::MaxwellSharedData, hp3D::FormulaFromWeight< Weight >, hp3D::DivDiv< Weight >, hp3D::Advection< F >, hp3D::Identity< F >, hp3D::Laplace< F >, hp3D::BilinearFormTwoPartDeriv< F >, hp3D::LinearElasticity< F >, hp2Dedge::EdgeIdentity, hp2Dedge::Rotuv, hp2Dedge::RotRot< F >, hp2Dedge::IdentityMatrix< F >, hp2Dedge::Identity< F >, hp2Dedge::GraduvMatrix< F >, hp2Dedge::Graduv< F >, concepts::DirichletElementFormula< F, G >, hp2D::RotRot, hp2D::MaxwellSharedData, hp2D::FormulaFromWeight< Weight >, hp2D::ElementFormulaSignNormalVector, hp2D::ElementFormulaEdgeJump< F >, hp2D::ElementFormulaEdgeMean< F >, hp2D::ElementFormulaInterpGradN< F, 2 >, hp2D::ElementFormulaInterpGrad< F, 2 >, hp2D::H1Extension< F >, hp2D::PolyEdgeMinNeighMaxChild, hp2D::PolyEdgeMin, hp2D::PolyEdgeMax, hp2D::DivDiv< Weight >, hp2D::BilinearFormTwoPartDeriv< F >, hp2D::BilinearFormOnePartDeriv< F >, hp2D::LaplaceMatrix< F >, hp2D::Laplace< F >, hp2D::Identity< F >, hp2D::Advection< F >, hp1D::ElementFormulaInterpGrad< F >, hp1D::Mean2Jump1< F >, hp1D::Jump1Jump1< F >, hp1D::BiLaplace< F >, hp1D::IdentityParallel< F >, hp1D::Identity< F >, hp1D::Laplace< F >, concepts::SharedJacobianAdj< dim >, concepts::SharedJacobianDet, concepts::FrmE_NormalVector3d, concepts::FrmE_TangentialVector, concepts::FrmE_NormalVector, concepts::CurvatureElementFormula, concepts::PiecewiseFormulaCombine< F, G, H, I >, concepts::PiecewiseFormulaFun< F, G >, concepts::OpRecipr< F >, concepts::OpAdd< F >, concepts::OpMult< F >, concepts::PiecewiseElementFormula< F, G >, concepts::PiecewiseFormula< F >, concepts::PiecewiseConstDynArrayFormula< F >, concepts::PiecewiseConstFormula< F >, concepts::PiecewiseFormula0< F >, concepts::MappingQuadEdge2d, concepts::MappingParallelEdge2d, concepts::ParabelMappingEdge2d, concepts::EllipseMappingEdge2d, concepts::CircleMappingEdge2d, concepts::MappingStraightEdge2d, concepts::InverseMappingEdge2d, concepts::PartMappingEdge2d, concepts::PiecewiseFormulaVector< 1, F, G, H >, concepts::PiecewiseFormulaVector< dim, F, G, H >, concepts::ElementFormulaVector< 1, F, G, H >, concepts::ElementFormulaVector< dim, F, G, H >, concepts::VectorElementFormulaBase< F, dim, G >, concepts::MatrixElementFormula< F, dim, G >, concepts::FrmE_Sum< F, H, J, G >, concepts::FrmE_Product< F, H, J, G >, concepts::FrmE_Trace< dim, F, G >, concepts::FrmE_PointsToMapping< 2, F, G >, concepts::FrmE_PointToMapping< dim, F, G >, concepts::FrmE_Inverse< F, G >, concepts::FrmE_Conjugate< F, G >, concepts::FrmE_Component_Matrix< F, G, H >, concepts::FrmE_Component< F, G, H >, concepts::ElementFormulaContainer< F, G >, estimator::KeysInfo< F >, estimator::PolynomialDegrees< dim >, hp2D::ImplicitEquilibratedA0< F >, hp2D::LocalFluxes, hp2D::Fluxes, hp2D::ExplicitResidual2D< F >, hp2D::ExplicitResidual2D< F >::EdgeWeight, hp2D::ExplicitResidual2D< F >::Distance, estimator::LocalProjections_P< dim, F, H >, estimator::LocalProjections_S< F, H >, constraints::ConstraintsList< F >, bem::AdaptLaplaceSL01< F >, bem::AdaptLaplaceDL01< F >, bem::AdaptLaplaceDL00< F >, bem::ArbKrnl000< F, K >, bem::Identity< F >, bem::LaplaceHyp< F >, bem::LaplacePLD< F >, bem::LaplaceDL< F >, bem::LaplaceSL< F >, concepts::FormulaPMLRadia, concepts::FormulaPMLBoxRestriction< F, G >, concepts::FormulaPMLCart, concepts::FormulaIncPlaneWaveSource, concepts::ComposeFormulaVecEntry< F, DIM, G >, concepts::ComposeFormulaMatVec< F, DIM, G >, concepts::FormulaNormalOuterSP2D< F >, aglowav2::WavIdentity< F >, and aglowav2::AglowavBF00< F >.

◆ dflt_value() [1/2]

virtual Cmplx & concepts::PiecewiseFormulaBase< Cmplx >::dflt_value
inlinevirtualinherited

Gives default value.

Definition at line 83 of file piecewiseFormula.hh.

◆ dflt_value() [2/2]

virtual const Cmplx & concepts::PiecewiseFormulaBase< Cmplx >::dflt_value
inlinevirtualinherited

Gives default value.

Definition at line 81 of file piecewiseFormula.hh.

◆ info()

virtual std::ostream& concepts::PiecewiseFormula< Cmplx >::info ( std::ostream &  os) const
protectedvirtualinherited

Returns information in an output stream.

Reimplemented from concepts::PiecewiseFormulaBase< Cmplx >.

◆ multiply() [1/2]

void concepts::PiecewiseFormula< Cmplx >::multiply ( const H &  factor)
inherited

Multiplies all values with this factor.

Definition at line 239 of file formula.hh.

◆ multiply() [2/2]

void concepts::PiecewiseFormula< Cmplx >::multiply ( const uint  attrib,
const H &  factor 
)
inherited

Multiply the formula with attribute attrib with this factor.

Definition at line 242 of file formula.hh.

◆ operator()() [1/9]

virtual Cmplx concepts::PiecewiseFormula< Cmplx >::operator() ( const Connector cell,
const Real  p,
const Real  t = 0.0 
) const
virtualinherited

Gives the value in an particular cell.

Implements concepts::PiecewiseFormulaBase< Cmplx >.

◆ operator()() [2/9]

virtual Cmplx concepts::PiecewiseFormula< Cmplx >::operator() ( const Connector cell,
const Real2d p,
const Real  t = 0.0 
) const
virtualinherited

◆ operator()() [3/9]

virtual Cmplx concepts::PiecewiseFormula< Cmplx >::operator() ( const Connector cell,
const Real3d p,
const Real  t = 0.0 
) const
virtualinherited

◆ operator()() [4/9]

virtual Cmplx concepts::ElementFormula< Cmplx , concepts::Realtype< Cmplx >::type >::operator() ( const ElementWithCell< concepts::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/9]

virtual Cmplx concepts::ElementFormula< Cmplx , concepts::Realtype< Cmplx >::type >::operator() ( const ElementWithCell< concepts::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/9]

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

◆ operator()() [7/9]

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

Definition at line 52 of file piecewiseFormula.hh.

◆ operator()() [8/9]

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

Definition at line 57 of file piecewiseFormula.hh.

◆ operator()() [9/9]

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

Definition at line 63 of file piecewiseFormula.hh.

◆ set() [1/2]

void concepts::PiecewiseFormula< Cmplx >::set ( const uint  attrib,
const Cmplx  a 
)
inherited

◆ set() [2/2]

void concepts::PiecewiseFormula< Cmplx >::set ( const uint  attrib,
const Formula< Cmplx > &  formula 
)
inherited

Set the constant in an particular cell.

Parameters
cellCell the value is to set
valueValue
recursiveIf flag is set all children get the same value.

Member Data Documentation

◆ dflt_value_

Cmplx concepts::PiecewiseFormulaBase< Cmplx >::dflt_value_
privateinherited

default value

Definition at line 88 of file piecewiseFormula.hh.

◆ formula_

HashMap<FormulaFactor> concepts::PiecewiseFormula< Cmplx >::formula_
protectedinherited

Mapping from the elements on to the formula.

Definition at line 258 of file formula.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