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

Public Member Functions | Protected Member Functions | Private Attributes | Static Private Attributes
hp3D::Identity Class Reference

A function class to calculate element matrices for the mass matrix. More...

#include <bilinearForm.hh>

Inheritance diagram for hp3D::Identity:
Inheritance graph
[legend]
Collaboration diagram for hp3D::Identity:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual Identityclone () const
 Virtual constructor.
 Identity (const concepts::Formula< Real > *frm=0)
 Constructor.
virtual void operator() (const Element< typename Realtype< Real >::type > &elmX, const Element< typename Realtype< Real >::type > &elmY, ElementMatrix< Real > &em)=0
 Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em.
void operator() (const Hexahedron &elmX, const Hexahedron &elmY, concepts::ElementMatrix< Real > &em)
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)
 Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em.
virtual void operator() (const concepts::Element< Real > &elmX, const concepts::Element< Real > &elmY, concepts::ElementMatrix< Real > &em)
virtual ~Identity ()

Static Public Member Functions

Timing Interface

These functions are used to get timings from class internal computations.

The values are stored in a user defined concepts::InOutParameters structure in different arrays (see setTimings). These arrays can be grouped into a table for easier postprocessing with

    concepts::ResultsTable table;
    table.addMap(concepts::ResultsTable::DOUBLE, "jacobian", output);
    table.addMap(concepts::ResultsTable::DOUBLE, "whole_sumfact", output);
    std::ofstream ofs("table.gnuplot");
    ofs << std::setprecision(20);
    table.print<concepts::ResultsTable::GNUPLOT>(ofs);
static void setTimings (concepts::InOutParameters *timings)
 Sets the class to store the timing values in.
static bool timings ()
 Returns true if the class is able to do timings.

Protected Member Functions

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

Private Attributes

std::auto_ptr< const
concepts::Formula< Real > > 
frm_
 Formula.
concepts::Array< Real > jacobian_
 Intermediate data for element matrix computation.
const HexahedronoldElm_

Static Private Attributes

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

Detailed Description

A function class to calculate element matrices for the mass matrix.

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, 2001
Examples:

hpFEM3d-EV.cc.

Definition at line 71 of file bilinearForm.hh.


Constructor & Destructor Documentation

hp3D::Identity::Identity ( const concepts::Formula< Real > *  frm = 0)

Constructor.

virtual hp3D::Identity::~Identity ( ) [virtual]

Member Function Documentation

virtual Identity* hp3D::Identity::clone ( ) const [inline, virtual]

Virtual constructor.

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

Implements concepts::Cloneable.

Definition at line 115 of file bilinearForm.hh.

Here is the call graph for this function:

virtual std::ostream& hp3D::Identity::info ( std::ostream &  os) const [protected, virtual]

Returns information in an output stream.

Reimplemented from concepts::BilinearForm< Real >.

virtual void hp3D::Identity::operator() ( const concepts::Element< Real > &  elmX,
const concepts::Element< Real > &  elmY,
concepts::ElementMatrix< Real > &  em 
) [virtual]
virtual void concepts::BilinearForm< Real , typename Realtype<Real >::type >::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 
) [inline, virtual, inherited]

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 53 of file bilinearForm.hh.

Here is the call graph for this function:

void hp3D::Identity::operator() ( const Hexahedron elmX,
const Hexahedron elmY,
concepts::ElementMatrix< Real > &  em 
)
virtual void concepts::BilinearForm< Real , typename Realtype<Real >::type >::operator() ( const Element< typename Realtype<Real >::type > &  elmX,
const Element< typename Realtype<Real >::type > &  elmY,
ElementMatrix< Real > &  em 
) [pure virtual, inherited]

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
static void hp3D::Identity::setTimings ( concepts::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 the Jacobian in jacobian
  • calling the sum fatorization subroutine in whole_sumfact
  • symmetrizing the element matrix in symmetrize_em
static bool hp3D::Identity::timings ( ) [static]

Returns true if the class is able to do timings.

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


Member Data Documentation

std::auto_ptr<const concepts::Formula<Real> > hp3D::Identity::frm_ [private]

Formula.

Definition at line 124 of file bilinearForm.hh.

Intermediate data for element matrix computation.

Definition at line 120 of file bilinearForm.hh.

Definition at line 122 of file bilinearForm.hh.

uint hp3D::Identity::timeCntr_ [static, private]

Counter for timing table.

Definition at line 129 of file bilinearForm.hh.

Place to store timing values.

Definition at line 127 of file bilinearForm.hh.


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

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