A function class to calculate element matrices for the Rot u*Rot v Bilinearform. More...

#include <rotrot.hh>

Inheritance diagram for hp2D::RotRot:
concepts::BilinearForm< Real > vectorial::Vectorizable concepts::Cloneable concepts::OutputOperator

Public Member Functions

virtual RotRotclone () const
 Virtual constructor. More...
 
virtual BilinearForm * clone () const=0
 Virtual constructor. More...
 
virtual MaxwellSharedDatadata () const
 Returns the data to be shared. More...
 
virtual void data (concepts::Cloneable *d)
 Sets the data to be shared. More...
 
virtual void operator() (const concepts::Element< Real > &elmX, const concepts::Element< Real > &elmY, concepts::ElementMatrix< Real > &em) const
 
virtual void operator() (const Element< typename Realtype< Real >::type > &elmX, const Element< typename Realtype< Real >::type > &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< typename Realtype< Real >::type > &elmX, const Element< typename Realtype< Real >::type > &elmY, ElementMatrix< Real > &em, const ElementPair< typename Realtype< Real >::type > &ep) const
 Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em. More...
 
void operator() (const Quad< Real > &elmX, const Quad< Real > &elmY, concepts::ElementMatrix< Real > &em) const
 
 RotRot (concepts::Array< Real > &jacobian, concepts::Array< concepts::MapReal2d > &jacobianInv, const Quad< Real > **oldElm, const uint i=0, const uint j=0)
 Constructor of the i.th row and j.th column of vectorial Bilinearform. More...
 
 RotRot (const uint i=0, const uint j=0)
 Constructor of the i.th row and j.th column of vectorial Bilinearform. More...
 
virtual ~RotRot ()
 

Static Public Member Functions

static void setup (vectorial::BilinearForm< Real, Real > &bf)
 Sets up the bilinear form for the rot-rot part for Maxwell's equation using weighted regularization. More...
 

Protected Member Functions

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

Private Attributes

concepts::Array< concepts::MapReal2dcoeffMatrix_
 Intermediate data for element matrix computation. More...
 
uint i_
 row and column inside the vectorial Bilinearform More...
 
uint j_
 
concepts::Array< Real > * jacobian_
 Data shared between components of the rot-rot bilinear forms,. More...
 
concepts::Array< concepts::MapReal2d > * jacobianInv_
 
const Quad< Real > ** oldElm_
 
MaxwellSharedDatasharedData_
 

Detailed Description

A function class to calculate element matrices for the Rot u*Rot v Bilinearform.

The whole rot-rot term is discretized by using all components in a vector valued bilinear form of size 2x2. This is best set up using the RotRot::setup method. It also takes care of correctly shared data using RotRotSharedData.

Author
Kersten Schmidt, 2003

Definition at line 41 of file rotrot.hh.

Constructor & Destructor Documentation

◆ RotRot() [1/2]

hp2D::RotRot::RotRot ( const uint  i = 0,
const uint  j = 0 
)
inline

Constructor of the i.th row and j.th column of vectorial Bilinearform.

Definition at line 45 of file rotrot.hh.

◆ RotRot() [2/2]

hp2D::RotRot::RotRot ( concepts::Array< Real > &  jacobian,
concepts::Array< concepts::MapReal2d > &  jacobianInv,
const Quad< Real > **  oldElm,
const uint  i = 0,
const uint  j = 0 
)
inline

Constructor of the i.th row and j.th column of vectorial Bilinearform.

Definition at line 49 of file rotrot.hh.

◆ ~RotRot()

virtual hp2D::RotRot::~RotRot ( )
virtual

Member Function Documentation

◆ clone() [1/2]

virtual RotRot* hp2D::RotRot::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 , typename Realtype<Real >::type >::clone ( ) const
pure virtualinherited

Virtual constructor.

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

◆ data() [1/2]

virtual MaxwellSharedData* hp2D::RotRot::data ( ) const
virtual

Returns the data to be shared.

Implements vectorial::Vectorizable.

◆ data() [2/2]

virtual void hp2D::RotRot::data ( concepts::Cloneable )
virtual

Sets the data to be shared.

Implements vectorial::Vectorizable.

◆ info()

virtual std::ostream& hp2D::RotRot::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::BilinearForm< Real >.

◆ operator()() [1/4]

virtual void hp2D::RotRot::operator() ( const concepts::Element< Real > &  elmX,
const concepts::Element< Real > &  elmY,
concepts::ElementMatrix< Real > &  em 
) const
virtual

◆ operator()() [2/4]

virtual void concepts::BilinearForm< Real , typename Realtype<Real >::type >::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/4]

virtual void concepts::BilinearForm< Real , typename Realtype<Real >::type >::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.

◆ operator()() [4/4]

void hp2D::RotRot::operator() ( const Quad< Real > &  elmX,
const Quad< Real > &  elmY,
concepts::ElementMatrix< Real > &  em 
) const

◆ setup()

static void hp2D::RotRot::setup ( vectorial::BilinearForm< Real, Real > &  bf)
static

Sets up the bilinear form for the rot-rot part for Maxwell's equation using weighted regularization.

Parameters
bfResulting bilinear form (use this to compute the matrix)
Precondition
The number of components of bf needs to be 2 x 2.

Member Data Documentation

◆ coeffMatrix_

concepts::Array<concepts::MapReal2d> hp2D::RotRot::coeffMatrix_
mutableprivate

Intermediate data for element matrix computation.

Definition at line 80 of file rotrot.hh.

◆ i_

uint hp2D::RotRot::i_
private

row and column inside the vectorial Bilinearform

Definition at line 77 of file rotrot.hh.

◆ j_

uint hp2D::RotRot::j_
private

Definition at line 77 of file rotrot.hh.

◆ jacobian_

concepts::Array<Real>* hp2D::RotRot::jacobian_
private

Data shared between components of the rot-rot bilinear forms,.

Definition at line 84 of file rotrot.hh.

◆ jacobianInv_

concepts::Array<concepts::MapReal2d>* hp2D::RotRot::jacobianInv_
private

Definition at line 85 of file rotrot.hh.

◆ oldElm_

const Quad<Real>** hp2D::RotRot::oldElm_
private

Definition at line 86 of file rotrot.hh.

◆ sharedData_

MaxwellSharedData* hp2D::RotRot::sharedData_
private

Definition at line 87 of file rotrot.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