MFEM v2.0
|
#include <iostream>
#include <iomanip>
#include <math.h>
#include "vector.hpp"
#include "matrix.hpp"
#include "densemat.hpp"
Go to the source code of this file.
Functions | |
void | GeneratePlaneRotation (double &dx, double &dy, double &cs, double &sn) |
void | ApplyPlaneRotation (double &dx, double &dy, double &cs, double &sn) |
void | Update (Vector &x, int k, DenseMatrix &h, Vector &s, Array< Vector * > &v) |
double | norm (Vector &u) |
int | GMRES (const Operator &A, Vector &x, const Vector &b, const Operator &M, int &max_iter, int m, double &tol, double &atol, int printit) |
A GMRES solver. | |
int | aGMRES (const Operator &A, Vector &x, const Vector &b, const Operator &M, int &max_iter, int m_max, int m_min, int m_step, double cf, double &tol, double &atol, int printit) |
int aGMRES | ( | const Operator & | A, |
Vector & | x, | ||
const Vector & | b, | ||
const Operator & | M, | ||
int & | max_iter, | ||
int | m_max, | ||
int | m_min, | ||
int | m_step, | ||
double | cf, | ||
double & | tol, | ||
double & | atol, | ||
int | printit | ||
) |
Adaptive restarted GMRES. m_max and m_min(=1) are the maximal and minimal restart parameters. m_step(=1) is the step to use for going from m_max and m_min. cf(=0.4) is a desired convergance factor.
Definition at line 200 of file gmres.cpp.
References DenseMatrix::Add(), Add(), ApplyPlaneRotation(), GeneratePlaneRotation(), Operator::Mult(), norm(), Operator::Size(), subtract(), and Update().
void ApplyPlaneRotation | ( | double & | dx, |
double & | dy, | ||
double & | cs, | ||
double & | sn | ||
) | [inline] |
void GeneratePlaneRotation | ( | double & | dx, |
double & | dy, | ||
double & | cs, | ||
double & | sn | ||
) | [inline] |
int GMRES | ( | const Operator & | A, |
Vector & | x, | ||
const Vector & | b, | ||
const Operator & | M, | ||
int & | max_iter, | ||
int | m, | ||
double & | tol, | ||
double & | atol, | ||
int | printit | ||
) |
A GMRES solver.
Definition at line 84 of file gmres.cpp.
References DenseMatrix::Add(), Add(), ApplyPlaneRotation(), GeneratePlaneRotation(), Operator::Mult(), norm(), Operator::Size(), subtract(), and Update().
double norm | ( | Vector & | u | ) | [inline] |
Definition at line 78 of file gmres.cpp.
Referenced by aGMRES(), VectorDiffusionIntegrator::AssembleElementMatrix(), VectorMassIntegrator::AssembleElementMatrix(), ComputeLpNorm(), SparseMatrix::GetJacobiScaling(), GMRES(), and SparseMatrix::Jacobi2().
void Update | ( | Vector & | x, |
int | k, | ||
DenseMatrix & | h, | ||
Vector & | s, | ||
Array< Vector * > & | v | ||
) | [inline] |
Definition at line 63 of file gmres.cpp.
References Vector::Add(), and Vector::Size().