Go to the documentation of this file.
22 template<
class NodeX,
class NodeY>
47 inline Ffld(
const NodeX* clstX,
const NodeY* clstY,
48 uint
m,
Ffld* lnk = 0)
58 inline uint
m()
const {
return m_;}
91 template<
class Trts,
class Nd>
92 uint
info_(uint idx,
const Nd* clst,
93 std::unordered_map<uint, uint>& nlf)
const;
97 std::ostream&
info(std::ostream& os)
const;
112 inline float memory()
const;
113 std::ostream&
info(std::ostream& os, uint idxX, uint idxY)
const;
116 template<
class NodeX,
class NodeY>
120 + nffldval_ * (ffld_->val() ? ffld_->val()->memory(1)
121 : ffld_->val(1, exp_)->memory(1))
127 #endif // clusterF02_hh
virtual FColExp * getCol(uint blksz) const =0
Allocates memory for the expansion coefficients.
Class to store the far field coefficients.
Ffld * lnk_
Next far field entry.
uint nffld_
Number of far field entries.
uint nnfld_
Number of near field entries.
const Tree< NodeX > & treeX_
Cluster trees.
Joiner class with multiple successors, i.e.
std::ostream & info(std::ostream &os) const
Some basic informations.
static const concepts::Real3d & center(const Node *nd)
void operator()(const ClstY< NodeY > &vecY, ClstX< NodeX > &vecX) const
Application operator.
float memory() const
Memory used by F02 in bytes.
Ffld(const NodeX *clstX, const NodeY *clstY, uint m, Ffld *lnk=0)
Interface class for a node in a cluster tree.
F02(const Tree< NodeX > &treeX, const Tree< NodeY > &treeY, const ExpansionF< FX > &exp, concepts::Real eps, concepts::Real s, uint minsz)
void constructor_(const NodeX *clstX, const NodeY *clstY)
Constructor for recursive calls.
ClstF< NodeX, NodeY >::TraitsY TraitsY
Class to store a pair of clusters in the near field.
FColExp * val(uint blksz, const ExpansionF< FX > &exp)
An abstract class for scanning a mesh (a set of cells) or a space (a set of elements).
static uint index(const Node *nd)
uint minsz_
Minimal size for a cluster pair in the far field.
Abstract class for a far field matrix F.
Ffld * ffld_
Far field entries.
ClstF< NodeX, NodeY >::FX FX
ClstF< NodeX, NodeY >::NfldScan NfldScan
const NodeX * clstX_
Pointer to two clusters belonging to the far field.
ClstF< NodeX, NodeY >::NfldNodes NfldNodes
std::ostream & info(std::ostream &os, uint idxX, uint idxY) const
Used for the cluster classes for the boundary element method.
ClstF< NodeX, NodeY >::FY FY
const ExpansionF< FX > & exp_
Kernel expansion.
FColExp * val_
Far field coefficients of the kernel expansion.
const Tree< NodeY > & treeY_
ClstF< NodeX, NodeY >::TraitsX TraitsX
Interface of the far field.
uint info_(uint idx, const Nd *clst, std::unordered_map< uint, uint > &nlf) const
concepts::Real3d z() const
double Real
Type normally used for a floating point number.
concepts::Joiner< NfldNodes, 1 > * nfld_
Near field entries.
Abstract class to hold the expansion coefficients.