Far field matrix F. More...

#include <f01.hh>

Inheritance diagram for cluster::F01< NodeX, NodeY >:
cluster::ClstF< NodeX, NodeY > concepts::OutputOperator

Classes

class  Ffld
 Class to store the far field coefficients. More...
 

Public Types

typedef ClstF< NodeX, NodeY >::FX FX
 
typedef ClstF< NodeX, NodeY >::FY FY
 
typedef ClstF< NodeX, NodeY >::NfldNodes NfldNodes
 
typedef ClstF< NodeX, NodeY >::NfldScan NfldScan
 
typedef ClstF< NodeX, NodeY >::TraitsX TraitsX
 Interface of the far field. More...
 
typedef ClstF< NodeX, NodeY >::TraitsY TraitsY
 

Public Member Functions

 F01 (const Tree< NodeX > &tree, const ExpansionF< FX > &exp, concepts::Real eta, uint minsz)
 Constructor. More...
 
 F01 (const Tree< NodeX > &treeX, const Tree< NodeY > &treeY, const ExpansionF< FX > &exp, concepts::Real eta, uint minsz)
 Constructor. More...
 
std::ostream & info (std::ostream &os, uint idxX, uint idxY) const
 Some detailed information about the far field concering two DoF's. More...
 
float memory () const
 Memory used by F01 in bytes. More...
 
void operator() (const ClstY< NodeY > &vecY, ClstX< NodeX > &vecX) const
 Application operator. More...
 
NfldScanscan () const
 Scanner for the nearfield. More...
 
 ~F01 ()
 

Protected Member Functions

std::ostream & info (std::ostream &os) const
 Some basic informations. More...
 

Private Member Functions

void constructor_ (const NodeX *clstX, const NodeY *clstY)
 Constructor for recursive calls (non symmetric) More...
 
void constructorSym_ (const NodeX *clstX, const NodeY *clstY)
 Constructor for recursive calls (symmetric) More...
 
template<class Trts , class Nd >
uint info_ (uint idx, const Nd *clst, std::unordered_map< uint, uint > &nlf) const
 Information routine for recursive calls used by info(os, idxX, idxY) More...
 

Private Attributes

concepts::Real eta_
 Far field coefficient. More...
 
const ExpansionF< FX > & exp_
 Kernel expansion. More...
 
Ffldffld_
 Far field entries. More...
 
uint m_
 Expansion order. More...
 
uint minsz_
 Minimal size for a cluster pair in the far field. More...
 
uint nffld_
 Number of far field entries. More...
 
concepts::Joiner< NfldNodes, 1 > * nfld_
 Near field entries. More...
 
uint nnfld_
 Number of near field entries. More...
 
const Tree< NodeX > & treeX_
 Cluster trees. More...
 
const Tree< NodeY > & treeY_
 

Detailed Description

template<class NodeX, class NodeY>
class cluster::F01< NodeX, NodeY >

Far field matrix F.

Expansion order m and far field coefficient constant.

Parameters
NodeXCluster node
NodeYCluster node

Definition at line 24 of file f01.hh.

Member Typedef Documentation

◆ FX

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::FX cluster::F01< NodeX, NodeY >::FX

Definition at line 29 of file f01.hh.

◆ FY

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::FY cluster::F01< NodeX, NodeY >::FY

Definition at line 30 of file f01.hh.

◆ NfldNodes

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::NfldNodes cluster::F01< NodeX, NodeY >::NfldNodes

Definition at line 31 of file f01.hh.

◆ NfldScan

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::NfldScan cluster::F01< NodeX, NodeY >::NfldScan

Definition at line 32 of file f01.hh.

◆ TraitsX

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::TraitsX cluster::F01< NodeX, NodeY >::TraitsX

Interface of the far field.

Definition at line 27 of file f01.hh.

◆ TraitsY

template<class NodeX , class NodeY >
typedef ClstF<NodeX, NodeY>::TraitsY cluster::F01< NodeX, NodeY >::TraitsY

Definition at line 28 of file f01.hh.

Constructor & Destructor Documentation

◆ F01() [1/2]

template<class NodeX , class NodeY >
cluster::F01< NodeX, NodeY >::F01 ( const Tree< NodeX > &  treeX,
const Tree< NodeY > &  treeY,
const ExpansionF< FX > &  exp,
concepts::Real  eta,
uint  minsz 
)

Constructor.

Different cluster trees for ansatz and test space are possible. The cluster approximation is non symmetric, i.e., CG not applicable.

Parameters
treeXCluster tree
treeYCluster tree
expKernel expansion
etaFar field coefficient
minszMinimal size for to clusters to belong to the far field

◆ F01() [2/2]

