Go to the documentation of this file.
6 #ifndef aglowavElement_hh
7 #define aglowavElement_hh
39 virtual ~M() {
delete[]
m_;}
47 void mult(
const F* src, F* dst)
const;
54 void mult_T(
const F* src, F* dst)
const;
56 uint
n()
const {
return d;}
58 virtual std::ostream&
info(std::ostream& os)
const;
67 for(uint i = 0; i < d-1; i++) os << m_[i] <<
", ";
77 for(i = 0; i < d; i++) A += m[i];
78 for(i = 0; i < d; i++) m_[i] = sqrt(m[i]/A);
85 dst[0] = m_[0]*src[0] - m_[1]*src[1];
86 dst[1] = m_[1]*src[0] + m_[0]*src[1];
93 dst[0] = m_[0]*src[0] + m_[1]*src[1];
94 dst[1] = -m_[1]*src[0] + m_[0]*src[1];
103 template <
class F = concepts::Real, u
int d = 2>
120 uint
l()
const {
return l_;}
121 uint
j()
const {
return j_;}
161 template <
class F = concepts::Real>
176 T_((
key.l()==0) ? 2 : 1, (
key.l()==0) ? 2 : 1, idx),
lft_(lft),
205 std::ostream&
info(std::ostream& os)
const;
220 return (!j && !lft_) ? nd_->child(0)->element() :
221 (j==1 && !rght_) ? nd_->child(1)->element() :
227 return (lft_) ? 0 : nd_->child(0)->element();
232 return (rght_) ? 0 : nd_->child(1)->element();
237 os <<
"aglowav::"<<
concepts::typeOf(*
this) <<
"(" << *nd_ <<
", key = (" << this->key().l();
238 os <<
',' << this->key().j() <<
"), " << T_ <<
", ";
239 return os << this->trafoM() <<
")";
244 #endif // aglowavElement_hh
uint nchild() const
Maximal number of children.
Key key_
Key of the element.
An abstract class for an element of a space.
Haar3dXXX(const Haar3dXXX< F, d >::Key &key, const concepts::Real *m)
Constructor.
M(const concepts::Real *m)
Constructor.
Haar3d000< F > * lft_
Left child of the element.
uint n() const
returns the matrix dimension
int operator<(const Key &key)
const M< d > & trafoM() const
Relation between the supports of parent and child.
M< d > M_
Transformation matrix of the element.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
const BiClNode00< F > * nd_
Node in the cluster tree.
const bem::Constant3d001< F > * element(uint j) const
Returns the j-th leaf of the wavelet.
void mult(const F *src, F *dst) const
Multiplication of src with M.
virtual const bem::Constant3d001< F > * element(uint j) const =0
Element of the wavelet (if leaf)
Haar3d000< F > * right() const
Right child of the element.
std::ostream & info(std::ostream &os) const
Information about the element.
virtual ~Haar3dXXX()
Destructor.
Binary node for the cluster and Haar wavelet agglomeration algorithm.
void mult_T(const F *src, F *dst) const
Multiplication of src with M transpose.
Abstract space element for the agglomerated wavelets.
Key of the wavelet element.
Haar3d000< F > * rght_
Right child of the element.
Haar3d000< F > * left() const
Left child of the element.
Local transformation matrix.
virtual Haar3dXXX< F, d > * child(uint j) const =0
j-th child of the element
Constant space element with a level dependent key.
const bem::Constant3d001< F > * elmright() const
Return the right leaf of the wavelet.
Binary space element for the agglomerated wavelets.
concepts::TIndex< F > T_
Global degree of freedom.
concepts::Real * m_
matrix entries
An abstract class for a T matrix.
Haar3d000(const typename Haar3dXXX< F, 2 >::Key &key, const concepts::Real *m, const BiClNode00< F > *nd, uint idx[], Haar3d000< F > *lft=0, Haar3d000< F > *rght=0)
Constructor.
Haar3d000< F > * child(uint j) const
j-th child of the element
const bem::Constant3d001< F > * elmleft() const
Returns the left leaf of the wavelet.
virtual concepts::Real radius() const =0
Radius of the element.
concepts::Real radius() const
Radius of the element.
int operator==(const Key &key)
const concepts::TMatrixBase< F > & T() const
Global degree of freedom.
Used for the aglowav classes for the boundary element method.
std::string typeOf(const T &t)
Return the typeid name of a class object.
virtual const concepts::Real3d & center() const =0
Center of the element.
Class providing an output operator.
double Real
Type normally used for a floating point number.
const concepts::Real3d & center() const
Center of the element.
T matrix for linear and regular elements.
Key key() const
Key of the element.