OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
Base class for all classes peforming Newton's iteration. More...
#include <newton_base.h>
Public Member Functions | |
newtonBase (ApplicationBase &app) | |
Constructor, receiving the application computing the residual and solving the linear problem. | |
virtual void | assemble () |
Instead of assembling, this function only sets a flag, such that the inner application will be required to assemble a new derivative matrix next time solve() is called. | |
virtual double | residual (AppFrame::FEVector &dst, const AppFrame::FEVectors &rhs) |
virtual void | solve (AppFrame::FEVector &u, const AppFrame::FEVectors &in_vectors) |
The actual Newton solver. | |
virtual void | declare_parameters (ParameterHandler ¶m) |
Declare the input parameters. | |
void | _initialize (ParameterHandler ¶m) |
Read the parameters local to newtonBase. | |
virtual void | initialize (ParameterHandler ¶m) |
Read the parameters. | |
double | threshold (double new_value) |
Set the maximal residual reduction allowed without triggering assembling in the next step. | |
void | initialize_initial_guess (BlockVector< double > &dst) |
Control object for the Newton iteration. | |
Public Member Functions inherited from AppFrame::ApplicationCopy | |
ApplicationCopy (ApplicationBase &ex_app) | |
Constructor for a derived application. | |
~ApplicationCopy () | |
virtual void | remesh () |
Generates the next mesh depending on the mesh generation parameters. | |
virtual void | init_vector (FEVector &dst) const |
Initialize vector to problem size. | |
virtual void | start_vector (FEVector &dst, std::string caller) const |
Initialize vector to problem size. | |
virtual void | Tsolve (FEVector &start, const FEVectors &rhs) |
Solve the dual system assembled with right hand side rhs and return the result in start . | |
virtual double | estimate (const FEVectors &src) |
Error estimation. | |
virtual double | evaluate (const FEVectors &src) |
Evaluate whatever the simulation was made for. | |
virtual void | grid_out (const std::string &filename) const |
Write the mesh in the format specified by the ParameterHandler. | |
virtual void | data_out (const std::string &filename, const FEVectors &src) |
Write data in the format specified by the ParameterHandler. | |
virtual std::string | id () const |
Return a unique identification string for this application. | |
virtual void | notify (const Event &reason) |
Add a reason for assembling. | |
Public Member Functions inherited from AppFrame::ApplicationBase | |
ApplicationBase (boost::shared_ptr< ApplicationData > ex_data=boost::shared_ptr< ApplicationData >()) | |
Constructor for an application. | |
ApplicationBase (const ApplicationBase &other) | |
Copy constructor. | |
virtual | ~ApplicationBase () |
Virtual destructor. | |
void | print_parameters_to_file (ParameterHandler ¶m, const std::string &file_name, const ParameterHandler::OutputStyle &style) |
Print default parameters for the application to a file. | |
virtual double | residual (FEVector &dst, const FEVectors &src, bool apply_boundaries=true) |
Compute residual of src and store it into dst . | |
virtual void | data_out (const std::string &filename, const FEVectors &src, const std::vector< std::string >) |
boost::shared_ptr < ApplicationData > | get_data () |
Get access to the protected variable data. | |
const boost::shared_ptr < ApplicationData > | get_data () const |
Get read-only access to the protected variable data. | |
virtual void | clear () |
Reset the application class such that a call to initialize() is possible again and will produce the same result as if the object was fresh. | |
void | clear_events () |
Clear all notifications. | |
Public Attributes | |
ReductionControl | control |
Control object for the Newton iteration. | |
double | numIter |
Static Public Attributes | |
static const AppFrame::Event | bad_derivative |
The Event set by Jason if convergence is becoming bad and a new matrix should be assembled. | |
Protected Attributes | |
ApplicationResidual | default_residual |
Default residual object if the function ApplicationBase::residual() shoud be used. | |
SmartPointer< const Residual > | compute_residual |
The Residual object. | |
bool | assemble_now |
This flag is set by the function assemble(), indicating that the matrix must be assembled anew upon start. | |
double | assemble_threshold |
Threshold for re-assembling matrix. | |
bool | debug_solution |
Print updated solution after each step into file Newton_uNNN ? | |
bool | debug_update |
Print Newton update after each step into file Newton_dNNN ? | |
bool | debug_residual |
Print Newton residual after each step into file Newton_rNNN ? | |
unsigned int | debug |
Write debug output to #deallog; the higher the number, the more output. | |
Protected Attributes inherited from AppFrame::ApplicationCopy | |
SmartPointer< ApplicationBase > | app |
Pointer to the application this one depends upon. | |
Protected Attributes inherited from AppFrame::ApplicationBase | |
boost::shared_ptr < ApplicationData > | data |
Object for auxiliary data. | |
Event | notifications |
Accumulate reasons for reassembling here. | |
Additional Inherited Members | |
Protected Member Functions inherited from AppFrame::ApplicationBase | |
void | print_caller_name (const std::string &caller_name) const |
Print caller name. | |
Base class for all classes peforming Newton's iteration.
Childeren of this class largley differ by global seacrh method employed
AppFrame::newtonBase::newtonBase | ( | ApplicationBase & | app | ) |
Constructor, receiving the application computing the residual and solving the linear problem.
void AppFrame::newtonBase::_initialize | ( | ParameterHandler & | param | ) |
Read the parameters local to newtonBase.
|
virtual |
Instead of assembling, this function only sets a flag, such that the inner application will be required to assemble a new derivative matrix next time solve() is called.
|
virtual |
Declare the input parameters.
The following are the parameters used and their default values: In section: "Newton"
"Assemble threshold", Default: "0."
Reimplemented from AppFrame::ApplicationCopy.
Reimplemented in AppFrame::NewtonBasic, and AppFrame::NewtonLineSearch.
|
virtual |
Read the parameters.
Reimplemented from AppFrame::ApplicationCopy.
Reimplemented in AppFrame::NewtonBasic, and AppFrame::NewtonLineSearch.
void AppFrame::newtonBase::initialize_initial_guess | ( | BlockVector< double > & | dst | ) |
Control object for the Newton iteration.
|
virtual |
Reimplemented from AppFrame::ApplicationCopy.
|
virtual |
The actual Newton solver.
Reimplemented from AppFrame::ApplicationCopy.
Reimplemented in AppFrame::NewtonBasic, AppFrame::NewtonLineSearch, AppFrame::Newton3pp, and AppFrame::Newton3ppC.
double AppFrame::newtonBase::threshold | ( | double | new_value | ) |
Set the maximal residual reduction allowed without triggering assembling in the next step.
Return the previous value.
|
protected |
This flag is set by the function assemble(), indicating that the matrix must be assembled anew upon start.
|
protected |
Threshold for re-assembling matrix.
If the quotient of two consecutive residuals is smaller than this threshold, the system matrix is not assembled in this step.
|
static |
The Event set by Jason if convergence is becoming bad and a new matrix should be assembled.
ReductionControl AppFrame::newtonBase::control |
Control object for the Newton iteration.
|
protected |
Write debug output to #deallog; the higher the number, the more output.
|
protected |
Print Newton residual after each step into file Newton_rNNN
?
|
protected |
Print updated solution after each step into file Newton_uNNN
?
|
protected |
Print Newton update after each step into file Newton_dNNN
?
|
protected |
Default residual object if the function ApplicationBase::residual() shoud be used.
double AppFrame::newtonBase::numIter |