HermesCommon  2.0
Hermes::Solvers::NonlinearSolver< Scalar > Class Template Reference

Base class for defining interface for nonlinear solvers. More...

#include <nonlinear_solver.h>

+ Inheritance diagram for Hermes::Solvers::NonlinearSolver< Scalar >:

Public Member Functions

 NonlinearSolver (DiscreteProblemInterface< Scalar > *dp)
 
virtual void solve (Scalar *coeff_vec)
 
Scalar * get_sln_vector ()
 
void set_iterative_method (const char *iterative_method_name)
 
void set_preconditioner (const char *preconditioner_name)
 
- Public Member Functions inherited from Hermes::Mixins::Loggable
void set_verbose_output (bool to_set)
 Sets the attribute verbose_output to the paramater option passed.
 
bool get_verbose_output () const
 Returns the current value of verbose_output;.
 
void set_verbose_callback (callbackFn callback)
 
callbackFn get_verbose_callback () const
 Returns the current value of verbose_callback;.
 
- Public Member Functions inherited from Hermes::Mixins::TimeMeasurable
 TimeMeasurable (const char *name=NULL)
 Constructs internal structures and starts measuring.
 
const TimeMeasurablereset ()
 Resets accumulated time.
 
const TimeMeasurabletick_reset ()
 Starts a new period and resets accumulated time.
 
const TimeMeasurabletick (TimeMeasurable::TimerPeriodTickType type=HERMES_ACCUMULATE)
 Starts/ends a new period.
 
const std::string & name () const
 Returns a name of the time period if any.
 
double accumulated () const
 Returns accumulated time (in seconds).
 
std::string accumulated_str () const
 Returns accumulated time in human readable form.
 
double last () const
 Returns last measured period (in seconds). More...
 
std::string last_str () const
 Returns last measured period in human readable form.
 
- Public Member Functions inherited from Hermes::Mixins::IntegrableWithGlobalOrder
void set_global_integration_order (unsigned int order)
 
- Public Member Functions inherited from Hermes::Mixins::SettableComputationTime
virtual void set_time (double time)
 set time information for time-dependent problems.
 
virtual void set_time_step (double time_step)
 

Protected Attributes

DiscreteProblemInterface
< Scalar > * 
dp
 NonlinearProblem(DiscreteProblemInterface *) ctor. More...
 
Scalar * sln_vector
 The solution vector.
 
int error
 For use of error measurement.
 
bool precond_yes
 Preconditioned solver.
 
char * iterative_method
 
char * preconditioner
 

Additional Inherited Members

- Public Types inherited from Hermes::Mixins::TimeMeasurable
enum  TimerPeriodTickType { HERMES_ACCUMULATE, HERMES_SKIP }
 Tick type. Used by the class Hermes::TimePeriod. More...
 
- Public Attributes inherited from Hermes::Mixins::IntegrableWithGlobalOrder
bool global_integration_order_set
 
unsigned int global_integration_order
 
- Public Attributes inherited from Hermes::Mixins::SettableComputationTime
double time
 
double time_step
 
- Protected Member Functions inherited from Hermes::Mixins::Loggable
 Loggable (bool verbose_output=false, callbackFn verbose_callback=NULL)
 
void info (const char *msg,...) const
 
void info_if (bool cond, const char *msg,...) const
 
void warn (const char *msg,...) const
 
void warn_if (bool cond, const char *msg,...) const
 
void error (const char *msg,...) const
 
void error_if (bool cond, const char *msg,...) const
 
void hermes_fwrite (const void *ptr, size_t size, size_t nitems, FILE *stream) const
 
void hermes_fread (void *ptr, size_t size, size_t nitems, FILE *stream) const
 

Detailed Description

template<typename Scalar>
class Hermes::Solvers::NonlinearSolver< Scalar >

Base class for defining interface for nonlinear solvers.

Definition at line 36 of file nonlinear_solver.h.

Member Function Documentation

template<typename Scalar >
void Hermes::Solvers::NonlinearSolver< Scalar >::set_iterative_method ( const char *  iterative_method_name)

Set the name of the iterative method employed by AztecOO (ignored by the other solvers).

Parameters
[in]preconditioner_nameSee the attribute preconditioner.

Definition at line 57 of file nonlinear_solver.cpp.

template<typename Scalar >
void Hermes::Solvers::NonlinearSolver< Scalar >::set_preconditioner ( const char *  preconditioner_name)

Set the name of the preconditioner employed by AztecOO (ignored by the other solvers).

Parameters
[in]preconditioner_nameSee the attribute preconditioner.

Definition at line 71 of file nonlinear_solver.cpp.

template<typename Scalar >
void Hermes::Solvers::NonlinearSolver< Scalar >::solve ( Scalar *  coeff_vec)
virtual

Basic solve method.

Parameters
[in]coeff_vecinitiall guess as a vector of coefficients wrt. basis functions.

Definition at line 44 of file nonlinear_solver.cpp.

Member Data Documentation

template<typename Scalar >
DiscreteProblemInterface<Scalar>* Hermes::Solvers::NonlinearSolver< Scalar >::dp
protected

NonlinearProblem(DiscreteProblemInterface *) ctor.

FE problem being solved (not NULL in case of using

Definition at line 60 of file nonlinear_solver.h.

template<typename Scalar >
char* Hermes::Solvers::NonlinearSolver< Scalar >::iterative_method
protected

Name of the iterative method employed by AztecOO (ignored by the other solvers). Possibilities: gmres, cg, cgs, tfqmr, bicgstab.

Definition at line 75 of file nonlinear_solver.h.

template<typename Scalar >
char* Hermes::Solvers::NonlinearSolver< Scalar >::preconditioner
protected

Name of the preconditioner employed by AztecOO (ignored by the other solvers). Possibilities: none, jacobi, neumann, least-squares, or a preconditioner from IFPACK (see solver/aztecoo.h).

Definition at line 81 of file nonlinear_solver.h.


The documentation for this class was generated from the following files: