AFEPack
公有成员 | 私有属性
BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >模板类参考

#include <BilinearOperator.h>

类BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >继承关系图:
SparseMatrix L2InnerProduct< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >

所有成员的列表。

公有成员

 BilinearOperator ()
 BilinearOperator (FEMSpace< value_type0, DIM, DOW, TDIM0 > &, FEMSpace< value_type1, DIM, DOW, TDIM1 > &)
virtual ~BilinearOperator ()
void reinit (FEMSpace< value_type0, DIM, DOW, TDIM0 > &, FEMSpace< value_type1, DIM, DOW, TDIM1 > &)
const FEMSpace< value_type0,
DIM, DOW, TDIM0 > & 
FEMSpace0 () const
const FEMSpace< value_type1,
DIM, DOW, TDIM1 > & 
FEMSpace1 () const
FEMSpace< value_type0, DIM,
DOW, TDIM0 > * 
FEMSpace0 ()
FEMSpace< value_type1, DIM,
DOW, TDIM1 > * 
FEMSpace1 ()
const SparsityPattern & getSparsityPattern () const
SparsityPattern & getSparsityPattern ()
const int & nDof0 () const
const int & nDof1 () const
const int & nMaxCouplingDof () const
int & nDof0 ()
int & nDof1 ()
int & nMaxCouplingDof ()
const std::vector< int > & elementDof0 () const
const std::vector< int > & elementDof1 () const
const int & elementDof0 (const int &i) const
const int & elementDof1 (const int &i) const
const FullMatrix< double > & elementMatrix () const
const double elementMatrix (const int &i, const int &j) const
FullMatrix< double > & elementMatrix ()
double & elementMatrix (const int &i, const int &j)
void buildDofInfo ()
void addElementPattern ()
void addElementMatrix ()
void getElementPattern (const Element< value_type0, DIM, DOW, TDIM0 > &, const Element< value_type1, DIM, DOW, TDIM1 > &)
const int & algebricAccuracy () const
int & algebricAccuracy ()
virtual void getElementMatrix (const Element< value_type0, DIM, DOW, TDIM0 > &, const Element< value_type1, DIM, DOW, TDIM1 > &, const typename ActiveElementPairIterator< DIM >::State state=ActiveElementPairIterator< DIM >::EQUAL)=0
virtual void build ()
virtual void buildSparsityPattern ()
virtual void buildSparseMatrix ()

私有属性

SparsityPattern sparsity_pattern
FEMSpace< value_type0, DIM,
DOW, TDIM0 > * 
fem_space0
FEMSpace< value_type1, DIM,
DOW, TDIM1 > * 
fem_space1
int n_dof0
int n_dof1
int n_max_coupling_dof
const std::vector< int > * element_dof0
const std::vector< int > * element_dof1
FullMatrix< double > element_matrix
int algebric_accuracy

详细描述

template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
class BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >

class BilinearOperator is the discretized version of the bilinear form on two linear space

\[ a(u,v), \qquad u \in U, v \in V \]

thus for $ U $ and $ V $ to be finite dimensional space with basis function as $ \phi^i, 1\leq i\leq M $ and $ \psi^j, 1\leq j \leq N $, respectively, the bilinear form can be given as a matrix with its entry as

\[ a^{ij} = a(\phi^i, \psi^j) \]

The linear finite dimensional spaces here are two finite element space and the resulted matrix is a sparse matrix. The method getElementMatrix is a pure virtual function that you must specify this method in derived class to contruct an object. Typical code to use this class is as:

 // definition of the derived class
 class a_bilinear_operator : 
   public BilinearOperator<DIM, double>
 {
   ... ...
   virtual void getElementMatrix(const Element<double,DIM>&,
                                 const Element<double,DIM>&);
   ... ...
 };
 a_bilinear_operator::getElementMatrix(const Element<double,DIM>&,
                                       const Element<double,DIM>&)
 {
   // implementation code of this bilinear operator
   ... ...
 };
 // use this bilinear operator
 void some_function()
 {
   ... ...
   a_bilinear_operator op(fem_space0, fem_space1);
   a_bilinear_operator.algebricAccuracy() = 3;
   a_bilinear_operator.build();
   ... ...
 };
 

构造及析构函数文档

template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::BilinearOperator ( )
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::BilinearOperator ( FEMSpace< value_type0, DIM, DOW, TDIM0 > &  ,
FEMSpace< value_type1, DIM, DOW, TDIM1 > &   
)
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
virtual BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::~BilinearOperator ( ) [virtual]

成员函数文档

template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::addElementMatrix ( )
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::addElementPattern ( )
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::algebricAccuracy ( ) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::algebricAccuracy ( ) [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
virtual void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::build ( ) [virtual]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::buildDofInfo ( )
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
virtual void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::buildSparseMatrix ( ) [virtual]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
virtual void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::buildSparsityPattern ( ) [virtual]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const std::vector<int>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementDof0 ( ) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementDof0 ( const int &  i) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const std::vector<int>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementDof1 ( ) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementDof1 ( const int &  i) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const FullMatrix<double>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementMatrix ( ) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const double BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementMatrix ( const int &  i,
const int &  j 
) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
FullMatrix<double>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementMatrix ( ) [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
double& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementMatrix ( const int &  i,
const int &  j 
) [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const FEMSpace<value_type0,DIM,DOW,TDIM0>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::FEMSpace0 ( ) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
FEMSpace<value_type0,DIM,DOW,TDIM0>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::FEMSpace0 ( ) [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const FEMSpace<value_type1,DIM,DOW,TDIM1>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::FEMSpace1 ( ) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
FEMSpace<value_type1,DIM,DOW,TDIM1>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::FEMSpace1 ( ) [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
virtual void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::getElementMatrix ( const Element< value_type0, DIM, DOW, TDIM0 > &  ,
const Element< value_type1, DIM, DOW, TDIM1 > &  ,
const typename ActiveElementPairIterator< DIM >::State  state = ActiveElementPairIteratorDIM >::EQUAL 
) [pure virtual]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::getElementPattern ( const Element< value_type0, DIM, DOW, TDIM0 > &  ,
const Element< value_type1, DIM, DOW, TDIM1 > &   
)
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const SparsityPattern& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::getSparsityPattern ( ) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
SparsityPattern& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::getSparsityPattern ( ) [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nDof0 ( ) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nDof0 ( ) [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nDof1 ( ) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nDof1 ( ) [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nMaxCouplingDof ( ) const [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nMaxCouplingDof ( ) [inline]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::reinit ( FEMSpace< value_type0, DIM, DOW, TDIM0 > &  ,
FEMSpace< value_type1, DIM, DOW, TDIM1 > &   
)

成员数据文档

template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
int BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::algebric_accuracy [private]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const std::vector<int>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::element_dof0 [private]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
const std::vector<int>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::element_dof1 [private]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
FullMatrix<double> BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::element_matrix [private]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
FEMSpace<value_type0,DIM,DOW,TDIM0>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::fem_space0 [private]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
FEMSpace<value_type1,DIM,DOW,TDIM1>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::fem_space1 [private]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
int BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::n_dof0 [private]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
int BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::n_dof1 [private]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
int BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::n_max_coupling_dof [private]
template<int DIM, class value_type0, class value_type1 = value_type0, int DOW = DIM, int TDIM0 = DIM, int TDIM1 = DIM>
SparsityPattern BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::sparsity_pattern [private]

该类的文档由以下文件生成: