00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _PATH_H
00014 #define _PATH_H
00015
00016 #include "ctrl.h"
00017
00018
00019
00020
00021 class cVector;
00022 class cSysMatrix;
00023
00024
00025
00026
00027 typedef enum _pathtype
00028 {
00029 NRAPHSON,
00030 DCM,
00031 GDCM,
00032 INIORTAL,
00033 UPDORTAL,
00034 CILAL,
00035 CONLINAL
00036
00037 } ePathType;
00038
00039
00040
00041
00042 class cPath : public cCtrl
00043 {
00044 protected:
00045 static int _DetStabPnt;
00046 static int _BranchSwitch;
00047 static int _TargetIte;
00048 static int _PrevIte;
00049 static double _IncFactor;
00050 static double _SwitchFactor;
00051 static ePathType _PathType;
00052 double _CSP0,_CSP1;
00053
00054 public:
00055 static void ReadTargetIte(void);
00056 static void ReadStabPnt (void);
00057 cPath (void);
00058 virtual ~cPath (void) { }
00059 virtual void Solver (void);
00060
00061 protected:
00062 int StabSolver (int, int, double, double, cSysMatrix *,
00063 cVector &, cVector &, cVector &, cVector &,
00064 cVector &, cVector &, cVector &, cVector &,
00065 cVector &, cVector &);
00066 void CompStabPoint(int, int, double, double, cSysMatrix *,
00067 cVector &, cVector &, cVector &, cVector &,
00068 cVector &, cVector &, cVector &, cVector &,
00069 cVector &, cVector &, int *);
00070 virtual int Convergence (cVector &, cVector &);
00071 virtual double IncLoadFac (cVector &, cVector &, cVector &)
00072 { return 0.0; }
00073 };
00074
00075 #endif