AFEPack
|
#include <BilinearOperator.h>
公有成员 | |
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 |
class BilinearOperator is the discretized version of the bilinear form on two linear space
thus for and
to be finite dimensional space with basis function as
and
, respectively, the bilinear form can be given as a matrix with its entry as
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(); ... ... };
BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::BilinearOperator | ( | ) |
BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::BilinearOperator | ( | FEMSpace< value_type0, DIM, DOW, TDIM0 > & | , |
FEMSpace< value_type1, DIM, DOW, TDIM1 > & | |||
) |
virtual BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::~BilinearOperator | ( | ) | [virtual] |
void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::addElementMatrix | ( | ) |
void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::addElementPattern | ( | ) |
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::algebricAccuracy | ( | ) | const [inline] |
int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::algebricAccuracy | ( | ) | [inline] |
virtual void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::build | ( | ) | [virtual] |
void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::buildDofInfo | ( | ) |
virtual void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::buildSparseMatrix | ( | ) | [virtual] |
virtual void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::buildSparsityPattern | ( | ) | [virtual] |
const std::vector<int>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementDof0 | ( | ) | const [inline] |
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementDof0 | ( | const int & | i | ) | const [inline] |
const std::vector<int>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementDof1 | ( | ) | const [inline] |
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementDof1 | ( | const int & | i | ) | const [inline] |
const FullMatrix<double>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementMatrix | ( | ) | const [inline] |
const double BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementMatrix | ( | const int & | i, |
const int & | j | ||
) | const [inline] |
FullMatrix<double>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementMatrix | ( | ) | [inline] |
double& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::elementMatrix | ( | const int & | i, |
const int & | j | ||
) | [inline] |
const FEMSpace<value_type0,DIM,DOW,TDIM0>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::FEMSpace0 | ( | ) | const [inline] |
FEMSpace<value_type0,DIM,DOW,TDIM0>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::FEMSpace0 | ( | ) | [inline] |
const FEMSpace<value_type1,DIM,DOW,TDIM1>& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::FEMSpace1 | ( | ) | const [inline] |
FEMSpace<value_type1,DIM,DOW,TDIM1>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::FEMSpace1 | ( | ) | [inline] |
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 = ActiveElementPairIterator< DIM >::EQUAL |
||
) | [pure virtual] |
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 > & | |||
) |
const SparsityPattern& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::getSparsityPattern | ( | ) | const [inline] |
SparsityPattern& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::getSparsityPattern | ( | ) | [inline] |
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nDof0 | ( | ) | const [inline] |
int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nDof0 | ( | ) | [inline] |
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nDof1 | ( | ) | const [inline] |
int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nDof1 | ( | ) | [inline] |
const int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nMaxCouplingDof | ( | ) | const [inline] |
int& BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::nMaxCouplingDof | ( | ) | [inline] |
void BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::reinit | ( | FEMSpace< value_type0, DIM, DOW, TDIM0 > & | , |
FEMSpace< value_type1, DIM, DOW, TDIM1 > & | |||
) |
int BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::algebric_accuracy [private] |
const std::vector<int>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::element_dof0 [private] |
const std::vector<int>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::element_dof1 [private] |
FullMatrix<double> BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::element_matrix [private] |
FEMSpace<value_type0,DIM,DOW,TDIM0>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::fem_space0 [private] |
FEMSpace<value_type1,DIM,DOW,TDIM1>* BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::fem_space1 [private] |
int BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::n_dof0 [private] |
int BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::n_dof1 [private] |
int BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::n_max_coupling_dof [private] |
SparsityPattern BilinearOperator< DIM, value_type0, value_type1, DOW, TDIM0, TDIM1 >::sparsity_pattern [private] |