Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

concepts::Matrix< F > Class Template Reference
[Bilinear and Linear Forms -- Matrices and Vectors]

Abstract class for an operator. More...

#include <matrix.hh>

Inheritance diagram for concepts::Matrix< F >:

concepts::Operator< F > concepts::OutputOperator concepts::DenseMatrix< F > concepts::DiagonalMatrix< F > concepts::Permutation< F > concepts::SparseMatrix< F > concepts::Transpose< F > List of all members.

Public Member Functions

virtual void operator() (const Function< F > &fncY, Function< F > &fncX)=0
 Computes fncX = A(fncY) where A is this matrix.
virtual F & operator() (const uint i, const uint j)=0
 Returns and allows access to entry with indices i and j.
virtual F operator() (const uint i, const uint j) const =0
 Returns entry with indices i and j.
virtual const Space< F > & spaceX () const =0
 Returns the image space of the operator.
virtual const Space< F > & spaceY () const =0
 Returns the source space of the operator.
virtual void transpMult (const Vector< F > &fncY, Vector< F > &fncX)=0
 Computes fncX = AT fncY where A is this matrix.

Static Public Member Functions

void assembly (Matrix< F > &dest, BilinearForm< F > &bf, const ElementPairList< F > &pairs)
 Assembly operator for dest using the bilinear form bf.
void assembly (Matrix< F > &dest, const Space< F > &spcX, const Space< F > &spcY, BilinearForm< F > &bf)
 Assembly operator for dest using the bilinear form bf.
void assembly (Matrix< F > &dest, const Space< F > &spc, BilinearForm< F > &bf)
 Assembly operator for dest using the bilinear form bf.

Protected Member Functions

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

Static Private Attributes

uint timeCntr_
 Counter for timing table.
InOutParameterstimings_
 Place to store timing values.

Detailed Description

template<class F>
class concepts::Matrix< F >

Abstract class for an operator.

This class is equiped with an interface to get timings of internal computations if compiled accordingly (see bilinearForm.cc file), see setTimings() and timings().

Author:
Philipp Frauenfelder, 2002

Definition at line 30 of file matrix.hh.


Member Function Documentation

template<class F>
void concepts::Matrix< F >::assembly Matrix< F > &  dest,
BilinearForm< F > &  bf,
const ElementPairList< F > &  pairs
[static]
 

Assembly operator for dest using the bilinear form bf.

This assembly operator uses the element pairs taken from pairs. For every two elements found in a ElementPair in pairs, the bilinear form is evaluated and the result assembled into dest.

template<class F>
void concepts::Matrix< F >::assembly Matrix< F > &  dest,
const Space< F > &  spcX,
const Space< F > &  spcY,
BilinearForm< F > &  bf
[static]
 

Assembly operator for dest using the bilinear form bf.

This assembly operator computes also the element matrices for two different elements (coming from spcX and spcY).

template<class F>
void concepts::Matrix< F >::assembly Matrix< F > &  dest,
const Space< F > &  spc,
BilinearForm< F > &  bf
[static]
 

Assembly operator for dest using the bilinear form bf.

This assembly operator does not compute element matrices for two different elements. The elements are taken from the space spc.

Examples:
linearDG1d.cc.

template<class F>
virtual std::ostream& concepts::Operator< F >::info std::ostream &  os  )  const [protected, virtual, inherited]
 

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

Reimplemented in aglowav::C2W< F >, aglowav::W2C< F >, aglowav::C2_tl2< F >, aglowav::C2tl2< F >, aglowav::CGt2< F >, aglowav::ComposeN< F >, aglowav2::Operator00< F >, aglowav2::C2W< F >, aglowav2::W2C< F >, EquivalentStress2d, Advection< NumFlux >, bem::D< F >, bem::D_1< F >, hp3D::SpaceTransition, concepts::CG< F >, concepts::Compose< F >, concepts::LiCoI< F >, concepts::LiCo< F >, concepts::Constrained, concepts::DenseMatrix< F >, concepts::DiagonalMatrix< F >, concepts::DiagonalSolver< F >, concepts::GMRes< F >, concepts::NRLSolver, concepts::Pardiso, concepts::Permutation< F >, concepts::TrivExtendRestrict< F >, concepts::PETSc, concepts::PETScMat, concepts::SparseMatrix< F >, concepts::Spooles, concepts::SuperLU, concepts::Transpose< F >, concepts::Umfpack, sparseqr::Driver, sparseqr::GivensRotations< F >, vectorial::BlockOperator< F >, vectorial::BramblePasciak, vectorial::CGUzawa, concepts::DiagonalMatrix< Real >, concepts::Permutation< Real >, concepts::TrivExtendRestrict< Real >, concepts::SparseMatrix< FX >, concepts::SparseMatrix< Real >, and sparseqr::GivensRotations< Real >.

template<class F>
virtual void concepts::Matrix< F >::operator() const Function< F > &  fncY,
Function< F > &  fncX
[pure virtual]
 

Computes fncX = A(fncY) where A is this matrix.

Implements concepts::Operator< F >.

Implemented in concepts::DenseMatrix< F >, concepts::DiagonalMatrix< F >, concepts::Permutation< F >, concepts::SparseMatrix< F >, concepts::Transpose< F >, concepts::DiagonalMatrix< Real >, concepts::Permutation< Real >, concepts::SparseMatrix< FX >, and concepts::SparseMatrix< Real >.

template<class F>
virtual F& concepts::Matrix< F >::operator() const uint  i,
const uint  j
[pure virtual]
 

Returns and allows access to entry with indices i and j.

