OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
Application class for explicit Runge-Kutta methods. More...
#include <runge_kutta.h>
Public Member Functions | |
RungeKuttaExplicit (ApplicationBase &app) | |
Constructor, receiving the application computing the residual in each timestep. | |
virtual void | solve (FEVector &start, const FEVectors &rhs) |
The actual timestep solver. | |
virtual void | declare_parameters (ParameterHandler ¶m) |
Declare parameters for a parameter file. | |
virtual void | initialize (ParameterHandler ¶m) |
Pure virtual initialization function. | |
void | _initialize (ParameterHandler ¶m) |
Read the parameters. | |
void | set_scheme (const std::string name) |
Set the specific Runge-Kutta scheme. | |
DeclException1 (ExcUnknownScheme, std::string,<< "A scheme with name "<< arg1<< " is not known") | |
Exception thrown if the string describing the selected scheme is not recognized. | |
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 double | residual (FEVector &dst, const FEVectors &src) |
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. | |
Protected Attributes | |
TimestepControl | control |
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. | |
Private Member Functions | |
void | resize_vectors (unsigned int n) |
Resize the two vectors to be a triangle that holds all the coefficients of the Runge-Kutta method. | |
Private Attributes | |
std::vector< std::vector < double > > | a |
First coefficient vector. | |
std::vector< double > | b |
Second coefficient vector, denoting the weights when finally summing up the contributions. | |
std::vector< double > | c |
Third coefficient vector, denoting the position in the time interval. | |
Additional Inherited Members | |
Protected Member Functions inherited from AppFrame::ApplicationBase | |
void | print_caller_name (const std::string &caller_name) const |
Print caller name. | |
Application class for explicit Runge-Kutta methods.
AppFrame::RungeKuttaExplicit::RungeKuttaExplicit | ( | ApplicationBase & | app | ) |
Constructor, receiving the application computing the residual in each timestep.
void AppFrame::RungeKuttaExplicit::_initialize | ( | ParameterHandler & | param | ) |
Read the parameters.
|
virtual |
Declare parameters for a parameter file.
Pure virtual function MUST be redeclared in derived classes.
Reimplemented from AppFrame::ApplicationCopy.
AppFrame::RungeKuttaExplicit::DeclException1 | ( | ExcUnknownScheme | , |
std::string | , | ||
<< "A scheme with name "<< arg1<< " is not known" | |||
) |
Exception thrown if the string describing the selected scheme is not recognized.
|
virtual |
Pure virtual initialization function.
Here, the parameters declared in the constructor are actually read from ParameterHandler.
This function must be overloaded in any derived class using its own values from the parameter file.
Initialization functions of derived classes must make sure to call all functions _initialize() of the base classes.
Reimplemented from AppFrame::ApplicationCopy.
|
private |
Resize the two vectors to be a triangle that holds all the coefficients of the Runge-Kutta method.
void AppFrame::RungeKuttaExplicit::set_scheme | ( | const std::string | name | ) |
Set the specific Runge-Kutta scheme.
|
virtual |
The actual timestep solver.
Reimplemented from AppFrame::ApplicationCopy.
|
private |
First coefficient vector.
|
private |
Second coefficient vector, denoting the weights when finally summing up the contributions.
|
private |
Third coefficient vector, denoting the position in the time interval.
|
protected |