Class documentation of Concepts

Loading...
Searching...
No Matches
concepts::BilinearFormContainer< F, G > Class Template Reference

#include <bilinearForm.hh>

Inheritance diagram for concepts::BilinearFormContainer< F, G >:
concepts::BilinearForm< F, G > concepts::Cloneable concepts::OutputOperator hp1D::Jump1Mean2< F >

Public Member Functions

 BilinearFormContainer ()
 
 BilinearFormContainer (const BilinearForm< F, G > &bf)
 
 BilinearFormContainer (const RCP< const BilinearForm< F, G > > frm)
 
 BilinearFormContainer (const BilinearForm< F, G > *frm)
 
 BilinearFormContainer (const BilinearFormContainer< F, G > &frm)
 Copy constructor.
 
virtual void operator() (const Element< G > &elmX, const Element< G > &elmY, ElementMatrix< F > &em) const
 
virtual BilinearFormContainer< F, G > * clone () const
 Virtual copy constructor.
 
bool empty () const
 Returns true if no formula is stored.
 
void transpose ()
 Transpose the bilinearform, i.e. interchange test and trial functions.
 
virtual void operator() (const Element< G > &elmX, const Element< G > &elmY, ElementMatrix< F > &em, const ElementPair< G > &ep) const
 

Protected Member Functions

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

Protected Attributes

RCP< const BilinearForm< F, G > > bf_
 bilinear form is stored as a RCP
 

Detailed Description

template<class F, typename G = typename Realtype<F>::type>
class concepts::BilinearFormContainer< F, G >

A container that stores a bilinear form as a reference-counting pointer and provides its functionality.

The class is specially suited for operations on bilinear forms like a sum where the bilinear form classes are intrinsically converted before constructing a class for the sum or other result. When converted in a BilinearFormContainer only one copy of the bilinear form is stored.

In addition the class allows for interchanging the arguments leading to a "transposed" bilinear form.

@autor Robert Gruhlke, 2016

Definition at line 136 of file bilinearForm.hh.

Constructor & Destructor Documentation

◆ BilinearFormContainer() [1/2]

template<class F , typename G = typename Realtype<F>::type>
concepts::BilinearFormContainer< F, G >::BilinearFormContainer ( )
inline

Constructor with no argument

Definition at line 140 of file bilinearForm.hh.

◆ BilinearFormContainer() [2/2]

template<class F , typename G = typename Realtype<F>::type>
concepts::BilinearFormContainer< F, G >::BilinearFormContainer ( const BilinearForm< F, G > &  bf)

Constructor for an element formula, takes a clone

Member Function Documentation

◆ clone()

template<class F , typename G = typename Realtype<F>::type>
virtual BilinearFormContainer< F, G > * concepts::BilinearFormContainer< F, G >::clone ( ) const
inlinevirtual

Virtual copy constructor.

Implements concepts::BilinearForm< F, G >.

Definition at line 158 of file bilinearForm.hh.

◆ empty()

template<class F , typename G = typename Realtype<F>::type>
bool concepts::BilinearFormContainer< F, G >::empty ( ) const
inline

Returns true if no formula is stored.

Definition at line 163 of file bilinearForm.hh.

◆ info()

template<class F , typename G = typename Realtype<F>::type>
virtual std::ostream & concepts::BilinearFormContainer< F, G >::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::BilinearForm< F, G >.

Reimplemented in hp1D::Jump1Mean2< F >.

◆ operator()() [1/2]

template<class F , typename G = typename Realtype<F>::type>
virtual void concepts::BilinearFormContainer< F, G >::operator() ( const Element< G > &  elmX,
const Element< G > &  elmY,
ElementMatrix< F > &  em 
) const
virtual

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

Implements concepts::BilinearForm< F, G >.

◆ operator()() [2/2]

template<class F , class G = typename Realtype<F>::type>
virtual void concepts::BilinearForm< F, G >::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

Reimplemented in vectorial::BilinearForm< F, G >.

Definition at line 57 of file bilinearForm.hh.

◆ transpose()

template<class F , typename G = typename Realtype<F>::type>
void concepts::BilinearFormContainer< F, G >::transpose ( )
inline

Transpose the bilinearform, i.e. interchange test and trial functions.

Definition at line 166 of file bilinearForm.hh.

Member Data Documentation

◆ bf_

template<class F , typename G = typename Realtype<F>::type>
RCP<const BilinearForm<F,G> > concepts::BilinearFormContainer< F, G >::bf_
protected

bilinear form is stored as a RCP

Definition at line 174 of file bilinearForm.hh.


The documentation for this class was generated from the following file: