MassOperator Class Reference

#include <MassOperator.hpp>

Inheritance diagram for MassOperator:

Inheritance graph
[legend]
Collaboration diagram for MassOperator:

Collaboration graph
[legend]

List of all members.

Public Types

enum  Type {
  firstorderop, firstorderopTransposed, divmugrad, secondorderop,
  massop
}

Public Member Functions

std::string typeName () const
ConstReferenceCounting
< ScalarFunctionBase
alpha () const
ConstReferenceCounting
< PDEOperator
operator* (const ConstReferenceCounting< ScalarFunctionBase > &c) const
ConstReferenceCounting
< PDEOperator
operator- () const
 MassOperator (ConstReferenceCounting< ScalarFunctionBase > alpha)
 MassOperator (const MassOperator &M)
 ~MassOperator ()
const size_t & numberOfSubOperators () const
const PDEOperator::Typetype () const

Protected Attributes

const PDEOperator::Type __type
size_t __numberOfSubOperators

Private Attributes

ConstReferenceCounting
< ScalarFunctionBase
__Alpha

Friends

std::ostream & operator<< (std::ostream &os, const PDEOperator &pdeOperator)


Detailed Description

Definition at line 34 of file MassOperator.hpp.


Member Enumeration Documentation

enum PDEOperator::Type [inherited]

Enumerator:
firstorderop 
firstorderopTransposed 
divmugrad 
secondorderop 
massop 

Definition at line 41 of file PDEOperator.hpp.

00041             {
00042     firstorderop,
00043     firstorderopTransposed,
00044     divmugrad,
00045     secondorderop,
00046     massop
00047   };


Constructor & Destructor Documentation

MassOperator::MassOperator ( ConstReferenceCounting< ScalarFunctionBase alpha  )  [inline]

Constructor

Parameters:
alpha given coefficient

Definition at line 98 of file MassOperator.hpp.

Referenced by operator*(), and operator-().

00099     : PDEOperator(PDEOperator::massop,
00100                   1),
00101       __Alpha(alpha)
00102   {
00103     ;
00104   }

MassOperator::MassOperator ( const MassOperator M  )  [inline]

Copy constructor

Parameters:
M given mass operator

Definition at line 111 of file MassOperator.hpp.

00112     : PDEOperator(M),
00113       __Alpha(M.__Alpha)
00114   {
00115     ;
00116   }

MassOperator::~MassOperator (  )  [inline]

Destructor

Definition at line 122 of file MassOperator.hpp.

00123   {
00124     ;
00125   }


Member Function Documentation

std::string MassOperator::typeName (  )  const [inline, virtual]

gets operator name

Returns:
"MassOperator"

Implements PDEOperator.

Definition at line 47 of file MassOperator.hpp.

00048   {
00049     return "MassOperator";
00050   }

ConstReferenceCounting<ScalarFunctionBase> MassOperator::alpha (  )  const [inline]

Read only access to the coefficient

Returns:
$ \alpha $.

Definition at line 58 of file MassOperator.hpp.

References __Alpha.

Referenced by DiscretizedOperators< FiniteElement::ElementaryMatrix >::DiscretizedOperators().

00059   {
00060     return __Alpha;
00061   }

ConstReferenceCounting<PDEOperator> MassOperator::operator* ( const ConstReferenceCounting< ScalarFunctionBase > &  c  )  const [inline, virtual]

"multiplies" the mass MassOperator by a coefficient

Parameters:
c the coefficient
Returns:
$ (c\alpha)\cdot $

Implements PDEOperator.

Definition at line 71 of file MassOperator.hpp.

References __Alpha, ScalarFunctionBuilder::getBuiltFunction(), MassOperator(), BinaryOperation::product, ScalarFunctionBuilder::setBinaryOperation(), and ScalarFunctionBuilder::setFunction().

00072   {
00073     ScalarFunctionBuilder functionBuilder;
00074     functionBuilder.setFunction(__Alpha);
00075     functionBuilder.setBinaryOperation(BinaryOperation::product,c);
00076     return new MassOperator(functionBuilder.getBuiltFunction());
00077   }

Here is the call graph for this function:

ConstReferenceCounting<PDEOperator> MassOperator::operator- (  )  const [inline, virtual]

gets the opposed MassOperator operator.

Returns:
$ -\alpha\cdot $

Implements PDEOperator.

Definition at line 85 of file MassOperator.hpp.

References __Alpha, ScalarFunctionBuilder::getBuiltFunction(), MassOperator(), ScalarFunctionBuilder::setFunction(), and ScalarFunctionBuilder::setUnaryMinus().

00086   {
00087     ScalarFunctionBuilder functionBuilder;
00088     functionBuilder.setFunction(__Alpha);
00089     functionBuilder.setUnaryMinus();
00090     return new MassOperator(functionBuilder.getBuiltFunction());
00091   }

Here is the call graph for this function:

const size_t& PDEOperator::numberOfSubOperators (  )  const [inline, inherited]

Read only access to the number of sub-operators

Returns:
__numberOfSubOperators

Definition at line 63 of file PDEOperator.hpp.

References PDEOperator::__numberOfSubOperators.

00064   {
00065     return __numberOfSubOperators;
00066   }

const PDEOperator::Type& PDEOperator::type (  )  const [inline, inherited]

Read-only access to the type of the operator

Returns:
__type

Definition at line 82 of file PDEOperator.hpp.

References PDEOperator::__type.

Referenced by DiscretizedOperators< FiniteElement::ElementaryMatrix >::DiscretizedOperators().

00083   {
00084     return __type;
00085   }


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const PDEOperator pdeOperator 
) [friend, inherited]

Writes a PDEOperator to a stream

Parameters:
os the output stream
pdeOperator a PDEOperator
Returns:
os

Definition at line 114 of file PDEOperator.hpp.

00115   {
00116     os << pdeOperator.typeName();
00117     return os;
00118   }


Member Data Documentation

order 0 coefficient

Definition at line 39 of file MassOperator.hpp.

Referenced by alpha(), operator*(), and operator-().

const PDEOperator::Type PDEOperator::__type [protected, inherited]

type of the operator

Definition at line 50 of file PDEOperator.hpp.

Referenced by PDEOperator::type().

size_t PDEOperator::__numberOfSubOperators [protected, inherited]

This is used for "composed" operators to provied an efficient way to know how many elementary matrices are needed to discretize it

Definition at line 52 of file PDEOperator.hpp.

Referenced by PDEOperator::numberOfSubOperators().


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

Generated on Wed Nov 19 00:08:46 2008 for FreeFEM3D (aka ff3d) by  doxygen 1.5.6