Chombo + EB
3.0
|
#include <RelaxSolver.H>
Public Member Functions | |
RelaxSolver () | |
virtual | ~RelaxSolver () |
virtual void | setHomogeneous (bool a_homogeneous) |
virtual void | define (LinearOp< T > *a_op, bool a_homogeneous) |
virtual void | solve (T &a_phi, const T &a_rhs) |
Public Member Functions inherited from LinearSolver< T > | |
virtual | ~LinearSolver () |
virtual void | setConvergenceMetrics (Real a_metric, Real a_tolerance) |
Set a convergence metric, along with solver tolerance, if desired. More... | |
Public Attributes | |
bool | m_homogeneous |
LinearOp< T > * | m_op |
int | m_imax |
int | m_normType |
int | m_verbosity |
Real | m_eps |
Real | m_hang |
Private Attributes | |
Real | m_minNorm |
Iterative solver which only uses the operator's preconditioner. Probably only useful as a bottom solver.
RelaxSolver< T >::RelaxSolver | ( | ) |
|
virtual |
|
inlinevirtual |
Set whether the solver uses only homogeneous boundary conditions
Implements LinearSolver< T >.
References RelaxSolver< T >::define(), RelaxSolver< T >::m_homogeneous, and RelaxSolver< T >::solve().
|
virtual |
Define the solver. a_op is the linear operator.
Implements LinearSolver< T >.
References RelaxSolver< T >::m_homogeneous, and RelaxSolver< T >::m_op.
Referenced by RelaxSolver< T >::setHomogeneous().
|
virtual |
Solve L(phi) = rho
Implements LinearSolver< T >.
References CH_assert, CH_TIME, RelaxSolver< T >::m_eps, RelaxSolver< T >::m_hang, RelaxSolver< T >::m_homogeneous, RelaxSolver< T >::m_imax, RelaxSolver< T >::m_minNorm, RelaxSolver< T >::m_normType, RelaxSolver< T >::m_op, RelaxSolver< T >::m_verbosity, norm(), and pout().
Referenced by RelaxSolver< T >::setHomogeneous().
bool RelaxSolver< T >::m_homogeneous |
public member data: whether or not to use inhomogeneous boundary conditions.
Referenced by RelaxSolver< T >::define(), RelaxSolver< T >::setHomogeneous(), and RelaxSolver< T >::solve().
LinearOp<T>* RelaxSolver< T >::m_op |
public member data: linear operator.
Referenced by RelaxSolver< T >::define(), and RelaxSolver< T >::solve().
int RelaxSolver< T >::m_imax |
public member data: maximum number of iterations
Referenced by RelaxSolver< T >::solve().
int RelaxSolver< T >::m_normType |
public member data: which type of norm to use (default is 2-norm)
Referenced by RelaxSolver< T >::solve().
int RelaxSolver< T >::m_verbosity |
public member data: how much screen output user wants
Referenced by RelaxSolver< T >::solve().
Real RelaxSolver< T >::m_eps |
public member data: solver tolerance
Referenced by RelaxSolver< T >::solve().
Real RelaxSolver< T >::m_hang |
public member data: hang when min(previous residual norms) < m_hang * current residual norm (default is zero – don't check for hanging)
Referenced by RelaxSolver< T >::solve().
|
private |
Referenced by RelaxSolver< T >::solve().