hp1D::IdentityParallel< F > Class Template Referenceabstract

A function class to calculate element matrices for the mass matrix for elements that are shifted. More...

#include <bilinearForm.hh>

Inheritance diagram for hp1D::IdentityParallel< F >:
concepts::BilinearForm< Real, Real > hp1D::BilinearFormHelper< 0, 0, Real > concepts::Cloneable concepts::OutputOperator

Public Member Functions

virtual IdentityParallel< F > * clone () const
 Virtual constructor. More...
 
virtual BilinearForm * clone () const=0
 Virtual constructor. More...
 
 IdentityParallel (const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >(), const concepts::Real3d shiftX=concepts::Real3d(), const concepts::Real3d shiftY=concepts::Real3d(), const bool negShift=false)
 Constructor. More...
 
void operator() (const concepts::Element< Real > &elmX, const concepts::Element< Real > &elmY, concepts::ElementMatrix< F > &em) const
 
virtual void operator() (const Element< Real > &elmX, const Element< Real > &elmY, ElementMatrix< Real > &em) const=0
 Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em. More...
 
virtual void operator() (const Element< Real > &elmX, const Element< Real > &elmY, ElementMatrix< Real > &em, const ElementPair< Real > &ep) const
 Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em. More...
 
virtual ~IdentityParallel ()
 

Protected Member Functions

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

Private Attributes

const bool negShift_
 
const concepts::Point< Real, 3 > shiftX_
 
const concepts::Point< Real, 3 > shiftY_
 

Detailed Description

template<class F = Real>
class hp1D::IdentityParallel< F >

A function class to calculate element matrices for the mass matrix for elements that are shifted.

There are two independent coordinate shifts for the trial and test function. In contrast to hp1D::Identity the elements do not need to have overlapping support but their shifted start and end points have to be identical. Note that the orientation of the two elements may also be of reverse direction. If negShift is set to true it is checked as well whether a coordinate shift with opposite sign matches the criterion.

Author
Dirk Klindworth, 2011

Definition at line 93 of file bilinearForm.hh.

Constructor & Destructor Documentation

◆ IdentityParallel()

template<class F = Real>
hp1D::IdentityParallel< F >::IdentityParallel ( const concepts::ElementFormulaContainer< F >  frm = concepts::ElementFormulaContainer< F >(),
const concepts::Real3d  shiftX = concepts::Real3d(),
const concepts::Real3d  shiftY = concepts::Real3d(),
const bool  negShift = false 
)

Constructor.

Parameters
frmFormula of the bilinear form
shiftXCoordinate shift of the trial function
shiftYCoordinate shift of the test function
negShiftBoolean indicating whether shift can be understood also in negative direction

◆ ~IdentityParallel()

template<class F = Real>
virtual hp1D::IdentityParallel< F >::~IdentityParallel ( )
virtual

Member Function Documentation

◆ clone() [1/2]

template<class F = Real>
virtual IdentityParallel<F>* hp1D::IdentityParallel< F >::clone ( ) const
virtual

Virtual constructor.

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

Implements concepts::Cloneable.

◆ clone() [2/2]

virtual BilinearForm* concepts::BilinearForm< Real , Real >::clone ( ) const
pure virtualinherited

Virtual constructor.

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

◆ info()

template<class F = Real>
virtual std::ostream& hp1D::IdentityParallel< F >::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::BilinearForm< Real, Real >.

◆ operator()() [1/3]

template<class F = Real>
void hp1D::IdentityParallel< F >::operator() ( const concepts::Element< Real > &  elmX,
const concepts::Element< Real > &  elmY,
concepts::ElementMatrix< F > &  em 
) const

◆ operator()() [2/3]

virtual void concepts::BilinearForm< Real , Real >::operator() ( const Element< G > &  elmX,
const Element< G > &  elmY,
ElementMatrix< F > &  em 
) const
pure virtualinherited

Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em.

Postcondition
The returned matrix em has the correct size.
Parameters
elmXLeft element (test functions)
elmYRight element (trial functions)
emReturn element matrix

◆ operator()() [3/3]

virtual void concepts::BilinearForm< Real , Real >::operator() ( const Element< G > &  elmX,
const Element< G > &  elmY,
ElementMatrix< F > &  em,
const ElementPair< G > &  ep 
) const
inlinevirtualinherited

Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em.

If this method is not reimplemented in a derived class, the default behaviour is to call the application operator without ep.

Postcondition
The returned matrix em has the correct size.
Parameters
elmXLeft element
elmYRight element
emReturn element matrix
epElement pair holding more information on the pair elmX and elmY

Definition at line 57 of file bilinearForm.hh.

Member Data Documentation

◆ negShift_

template<class F = Real>
const bool hp1D::IdentityParallel< F >::negShift_
private

Definition at line 122 of file bilinearForm.hh.

◆ shiftX_

template<class F = Real>
const concepts::Point<Real,3> hp1D::IdentityParallel< F >::shiftX_
private

Definition at line 120 of file bilinearForm.hh.

◆ shiftY_

template<class F = Real>
const concepts::Point<Real,3> hp1D::IdentityParallel< F >::shiftY_
private

Definition at line 121 of file bilinearForm.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