Go to the documentation of this file.
25 template<
class NodeX,
class NodeY>
50 inline Ffld(
const NodeX* clstX,
const NodeY* clstY, uint
m,
61 inline uint
m()
const {
return m_;}
97 template<
class Trts,
class Nd>
98 uint
info_(uint idx,
const Nd* clst,
99 std::unordered_map<uint, uint>& nlf)
const;
102 std::ostream&
info(std::ostream& os)
const;
107 uint minsz,
int maxnffldval);
117 inline float memory()
const;
118 std::ostream&
info(std::ostream& os, uint idxX, uint idxY)
const;
121 template<
class NodeX,
class NodeY>
123 float mem = (maxnffldval_ != -1 && (uint)maxnffldval_ < nffldval_)
124 ? maxnffldval_ : nffldval_;
130 (ffld_->val() ? ffld_->val()->memory(1)
131 : ffld_->val(1, exp_)->memory(1));
136 #endif // clusterF03_hh
uint info_(uint idx, const Nd *clst, std::unordered_map< uint, uint > &nlf) const
FColExp * ffldval_
Buffer for the values computed on the fly.
virtual FColExp * getCol(uint blksz) const =0
Allocates memory for the expansion coefficients.
Class to store the far field coefficients.
uint nffld_
Number of far field entries.
Joiner class with multiple successors, i.e.
concepts::Joiner< NfldNodes, 1 > * nfld_
Near field entries.
uint nnfld_
Number of near field entries.
static const concepts::Real3d & center(const Node *nd)
Ffld * lnk_
Next far field entry.
ClstF< NodeX, NodeY >::FX FX
std::ostream & info(std::ostream &os) const
Returns information in an output stream.
const Tree< NodeX > & treeX_
Cluster trees.
FColExp * val(uint blksz, const ExpansionF< FX > &exp)
Interface class for a node in a cluster tree.
const NodeX * clstX_
Pointer to two clusters belonging to the far field.
Class to store a pair of clusters in the near field.
uint minsz_
Minimal size for a cluster pair in the far field.
void constructor_(const NodeX *clstX, const NodeY *clstY)
Constructor for recursive calls.
An abstract class for scanning a mesh (a set of cells) or a space (a set of elements).
static uint index(const Node *nd)
ClstF< NodeX, NodeY >::TraitsY TraitsY
Abstract class for a far field matrix F.
ClstF< NodeX, NodeY >::FY FY
const ExpansionF< FX > & exp_
Kernel expansion.
std::ostream & info(std::ostream &os, uint idxX, uint idxY) const
float memory() const
Memory used by F03 in bytes.
Used for the cluster classes for the boundary element method.
F03(const Tree< NodeX > &treeX, const Tree< NodeY > &treeY, const ExpansionF< FX > &exp, concepts::Real eps, concepts::Real s, uint minsz, int maxnffldval)
ClstF< NodeX, NodeY >::NfldScan NfldScan
Ffld(const NodeX *clstX, const NodeY *clstY, uint m, Ffld *lnk=0)
void operator()(const ClstY< NodeY > &vecY, ClstX< NodeX > &vecX) const
Application operator.
concepts::Real3d z() const
Ffld * ffld_
Far field entries.
ClstF< NodeX, NodeY >::TraitsX TraitsX
Interface of the far field.
const Tree< NodeY > & treeY_
ClstF< NodeX, NodeY >::NfldNodes NfldNodes
FColExp * val_
Far field coefficients of the kernel expansion.
double Real
Type normally used for a floating point number.
Abstract class to hold the expansion coefficients.