template<class NodeX , class NodeY >
cluster::F01< NodeX, NodeY >::F01 ( const Tree< NodeX > &  tree,
const ExpansionF< FX > &  exp,
concepts::Real  eta,
uint  minsz 
)

Constructor.

Same cluster tree for ansatz and test space, i.e. for symmetric stiffness matrices the cluster approximation will also be symmetric.

Parameters
treeCluster tree
expKernel expansion
etaFar field coefficient
minszMinimal size for to clusters to belong to the far field

◆ ~F01()

template<class NodeX , class NodeY >
cluster::F01< NodeX, NodeY >::~F01 ( )

Member Function Documentation

◆ constructor_()

template<class NodeX , class NodeY >
void cluster::F01< NodeX, NodeY >::constructor_ ( const NodeX *  clstX,
const NodeY *  clstY 
)
private

Constructor for recursive calls (non symmetric)

◆ constructorSym_()

template<class NodeX , class NodeY >
void cluster::F01< NodeX, NodeY >::constructorSym_ ( const NodeX *  clstX,
const NodeY *  clstY 
)
private

Constructor for recursive calls (symmetric)

◆ info() [1/2]

template<class NodeX , class NodeY >
std::ostream& cluster::F01< NodeX, NodeY >::info ( std::ostream &  os) const
protectedvirtual

Some basic informations.

Reimplemented from concepts::OutputOperator.

◆ info() [2/2]

template<class NodeX , class NodeY >
std::ostream& cluster::F01< NodeX, NodeY >::info ( std::ostream &  os,
uint  idxX,
uint  idxY 
) const

Some detailed information about the far field concering two DoF's.

Parameters
osOutput stream
idxXNumber of DoF
idxYNumber of DoF

◆ info_()

template<class NodeX , class NodeY >
template<class Trts , class Nd >
uint cluster::F01< NodeX, NodeY >::info_ ( uint  idx,
const Nd *  clst,
std::unordered_map< uint, uint > &  nlf 
) const
private

Information routine for recursive calls used by info(os, idxX, idxY)

◆ memory()

template<class NodeX , class NodeY >
float cluster::F01< NodeX, NodeY >::memory
inline

Memory used by F01 in bytes.

Definition at line 137 of file f01.hh.

◆ operator()()

template<class NodeX , class NodeY >
void cluster::F01< NodeX, NodeY >::operator() ( const ClstY< NodeY > &  vecY,
ClstX< NodeX > &  vecX 
) const
virtual

Application operator.

Implements cluster::ClstF< NodeX, NodeY >.

◆ scan()

template<class NodeX , class NodeY >
NfldScan* cluster::F01< NodeX, NodeY >::scan ( ) const
inlinevirtual

Scanner for the nearfield.

Implements cluster::ClstF< NodeX, NodeY >.

Definition at line 123 of file f01.hh.

Member Data Documentation

◆ eta_

template<class NodeX , class NodeY >
concepts::Real cluster::F01< NodeX, NodeY >::eta_
private

Far field coefficient.

Definition at line 68 of file f01.hh.

◆ exp_

template<class NodeX , class NodeY >
const ExpansionF<FX>& cluster::F01< NodeX, NodeY >::exp_
private

Kernel expansion.

Definition at line 63 of file f01.hh.

◆ ffld_

template<class NodeX , class NodeY >
Ffld* cluster::F01< NodeX, NodeY >::ffld_
private

Far field entries.

Definition at line 72 of file f01.hh.

◆ m_

template<class NodeX , class NodeY >
uint cluster::F01< NodeX, NodeY >::m_
private

Expansion order.

Definition at line 66 of file f01.hh.

◆ minsz_

template<class NodeX , class NodeY >
uint cluster::F01< NodeX, NodeY >::minsz_
private

Minimal size for a cluster pair in the far field.

Definition at line 70 of file f01.hh.

◆ nffld_

template<class NodeX , class NodeY >
uint cluster::F01< NodeX, NodeY >::nffld_
private

Number of far field entries.

Definition at line 74 of file f01.hh.

◆ nfld_

template<class NodeX , class NodeY >
concepts::Joiner<NfldNodes, 1>* cluster::F01< NodeX, NodeY >::nfld_
private

Near field entries.

Definition at line 76 of file f01.hh.

◆ nnfld_

template<class NodeX , class NodeY >
uint cluster::F01< NodeX, NodeY >::nnfld_
private

Number of near field entries.

Definition at line 78 of file f01.hh.

◆ treeX_

template<class NodeX , class NodeY >
const Tree<NodeX>& cluster::F01< NodeX, NodeY >::treeX_
private

Cluster trees.

Definition at line 59 of file f01.hh.

◆ treeY_

template<class NodeX , class NodeY >
const Tree<NodeY>& cluster::F01< NodeX, NodeY >::treeY_
private

Definition at line 60 of file f01.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich