Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

StiffBulirschStoerMover.h

Go to the documentation of this file.
00001 #pragma once
00002 
00003 #ifdef _WIN32
00004 #include <mkl.h>
00005 #else
00006 #include "lapack.h"
00007 using namespace std;
00008 #define __min min
00009 #define __max max
00010 #endif
00011 
00012 #include "DifferentialEquationMover.h"
00013 #include <cmath>
00014 #include <stdlib.h>
00015 #include <iomanip>
00016 //#include <mkl.h>
00017 
00018 class CStiffBulirschStoerMover : public CDifferentialEquationMover
00019 {
00020 public:
00021         CStiffBulirschStoerMover(double frequency, double stepSize, double eps=1.0e-05);
00022         virtual ~CStiffBulirschStoerMover(void);
00023         void StiffBSStep(int nRHS, double *y, double *dydt);
00024         void SemiImplicitMidpoint(int nRHS, double *y, double *dydt, double **dfdy, int nStep, double *yout);
00025         void PolynomialExtrapolation(int nRHS, int iest, double xest, double *yest, double *yz, double *dy, double *x, double **d);
00026         void LUSolveLinearSystem(int nRHS, double **a, double *b);
00027         virtual void Move(double xInitial, double xFinal, ReactionNetwork *pReactionNetwork);
00028 protected:
00029         double *m_pdError;
00030         double *m_pdScale;
00031         double m_dEps;
00032         double m_dLastStep,m_dNextStep,m_dInitialStepSize;
00033         static const double m_scdTINY;
00034         static const int m_sciIMAXX;
00035         static const int m_sciKMAXX;
00036         static const double m_scdSAFE1;
00037         static const double m_scdSAFE2;
00038         static const double m_scdREDMAX;
00039         static const double m_scdREDMIN;
00040         static const double m_scdSCALMX;
00041 };

Generated on Mon Nov 3 09:38:16 2003 by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002