hp3D::Identity< F > Class Template Referenceabstract
A function class to calculate element matrices for the mass matrix. More...
#include <bilinearForm.hh>
Public Member Functions | |
virtual BilinearForm * | clone () const=0 |
Virtual constructor. More... | |
Identity (const concepts::ElementFormulaContainer< F > frm=concepts::ElementFormulaContainer< F >()) | |
Constructor. More... | |
virtual void | operator() (const concepts::Element< Real > &elmX, const concepts::Element< Real > &elmY, concepts::ElementMatrix< F > &em) const |
virtual void | operator() (const Element< typename Realtype< Real >::type > &elmX, const Element< typename Realtype< Real >::type > &elmY, ElementMatrix< Real > &em) const=0 |
Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em . More... | |
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) const |
Evaluates the bilinear form for all shape functions on elmX and elmY and stores the result in the matrix em . More... | |
void | operator() (const Hexahedron &elmX, const Hexahedron &elmY, concepts::ElementMatrix< F > &em) const |
virtual | ~Identity () |
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;
std::ofstream ofs("table.gnuplot");
ofs << std::setprecision(20);
table.print<concepts::ResultsTable::GNUPLOT>(ofs);
| |
concepts::Array< F > | jacobian_ |
Intermediate data for element matrix computation. More... | |
const Hexahedron * | oldElm_ |
Intermediate data for element matrix computation. More... | |
concepts::ElementFormulaContainer< F > | frm_ |
Element formula. More... | |
static concepts::InOutParameters * | timings_ |
Place to store timing values. More... | |
static uint | timeCntr_ |
Counter for timing table. More... | |
virtual Identity * | clone () const |
Intermediate data for element matrix computation. More... | |
static void | setTimings (concepts::InOutParameters *timings) |
Sets the class to store the timing values in. More... | |
static bool | timings () |
Returns true if the class is able to do timings. More... | |
virtual std::ostream & | info (std::ostream &os) const |
Intermediate data for element matrix computation. More... | |
Detailed Description
template<class F = Real>
class hp3D::Identity< F >
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()
.
- Examples
- hpFEM3d-EV.cc.
Definition at line 84 of file bilinearForm.hh.
Constructor & Destructor Documentation
◆ Identity()
hp3D::Identity< F >::Identity | ( | const concepts::ElementFormulaContainer< F > | frm = concepts::ElementFormulaContainer< F >() | ) |
Constructor.
◆ ~Identity()
|
virtual |
Member Function Documentation
◆ clone() [1/2]
|
inlinevirtual |
Intermediate data for element matrix computation.
Implements concepts::Cloneable.
Definition at line 129 of file bilinearForm.hh.
◆ clone() [2/2]
|
pure virtualinherited |
Virtual constructor.
Returns a pointer to a copy of itself. The caller is responsible to destroy this copy.
◆ info()
|
protectedvirtual |
Intermediate data for element matrix computation.
Reimplemented from concepts::BilinearForm< Real >.
◆ operator()() [1/4]
|
virtual |
◆ operator()() [2/4]
|
pure virtualinherited |
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
-
elmX Left element (test functions) elmY Right element (trial functions) em Return element matrix
◆ operator()() [3/4]
|
inlinevirtualinherited |
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
-
elmX Left element elmY Right element em Return element matrix ep Element pair holding more information on the pair elmX
andelmY
Definition at line 57 of file bilinearForm.hh.
◆ operator()() [4/4]
void hp3D::Identity< F >::operator() | ( | const Hexahedron & | elmX, |
const Hexahedron & | elmY, | ||
concepts::ElementMatrix< F > & | em | ||
) | const |
◆ setTimings()
|
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
◆ 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
◆ frm_
|
private |
Element formula.
Definition at line 139 of file bilinearForm.hh.
◆ jacobian_
|
mutableprivate |
Intermediate data for element matrix computation.
Definition at line 134 of file bilinearForm.hh.
◆ oldElm_
|
mutableprivate |
Intermediate data for element matrix computation.
Definition at line 136 of file bilinearForm.hh.
◆ timeCntr_
|
staticprivate |
Counter for timing table.
Definition at line 144 of file bilinearForm.hh.
◆ timings_
|
staticprivate |
Place to store timing values.
Definition at line 142 of file bilinearForm.hh.
The documentation for this class was generated from the following file:
- hp3D/bilinearForm.hh