aglowav2::AglowavBF00< F > Class Template Referenceabstract
Bilinear form for the stiffness matrix compression with aglomerated wavelets. More...
#include <bform.hh>
Classes | |
struct | Cell |
Entry in the cache to compute wavelet entries. More... | |
struct | Nfld |
Structure to hold the one scale near field one each level. More... | |
Public Member Functions | |
AglowavBF00 (concepts::BilinearForm< F > &bf, F00< F > &XFY) | |
Constructor. More... | |
virtual BilinearForm * | clone () const=0 |
Virtual constructor. More... | |
uint | memory () const |
void | operator() (const concepts::Element< F > &elmX, const concepts::Element< F > &elmY, concepts::ElementMatrix< F > &em) |
virtual void | operator() (const Element< typename Realtype< concepts::Real >::type > &elmX, const Element< typename Realtype< concepts::Real >::type > &elmY, ElementMatrix< concepts::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< concepts::Real >::type > &elmX, const Element< typename Realtype< concepts::Real >::type > &elmY, ElementMatrix< concepts::Real > &em, const ElementPair< typename Realtype< concepts::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 Haar3d000< F > &elmX, const Haar3d000< F > &elmY, concepts::ElementMatrix< F > &em) |
~AglowavBF00 () | |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. More... | |
Private Types | |
typedef struct aglowav2::AglowavBF00::Nfld | Nfld |
Structure to hold the one scale near field one each level. More... | |
Private Member Functions | |
virtual AglowavBF00 * | clone () const |
Virtual constructor. More... | |
void | nearfield_ (const Haar3d000< F > &elmX, const Haar3d000< F > &elmY, F *valXY, uint ldXY, F *valYX, uint ldYX) |
Computation of the one scale near field on each level (used by the constructor). More... | |
void | updateChld_ (const Haar3d000< F > &tst, const Haar3d000< F > &trl, F *valtsttrl, uint ldtsttrl, F *valtrltst, uint ldtrltst) |
Computation of one scale entries. More... | |
void | updateElm_ (const Haar3d000< F > &tst, const Haar3d000< F > &trl, F *valtsttrl, uint ldtsttrl, F *valtrltst, uint ldtrltst) |
Computation of one scale entries. More... | |
Private Attributes | |
concepts::BilinearForm< F > & | bf_ |
Bilinear form to compute the one scale matrix entries. More... | |
Cell * | buf_ |
Buffer to store wavelet entries "for a short time". More... | |
Cell * | cache_ |
Cache to store wavelet entries for later usage. More... | |
F * | foo_ |
uint | mem_ |
memory More... | |
Nfld ** | nfld_ |
Array to hold the near field for each element. More... | |
Nfld *** | nfldLast_ |
Array to hold pointers to the last list entry of the near field (used only by nearfield_) More... | |
bool | reuse_ |
Entry reused and thus saved in cache_ otherwise stored in buf_. More... | |
F * | valXY_ |
Auxiliary vectors to hold intermediate values. More... | |
F * | valYX_ |
F * | vXY_ |
F * | vYX_ |
F00< F > & | XFY_ |
Cluster approximation of the far field. More... | |
Detailed Description
template<class F = concepts::Real>
class aglowav2::AglowavBF00< F >
Bilinear form for the stiffness matrix compression with aglomerated wavelets.
After computation of the compressed stiffness matrix delete this bilinear form to free the memory used by the one scale near field. Unsymmetric kernels are allowed by the sparsity pattern (Delta) has to be symmetric. Symmetry of the kernel is not exploited.
- Parameters
-
F Field (Real or Cmplx)
Member Typedef Documentation
◆ Nfld
|
private |
Structure to hold the one scale near field one each level.
Constructor & Destructor Documentation
◆ AglowavBF00()
aglowav2::AglowavBF00< F >::AglowavBF00 | ( | concepts::BilinearForm< F > & | bf, |
F00< F > & | XFY | ||
) |
Constructor.
Computation of the one scale near field on each level.
- Parameters
-
bf Bilinear form to compute the one scale matrix entries. XFY Cluster approximation of the far field.
◆ ~AglowavBF00()
aglowav2::AglowavBF00< F >::~AglowavBF00 | ( | ) |
Member Function Documentation
◆ clone() [1/2]
|
inlineprivatevirtual |
Virtual constructor.
Returns a pointer to a copy of itself. The caller is responsible to destroy this copy.
Implements concepts::Cloneable.
◆ clone() [2/2]
|
pure virtualinherited |
Virtual constructor.
Returns a pointer to a copy of itself. The caller is responsible to destroy this copy.
◆ info()
|
protectedvirtualinherited |
Returns information in an output stream.
Reimplemented from concepts::OutputOperator.
◆ memory()
|
inline |
◆ nearfield_()
|
private |
Computation of the one scale near field on each level (used by the constructor).
Call only for elmX.key() >= elmY.key() !!!
- Parameters
-
elmX Space element elmY Space element valXY Near field of the of elmX with elmY (row wise) ldXY Leading dimension of valXY valYX Near field of the of elmY with elmX (row wise) ldYX Leading dimension of valYX
◆ operator()() [1/4]
void aglowav2::AglowavBF00< F >::operator() | ( | const concepts::Element< F > & | elmX, |
const concepts::Element< F > & | elmY, | ||
concepts::ElementMatrix< F > & | em | ||
) |
◆ 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 aglowav2::AglowavBF00< F >::operator() | ( | const Haar3d000< F > & | elmX, |
const Haar3d000< F > & | elmY, | ||
concepts::ElementMatrix< F > & | em | ||
) |
◆ updateChld_()
|
private |
Computation of one scale entries.
Call only for tst.key() >= trl.key() !!!
- Parameters
-
tst Test element trl Trial element valtsttrl One scale entries of tst with trl (row wise) ldtsttrl Leading dimension of valtsttrl valtrltst One scale entries of trl with tst (row wise) ldtrltst Leading dimension of valtrltst
◆ updateElm_()
|
private |
Computation of one scale entries.
On trl only the elements are considered.
- Parameters
-
tst Test element trl Trial element valtsttrl One scale entries of tst with trl elements (row wise) ldtsttrl Leading dimension of valtsttrl valtrltst One scale entries of trl elements with tst (row wise) ldtrltst Leading dimension of valtrltst
Member Data Documentation
◆ bf_
|
private |
◆ buf_
|
private |
◆ cache_
|
private |
◆ foo_
|
private |
◆ mem_
|
private |
◆ nfld_
|
private |
◆ nfldLast_
|
private |
◆ reuse_
|
private |
◆ valXY_
|
private |
◆ valYX_
|
private |
◆ vXY_
|
private |
◆ vYX_
|
private |
◆ XFY_
|
private |
The documentation for this class was generated from the following file:
- aglowav2/bform.hh