AFEPack
|
#include <MovingMesh2D.h>
公有成员 | |
Solver () | |
~Solver () | |
u_int | smoothStep () const |
u_int & | smoothStep () |
u_int | minimalOrder () const |
u_int & | minimalOrder () |
void | reinit (SparseMatrix< double > &, const std::vector< int > &, const Domain &) |
void | clear () |
void | solve (std::vector< Vector< double > > &x, const std::vector< Vector< double > > &r, u_int steps=5) const |
私有成员 | |
void | Project (const SparseMatrix< double > &M, const std::vector< int > &bm, SparseMatrix< double > *&P, SparseMatrix< double > *&PMPT, SparseMatrix< double > *&Pt, std::vector< bound_t > *&pbm) |
void | Init (SparseMatrix< double > &, const std::vector< int > &, const Domain &) |
void | GaussSidel (const SparseMatrix< double > &M, std::vector< Vector< double > > &x, const std::vector< Vector< double > > &r, const std::vector< int > &bm, const u_int &s) const |
SparseMatrix< double > * | getPMPT (const SparseMatrix< double > &P, const SparseMatrix< double > &M, const SparseMatrix< double > &Pt) const |
void | lazyPMPT (const SparseMatrix< double > &P, const SparseMatrix< double > &M, const SparseMatrix< double > &Pt, SparseMatrix< double > &A) const |
私有属性 | |
bool | is_initialized |
int | n_project |
std::vector< SparseMatrix < double > * > | project_matrix |
std::vector< SparseMatrix < double > * > | project_matrix_r |
std::vector< SparseMatrix < double > * > | projected_matrix |
std::vector< const std::vector < int > * > | boundary_mark |
u_int | smooth_step |
u_int | min_order |
const Domain * | domain |
void MovingMesh2D::Solver::clear | ( | ) |
void MovingMesh2D::Solver::GaussSidel | ( | const SparseMatrix< double > & | M, |
std::vector< Vector< double > > & | x, | ||
const std::vector< Vector< double > > & | r, | ||
const std::vector< int > & | bm, | ||
const u_int & | s | ||
) | const [private] |
< M Ԫ
< ԽԪ
< ڲĵͲͶӰ
< ȼ
< Ա߽ϵĵһͶӰ
<
ֻһԼʱŸ£Լ ζ㲻ƶ
sparse_matrix_t * MovingMesh2D::Solver::getPMPT | ( | const SparseMatrix< double > & | P, |
const SparseMatrix< double > & | M, | ||
const SparseMatrix< double > & | Pt | ||
) | const [private] |
< add the diagonal entry at first
void MovingMesh2D::Solver::Init | ( | SparseMatrix< double > & | , |
const std::vector< int > & | , | ||
const Domain & | |||
) | [private] |
void MovingMesh2D::Solver::lazyPMPT | ( | const SparseMatrix< double > & | P, |
const SparseMatrix< double > & | M, | ||
const SparseMatrix< double > & | Pt, | ||
SparseMatrix< double > & | A | ||
) | const [private] |
u_int MovingMesh2D::Solver::minimalOrder | ( | ) | const [inline] |
u_int& MovingMesh2D::Solver::minimalOrder | ( | ) | [inline] |
void MovingMesh2D::Solver::Project | ( | const SparseMatrix< double > & | M, |
const std::vector< int > & | bm, | ||
SparseMatrix< double > *& | P, | ||
SparseMatrix< double > *& | PMPT, | ||
SparseMatrix< double > *& | Pt, | ||
std::vector< bound_t > *& | pbm | ||
) | [private] |
ѡĵ㣬ȽϱʶϸߵĵѡΪĵ㡣
< һѾ
< ΪͶӰɶȵı߽ŷռ
< 趨ͶӰɶȵı߽
void MovingMesh2D::Solver::reinit | ( | SparseMatrix< double > & | , |
const std::vector< int > & | , | ||
const Domain & | |||
) |
to solve a linear system with the same sparsity pattern as already initialized matrix
u_int MovingMesh2D::Solver::smoothStep | ( | ) | const [inline] |
u_int& MovingMesh2D::Solver::smoothStep | ( | ) | [inline] |
void MovingMesh2D::Solver::solve | ( | std::vector< Vector< double > > & | x, |
const std::vector< Vector< double > > & | r, | ||
u_int | steps = 5 |
||
) | const |
< ߽
< ߽
std::vector<const std::vector<int> *> MovingMesh2D::Solver::boundary_mark [private] |
const Domain* MovingMesh2D::Solver::domain [private] |
bool MovingMesh2D::Solver::is_initialized [private] |
< ƵĴ
u_int MovingMesh2D::Solver::min_order [private] |
int MovingMesh2D::Solver::n_project [private] |
std::vector<SparseMatrix<double> *> MovingMesh2D::Solver::project_matrix [private] |
std::vector<SparseMatrix<double> *> MovingMesh2D::Solver::project_matrix_r [private] |
std::vector<SparseMatrix<double> *> MovingMesh2D::Solver::projected_matrix [private] |
u_int MovingMesh2D::Solver::smooth_step [private] |