Sum factorization for an element matrix. More...
#include <sumfact.hh>

Public Member Functions | |
| template<typename T > | |
| void | operator() (concepts::ElementMatrix< Real > &em, const concepts::Array< Real > &jacobian, T *coeff, const ShapeFunction3D< Real > &u, const ShapeFunction3D< Real > &v) |
| Application operator. | |
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 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. | |
Private Attributes | |
| concepts::Array< Real > | sumfact1_ |
| Intermediate matrices for sum factorization. | |
| concepts::Array< Real > | sumfact2_ |
Static Private Attributes | |
| static uint | timeCntr_ |
| Counter for timing table. | |
| static concepts::InOutParameters * | timings_ |
| Place to store timing values. | |
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().
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_. Definition at line 40 of file sumfact.hh.
| void hp3D::SumFactorization::operator() | ( | concepts::ElementMatrix< Real > & | em, |
| const concepts::Array< Real > & | jacobian, | ||
| T * | coeff, | ||
| const ShapeFunction3D< Real > & | u, | ||
| const ShapeFunction3D< Real > & | v | ||
| ) |
Application operator.
Adds the contribution of coeff to em.
| em | Element matrix |
| jacobian | Jacobian |
| coeff | Coefficients for the integration |
| u | Left shape functions |
| v | Right shape functions |
| static void hp3D::SumFactorization::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:
first_temp second_temp fill_em | static bool hp3D::SumFactorization::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.
concepts::Array<Real> hp3D::SumFactorization::sumfact1_ [private] |
Intermediate matrices for sum factorization.
Definition at line 90 of file sumfact.hh.
concepts::Array<Real> hp3D::SumFactorization::sumfact2_ [private] |
Definition at line 90 of file sumfact.hh.
uint hp3D::SumFactorization::timeCntr_ [static, private] |
Counter for timing table.
Definition at line 95 of file sumfact.hh.
concepts::InOutParameters* hp3D::SumFactorization::timings_ [static, private] |
Place to store timing values.
Definition at line 93 of file sumfact.hh.