VTK  9.0.1
vtkRungeKutta2.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkRungeKutta2.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
29 #ifndef vtkRungeKutta2_h
30 #define vtkRungeKutta2_h
31 
32 #include "vtkCommonMathModule.h" // For export macro
34 
35 class VTKCOMMONMATH_EXPORT vtkRungeKutta2 : public vtkInitialValueProblemSolver
36 {
37 public:
39 
43  static vtkRungeKutta2* New();
44 
45  using Superclass::ComputeNextStep;
47 
60  int ComputeNextStep(double* xprev, double* xnext, double t, double& delT, double maxError,
61  double& error, void* userData) override
62  {
63  double minStep = delT;
64  double maxStep = delT;
65  double delTActual;
66  return this->ComputeNextStep(
67  xprev, nullptr, xnext, t, delT, delTActual, minStep, maxStep, maxError, error, userData);
68  }
69  int ComputeNextStep(double* xprev, double* dxprev, double* xnext, double t, double& delT,
70  double maxError, double& error, void* userData) override
71  {
72  double minStep = delT;
73  double maxStep = delT;
74  double delTActual;
75  return this->ComputeNextStep(
76  xprev, dxprev, xnext, t, delT, delTActual, minStep, maxStep, maxError, error, userData);
77  }
78  int ComputeNextStep(double* xprev, double* xnext, double t, double& delT, double& delTActual,
79  double minStep, double maxStep, double maxError, double& error, void* userData) override
80  {
81  return this->ComputeNextStep(
82  xprev, nullptr, xnext, t, delT, delTActual, minStep, maxStep, maxError, error, userData);
83  }
84  int ComputeNextStep(double* xprev, double* dxprev, double* xnext, double t, double& delT,
85  double& delTActual, double minStep, double maxStep, double maxError, double& error,
86  void* userData) override;
88 
89 protected:
91  ~vtkRungeKutta2() override;
92 
93 private:
94  vtkRungeKutta2(const vtkRungeKutta2&) = delete;
95  void operator=(const vtkRungeKutta2&) = delete;
96 };
97 
98 #endif
99 
100 // VTK-HeaderTest-Exclude: vtkRungeKutta2.h
vtkRungeKutta2::ComputeNextStep
int ComputeNextStep(double *xprev, double *dxprev, double *xnext, double t, double &delT, double maxError, double &error, void *userData) override
Definition: vtkRungeKutta2.h:69
vtkRungeKutta2
Integrate an initial value problem using 2nd order Runge-Kutta method.
Definition: vtkRungeKutta2.h:35
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkInitialValueProblemSolver::ComputeNextStep
virtual int ComputeNextStep(double *xprev, double *xnext, double t, double &delT, double maxError, double &error)
Given initial values, xprev , initial time, t and a requested time interval, delT calculate values of...
Definition: vtkInitialValueProblemSolver.h:68
vtkInitialValueProblemSolver.h
vtkInitialValueProblemSolver
Integrate a set of ordinary differential equations (initial value problem) in time.
Definition: vtkInitialValueProblemSolver.h:40
vtkRungeKutta2::ComputeNextStep
int ComputeNextStep(double *xprev, double *xnext, double t, double &delT, double maxError, double &error, void *userData) override
Given initial values, xprev , initial time, t and a requested time interval, delT calculate values of...
Definition: vtkRungeKutta2.h:60
vtkRungeKutta2::ComputeNextStep
int ComputeNextStep(double *xprev, double *xnext, double t, double &delT, double &delTActual, double minStep, double maxStep, double maxError, double &error, void *userData) override
Definition: vtkRungeKutta2.h:78