operator02.hh

Go to the documentation of this file.
1 
6 #ifndef clusterOperator02_hh
7 #define clusterOperator02_hh
8 
9 #include "basics/exceptions.hh"
10 #include "operator/bilinearForm.hh"
11 #include "operator/compositions.hh"
12 #include "operator/sparseMatrix.hh"
13 #include "cluster/f.hh"
14 
15 namespace cluster {
16 
17  // ************************************************************ Operator02 **
18 
23  template<class NodeX, class NodeY>
24  class Operator02 : public concepts::Operator<typename TreeTraits<NodeX>::F> {
28  typedef typename TraitsX::F FX;
29  typedef typename TraitsY::F FY;
30 
41 
45 
47  void constructor_(const NodeX* X, const NodeY* Y);
48  void constructor_(const concepts::Element<FX>* elmX, const NodeY* Y);
49 
50  protected:
51  std::ostream& info(std::ostream& os) const;
52 
53  public:
61  ClstX<NodeX>& X, ClstY<NodeY>& Y);
62 
66  void operator()(const concepts::Vector<FY>& fncY,
67  concepts::Vector<FX>& fncX);
69  inline float memory() const;
70  inline const concepts::Space<FX>& spaceX() const {return X_.space();}
71  inline const concepts::Space<FY>& spaceY() const {return Y_.space();}
72  };
73 
74  template<class NodeX, class NodeY>
75  inline float Operator02<NodeX, NodeY>::memory() const {
76  return sizeof(Operator02<NodeX, NodeY>) + N_.memory()
78  }
79 
80 } // namespace cluster
81 
82 #endif // clusterOperator02_hh
void operator()(const concepts::Function< FY > &fncY, concepts::Function< FX > &fncX)
An abstract class for an element of a space.
Definition: exceptions.hh:15
concepts::SparseMatrix< FX > N_
Near field matrix.
Definition: operator02.hh:40
Abstract class for a space.
Operator02(concepts::BilinearForm< FX > &bf, ClstF< NodeX, NodeY > &F, ClstX< NodeX > &X, ClstY< NodeY > &Y)
Constructor.
TreeTraits< NodeX > TraitsX
Interface for the operator.
Definition: operator02.hh:26
Abstract class for a function.
Definition: basis.hh:21
ClstF< NodeX, NodeY > & F_
Far field matrix F.
Definition: operator02.hh:34
std::ostream & info(std::ostream &os) const
void constructor_(const NodeX *X, const NodeY *Y)
Constructors for recursive calls.
TreeTraits< NodeY > TraitsY
Definition: operator02.hh:27
Interface class for a node in a cluster tree.
Definition: tree.hh:252
float memory() const
Memory usage in byte.
Definition: operator02.hh:75
void constructor_(const concepts::Element< FX > *elmX, const NodeY *Y)
concepts::ElementMatrix< FX > B_
Definition: operator02.hh:44
concepts::BilinearForm< FX > & bf_
Bilinear form.
Definition: operator02.hh:32
const concepts::Space< FX > & spaceX() const
Definition: operator02.hh:70
Abstract class for an operator.
Definition: ARPACK.hh:16
Node::CF F
Field of the node (Real or Cmplx)
Definition: tree.hh:255
Abstract class for a far field matrix F.
Definition: f.hh:42
Used for the cluster classes for the boundary element method.
Definition: cebysev.hh:13
ClstY< NodeY > & Y_
Far field matrix Y.
Definition: operator02.hh:38
ClstX< NodeX > & X_
Far field matrix X.
Definition: operator02.hh:36
concepts::ElementMatrix< FX > A_
Element matrices to compute the near field matrix.
Definition: operator02.hh:43
void operator()(const concepts::Vector< FY > &fncY, concepts::Vector< FX > &fncX)
virtual const concepts::Space< F > & space() const =0
Space.
const concepts::Space< FY > & spaceY() const
Definition: operator02.hh:71
Cluster approximation of the stiffness matrix.
Definition: operator02.hh:24
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich