A column of a T matrix. More...

#include <tmatrix.hh>

Public Member Functions

virtual TColumnBlock< F, dim > * clone () const
 
uint ldof (uint *i) const
 Returns the number of local dof for ith entry in the column. More...
 
const uint * n () const
 Returns the range of the multiindices as an array. More...
 
const uint n (uint i) const
 Returns the range of the multiindex for one direction i. More...
 
F & operator[] (uint *i)
 Returns the /c i th entry in the column. /c i an array of size dim. More...
 
operator[] (uint *i) const
 Returns the ith entry in the column. More...
 
 TColumnBlock (const TColumnBlock< F, dim > &t)
 Copy constructor The link to the next element in the linear list (lnk_) is not copied! More...
 
 TColumnBlock (const TColumnBlock< F, dim > &t, const uint *n)
 Transformation constructor to higher number of rows. More...
 
 TColumnBlock (const uint *n, const uint idx, TColumn< F > *lnk=0)
 Constructor. More...
 
void write (TColumnTensor< F, dim > &t, uint k)
 Copies data of T matrix in tensorised structure into block k. More...
 

Protected Member Functions

virtual ::std::ostream & info (::std::ostream &os) const
 

Private Member Functions

void recursiveOut_ (const int d, uint *n, ushort &position, ::std::ostream &os) const
 For output. More...
 

Private Attributes

uint n_ [dim *dim]
 Number of rows. More...
 

Detailed Description

template<class F, int dim>
class concepts::TColumnBlock< F, dim >

A column of a T matrix.

More than one T column are arranged in a linked list. These columns are inserted into the T matrix.

This T column can be used for 2 and 3 dimensional problems where the T column needs to have a block form (ie. for the application of an S matrix). Each block represents one vector component.

It is assumed that the T matrices have a multiindex.

The first /c dim indices are used for the tensorised shape functions. The range of the first indices could be different in the different blocks. E.g. that is used with edge elements (e.g. hp2Dedge::Quad).

The last index is used for the block structure. The number of blocks is equal to the dimension of elements /c dim.

I.e. the T matrix of tensorised shape functions in 2 dimensions has a threefold multiindex.

The appropiate S matrix is SMatrixBlock

See also
TMatrixBase
SMatrixBase
Author
Kersten Schmidt, 2004

Definition at line 36 of file tmatrix.hh.

Constructor & Destructor Documentation

◆ TColumnBlock() [1/3]

template<class F , int dim>
concepts::TColumnBlock< F, dim >::TColumnBlock ( const uint *  n,
const uint  idx,
TColumn< F > *  lnk = 0 
)

Constructor.

Parameters
nAn array of size (/c dim^2) with the range of the multiindices, e.g. /c dim=2, /c n = {2, 3, 3, 2} builds two blocks of with the particular ranges of the multiindex (0..1,0..2,0) and (0..2,0..1,1)
idxIndex of the column in a T matrix
lnkPointer to the next column (linked list)

◆ TColumnBlock() [2/3]

template<class F , int dim>
concepts::TColumnBlock< F, dim >::TColumnBlock ( const TColumnBlock< F, dim > &  t)

Copy constructor The link to the next element in the linear list (lnk_) is not copied!

◆ TColumnBlock() [3/3]

template<class F , int dim>
concepts::TColumnBlock< F, dim >::TColumnBlock ( const TColumnBlock< F, dim > &  t,
const uint *  n 
)

Transformation constructor to higher number of rows.

Member Function Documentation

◆ clone()

template<class F , int dim>
virtual TColumnBlock<F, dim>* concepts::TColumnBlock< F, dim >::clone ( ) const
virtual

◆ info()

template<class F , int dim>
virtual ::std::ostream& concepts::TColumnBlock< F, dim >::info ( ::std::ostream &  os) const
protected

◆ ldof()

template<class F , int dim>
uint concepts::TColumnBlock< F, dim >::ldof ( uint *  i) const

Returns the number of local dof for ith entry in the column.

i is an array of size dim+1, the last entry is the block number

◆ n() [1/2]

template<class F , int dim>
const uint* concepts::TColumnBlock< F, dim >::n ( ) const
inline

Returns the range of the multiindices as an array.

Definition at line 259 of file tmatrix.hh.

◆ n() [2/2]

template<class F , int dim>
const uint concepts::TColumnBlock< F, dim >::n ( uint  i) const
inline

Returns the range of the multiindex for one direction i.

Definition at line 261 of file tmatrix.hh.

◆ operator[]() [1/2]

template<class F , int dim>
F& concepts::TColumnBlock< F, dim >::operator[] ( uint *  i)
inline

Returns the /c i th entry in the column. /c i an array of size dim.

Definition at line 244 of file tmatrix.hh.

◆ operator[]() [2/2]

template<class F , int dim>
F concepts::TColumnBlock< F, dim >::operator[] ( uint *  i) const
inline

Returns the ith entry in the column.

i an array of size dim+1 the last entry is the block number

Definition at line 239 of file tmatrix.hh.

◆ recursiveOut_()

template<class F , int dim>
void concepts::TColumnBlock< F, dim >::recursiveOut_ ( const int  d,
uint *  n,
ushort position,
::std::ostream &  os 
) const
private

For output.

◆ write()

template<class F , int dim>
void concepts::TColumnBlock< F, dim >::write ( TColumnTensor< F, dim > &  t,
uint  k 
)

Copies data of T matrix in tensorised structure into block k.

The sizes of T matrix and the target block have to coincide.

Member Data Documentation

◆ n_

template<class F , int dim>
uint concepts::TColumnBlock< F, dim >::n_[dim *dim]
private

Number of rows.

Definition at line 268 of file tmatrix.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