www.mooseframework.org
LStableDirk4.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* DO NOT MODIFY THIS HEADER */
3 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
4 /* */
5 /* (c) 2010 Battelle Energy Alliance, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by Battelle Energy Alliance, LLC */
9 /* Under Contract No. DE-AC07-05ID14517 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* See COPYRIGHT for full restrictions */
13 /****************************************************************/
14 
15 #ifndef LSTABLEDIRK4_H
16 #define LSTABLEDIRK4_H
17 
18 #include "TimeIntegrator.h"
19 
20 class LStableDirk4;
21 
22 template <>
24 
63 {
64 public:
66  virtual ~LStableDirk4();
67 
68  virtual int order() { return 4; }
69  virtual void computeTimeDerivatives();
70  virtual void solve();
71  virtual void postStep(NumericVector<Number> & residual);
72 
73 protected:
74  // Indicates the current stage.
75  unsigned int _stage;
76 
77  // The number of stages in the method. According to S9.4.2/4 of the
78  // standard, we can specify a constant initializer like this for
79  // integral types, it does not have to appear outside the class
80  // definition.
81  static const unsigned int _n_stages = 5;
82 
83  // Store pointers to the various stage residuals
84  NumericVector<Number> * _stage_residuals[_n_stages];
85 
86  // Butcher tableau "C" parameters derived from _gamma
87  static const Real _c[_n_stages];
88 
89  // Butcher tableau "A" values derived from _gamma. We only use the
90  // lower triangle of this.
91  static const Real _a[_n_stages][_n_stages];
92 };
93 
94 #endif // LSTABLEDIRK4_H
virtual ~LStableDirk4()
Definition: LStableDirk4.C:50
Fourth-order diagonally implicit Runge Kutta method (Dirk) with five stages.
Definition: LStableDirk4.h:62
virtual void postStep(NumericVector< Number > &residual)
Callback to the TimeIntegrator called immediately after the residuals are computed in NonlinearSystem...
Definition: LStableDirk4.C:94
static const Real _a[_n_stages][_n_stages]
Definition: LStableDirk4.h:91
LStableDirk4(const InputParameters &parameters)
Definition: LStableDirk4.C:38
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
unsigned int _stage
Definition: LStableDirk4.h:75
virtual void computeTimeDerivatives()
Definition: LStableDirk4.C:53
virtual void solve()
Definition: LStableDirk4.C:66
static const Real _c[_n_stages]
Definition: LStableDirk4.h:87
Base class for time integrators.
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:53
NumericVector< Number > * _stage_residuals[_n_stages]
Definition: LStableDirk4.h:84
static const unsigned int _n_stages
Definition: LStableDirk4.h:81
InputParameters validParams< LStableDirk4 >()
Definition: LStableDirk4.C:22
virtual int order()
Definition: LStableDirk4.h:68