Implemented in concepts::DenseMatrix< F >, concepts::DiagonalMatrix< F >, concepts::Permutation< F >, concepts::PETScMat, concepts::SparseMatrix< F >, concepts::Transpose< F >, concepts::DiagonalMatrix< Real >, concepts::Permutation< Real >, concepts::SparseMatrix< FX >, and concepts::SparseMatrix< Real >.

template<class F>
virtual F concepts::Matrix< F >::operator() const uint  i,
const uint  j
const [pure virtual]
 

Returns entry with indices i and j.

Implemented in concepts::DenseMatrix< F >, concepts::DiagonalMatrix< F >, concepts::Permutation< F >, concepts::PETScMat, concepts::SparseMatrix< F >, concepts::Transpose< F >, concepts::DiagonalMatrix< Real >, concepts::Permutation< Real >, concepts::SparseMatrix< FX >, and concepts::SparseMatrix< Real >.

template<class F>
void concepts::Matrix< F >::setTimings InOutParameters timings  )  [static]
 

Sets the class to store the timing values in.

Additionally, the timeCntr_ is reset to 0. This counter is used to fill in the values into the arrays listed below in subsequent calls. The following timings are taken and stored in timings:

  • evaluation of bilinear form in bilinear_form
  • application of T matrix in tmatrix_apply
  • assembling into global matrix in global_assembly

template<class F>
virtual const Space<F>& concepts::Operator< F >::spaceX  )  const [pure virtual, inherited]
 

Returns the image space of the operator.

Implemented in aglowav::C2W< F >, aglowav::W2C< F >, aglowav::C2_tl2< F >, aglowav::C2tl2< F >, aglowav::CGt2< F >, aglowav::ComposeN< F >, aglowav2::Operator00< F >, aglowav2::C2W< F >, aglowav2::W2C< F >, EquivalentStress2d, Advection< NumFlux >, FvdgPi0Limiter, FvdgAdaptiveLimiter, bem::D< F >, bem::D_1< F >, hp3D::SpaceTransition, concepts::CG< F >, concepts::Compose< F >, concepts::LiCoI< F >, concepts::LiCo< F >, concepts::Constrained, concepts::DenseMatrix< F >, concepts::DiagonalMatrix< F >, concepts::DiagonalSolver< F >, concepts::GMRes< F >, concepts::NRLSolver, concepts::Pardiso, concepts::Permutation< F >, concepts::TrivExtendRestrict< F >, concepts::PETSc, concepts::PETScMat, concepts::SparseMatrix< F >, concepts::Spooles, concepts::SuperLU, concepts::Transpose< F >, concepts::Umfpack, sparseqr::Driver, sparseqr::GivensRotations< F >, vectorial::BlockOperator< F >, vectorial::BramblePasciak, vectorial::CGUzawa, concepts::DiagonalMatrix< Real >, concepts::Permutation< Real >, concepts::TrivExtendRestrict< Real >, concepts::SparseMatrix< FX >, concepts::SparseMatrix< Real >, and sparseqr::GivensRotations< Real >.

template<class F>
virtual const Space<F>& concepts::Operator< F >::spaceY  )  const [pure virtual, inherited]
 

Returns the source space of the operator.

Implemented in aglowav::C2W< F >, aglowav::W2C< F >, aglowav::C2_tl2< F >, aglowav::C2tl2< F >, aglowav::CGt2< F >, aglowav::ComposeN< F >, aglowav2::Operator00< F >, aglowav2::C2W< F >, aglowav2::W2C< F >, EquivalentStress2d, Advection< NumFlux >, FvdgPi0Limiter, FvdgAdaptiveLimiter, bem::D< F >, bem::D_1< F >, hp3D::SpaceTransition, concepts::CG< F >, concepts::Compose< F >, concepts::LiCoI< F >, concepts::LiCo< F >, concepts::Constrained, concepts::DenseMatrix< F >, concepts::DiagonalMatrix< F >, concepts::DiagonalSolver< F >, concepts::GMRes< F >, concepts::NRLSolver, concepts::Pardiso, concepts::Permutation< F >, concepts::TrivExtendRestrict< F >, concepts::PETSc, concepts::PETScMat, concepts::SparseMatrix< F >, concepts::Spooles, concepts::SuperLU, concepts::Transpose< F >, concepts::Umfpack, sparseqr::Driver, sparseqr::GivensRotations< F >, vectorial::BlockOperator< F >, vectorial::BramblePasciak, vectorial::CGUzawa, concepts::DiagonalMatrix< Real >, concepts::Permutation< Real >, concepts::TrivExtendRestrict< Real >, concepts::SparseMatrix< FX >, concepts::SparseMatrix< Real >, and sparseqr::GivensRotations< Real >.

template<class F>
bool concepts::Matrix< F >::timings  )  [static]
 

Returns true if the class is able to do timings.

The ability to do timings depends on a compiler switch in matrix.cc file.

template<class F>
virtual void concepts::Matrix< F >::transpMult const Vector< F > &  fncY,
Vector< F > &  fncX
[pure virtual]
 

Computes fncX = AT fncY where A is this matrix.

Implemented in concepts::DenseMatrix< F >, concepts::DiagonalMatrix< F >, concepts::Permutation< F >, concepts::SparseMatrix< F >, concepts::Transpose< F >, concepts::DiagonalMatrix< Real >, concepts::Permutation< Real >, concepts::SparseMatrix< FX >, and concepts::SparseMatrix< Real >.


Member Data Documentation

template<class F>
uint concepts::Matrix< F >::timeCntr_ [static, private]
 

Counter for timing table.

Definition at line 98 of file matrix.hh.

template<class F>
InOutParameters* concepts::Matrix< F >::timings_ [static, private]
 

Place to store timing values.

Definition at line 96 of file matrix.hh.


The documentation for this class was generated from the following file:
Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)