An abstract class for a T matrix. More...

#include <element.hh>

Inheritance diagram for concepts::TMatrixBase< F >:
concepts::TIndex< F > vectorial::TMatrixOffset< F >

Public Member Functions

virtual void extract (const concepts::Vector< F > &solution, concepts::Array< F > &coeff) const =0
 Extracts the part of solution belonging to this T matrix into coeff. More...
 
virtual void extract (const concepts::Vector<::std::complex< F > > &solution, concepts::Array<::std::complex< F > > &coeff) const =0
 
virtual uint index (const uint i) const =0
 Maps the local index i to the global index. More...
 
uint m () const
 Returns the number of rows. More...
 
uint n () const
 Returns the number of columns. More...
 
virtual void operator() (const ElementMatrix< F > &A, ElementMatrix< F > &B) const =0
 Application operator. More...
 
virtual void operator() (const ElementMatrix<::std::complex< F > > &A, ElementMatrix<::std::complex< F > > &B) const =0
 
void setM (uint m)
 
 TMatrixBase (const uint m, const uint n)
 Constructor. More...
 
 TMatrixBase (const uint n)
 Constructor. More...
 
virtual void usedIdx (TColumn< bool > &c) const =0
 Marks the used local indices in c with true, the local indices which are not set to false. More...
 
virtual ~TMatrixBase ()
 

Protected Member Functions

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

Protected Attributes

uint m_
 Number of rows. More...
 
uint n_
 Number of columns. More...
 

Detailed Description

template<class F>
class concepts::TMatrixBase< F >

An abstract class for a T matrix.

A T matrix describes the mapping of local degrees of freedom to global degrees of freedom.

A T matrix describes how the local shape functions are glued together to form to global (continuous) shape functions. It contains the informatin how an element matrix is assembled into the global matrix. It is defined as follows:
Let $m_K$ be the number of local shape functions $\{\phi_j^K\}_{j=1}^{m_K}$ in the element $K$ and $N$ the number of global basis functions $\{\Phi_i\}_{i=1}^N$. The T matrix $T_K \in R^{m_K \times N}$ of the element $K$ describes how the restriction of the global basis functions $\{\Phi_i\}_{i=1}^N$ onto the element $K$ are constructed from the local shape functions:

\[ \Phi_i|_{K} = \sum_{j=1}^{m_K} [T_K]_{ji} \phi_j^K \]

and in vector notation: $\vec \Phi|_{K} = T_K^\top \vec \phi^K$.

Definition at line 37 of file element.hh.

Constructor & Destructor Documentation

◆ TMatrixBase() [1/2]

template<class F >
concepts::TMatrixBase< F >::TMatrixBase ( const uint  n)

Constructor.

Sets the number of rows to zero.

Parameters
nNumber of columns

◆ TMatrixBase() [2/2]

template<class F >
concepts::TMatrixBase< F >::TMatrixBase ( const uint  m,
const uint  n 
)

Constructor.

Parameters
mNumber of rows
nNumber of columns

◆ ~TMatrixBase()

template<class F >
virtual concepts::TMatrixBase< F >::~TMatrixBase ( )
virtual

Member Function Documentation

◆ extract() [1/2]

template<class F >
virtual void concepts::TMatrixBase< F >::extract ( const concepts::Vector< F > &  solution,
concepts::Array< F > &  coeff 
) const
pure virtual

Extracts the part of solution belonging to this T matrix into coeff.

coeff is resized and zeroed before filling it with the coefficients.

Parameters
solutionVector in the global space (input)
coeffLocal coefficients of this T matrix (output)

Implemented in vectorial::TMatrixOffset< F >, concepts::TIndex< F >, and concepts::TIndex< concepts::Real >.

◆ extract() [2/2]

template<class F >
virtual void concepts::TMatrixBase< F >::extract ( const concepts::Vector<::std::complex< F > > &  solution,
concepts::Array<::std::complex< F > > &  coeff 
) const
pure virtual

◆ index()

template<class F >
virtual uint concepts::TMatrixBase< F >::index ( const uint  i) const
pure virtual

Maps the local index i to the global index.

Implemented in concepts::TIndex< F >, and concepts::TIndex< concepts::Real >.

◆ info()

template<class F >
virtual ::std::ostream& concepts::TMatrixBase< F >::info ( ::std::ostream &  os) const
protected

◆ m()

template<class F >
uint concepts::TMatrixBase< F >::m ( ) const
inline

Returns the number of rows.

Definition at line 388 of file tmatrix.hh.

◆ n()

template<class F >
uint concepts::TMatrixBase< F >::n ( ) const
inline

Returns the number of columns.

Definition at line 393 of file tmatrix.hh.

◆ operator()() [1/2]

template<class F >
virtual void concepts::TMatrixBase< F >::operator() ( const ElementMatrix< F > &  A,
ElementMatrix< F > &  B 
) const
pure virtual

Application operator.

Computes the application of the T matrix on A and returns B: $B = A \cdot T$. Typical usage: assembling the element matrices. The element matrix A is transformed using

\[((AT)^\top \cdot T)^\top = T^\top A T\]

and then simply added entry by entry into the global matrix. This is the case for element matrices which have the same "left" and "right" T matrix. Otherwise, this looks like

\[((A T_y)^\top \cdot T_x)^\top = T_x^\top A T_y.\]

Parameters
AElement matrix
BResult

Implemented in concepts::TIndex< F >, concepts::TIndex< concepts::Real >, and vectorial::TMatrixOffset< F >.

◆ operator()() [2/2]

template<class F >
virtual void concepts::TMatrixBase< F >::operator() ( const ElementMatrix<::std::complex< F > > &  A,
ElementMatrix<::std::complex< F > > &  B 
) const
pure virtual

◆ setM()

template<class F >
void concepts::TMatrixBase< F >::setM ( uint  m)
inline

Definition at line 390 of file tmatrix.hh.

◆ usedIdx()

template<class F >
virtual void concepts::TMatrixBase< F >::usedIdx ( TColumn< bool > &  c) const
pure virtual

Marks the used local indices in c with true, the local indices which are not set to false.

Precondition
c has the correct size

Implemented in concepts::TIndex< F >, concepts::TIndex< concepts::Real >, and vectorial::TMatrixOffset< F >.

Member Data Documentation

◆ m_

template<class F >
uint concepts::TMatrixBase< F >::m_
protected

Number of rows.

Definition at line 420 of file tmatrix.hh.

◆ n_

template<class F >
uint concepts::TMatrixBase< F >::n_
protected

Number of columns.

Definition at line 418 of file tmatrix.hh.


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