Class documentation of Concepts

Loading...
Searching...
No Matches
hp3D::SumFactorization< F > Class Template Reference

#include <sumfact.hh>

Public Member Functions

template<typename T >
void operator() (concepts::ElementMatrix< F > &em, const concepts::Array< F > &jacobian, T *coeff, const ShapeFunction3D< Real > &u, const ShapeFunction3D< Real > &v)
 

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

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)
 
static bool timings ()
 

Detailed Description

template<typename F = Real>
class hp3D::SumFactorization< F >

Sum factorization for an element 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().

Todo:
Implement changing order of sum factorization, possibility is there
Bug:
If the loops are reordered using a, b and c on line 58, coeff (by use of coeffTmp) is not accessed in the correct order in the first loop to fill sumfact1_.
Author
Philipp Frauenfelder, 2002

Definition at line 44 of file sumfact.hh.

Member Function Documentation

◆ operator()()

template<typename F = Real>
template<typename T >
void hp3D::SumFactorization< F >::operator() ( concepts::ElementMatrix< F > &  em,
const concepts::Array< F > &  jacobian,
T *  coeff,
const ShapeFunction3D< Real > &  u,
const ShapeFunction3D< Real > &  v 
)

Application operator. Adds the contribution of coeff to em.

Parameters
emElement matrix
jacobianJacobian
coeffCoefficients for the integration
uLeft shape functions
vRight shape functions

◆ setTimings()

template<typename F = Real>
static void hp3D::SumFactorization< F >::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:

  • computation of the first intermediate matrix in first_temp
  • computation of the second intermediate matrix in second_temp
  • computation of the element matrix in fill_em

◆ timings()

template<typename F = Real>
static bool hp3D::SumFactorization< F >::timings ( )
static

Returns true if the class is able to do timings. The ability to do timings depends on a compiler switch in sumfact.cc file.


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