00001 // ------------------------------------------------------------------------- 00002 // arclen.h - This header file contains the definitions of the classes 00003 // required to trace the equilibrium path using the Arc-Length 00004 // Method. 00005 // ------------------------------------------------------------------------- 00006 // 00007 // $Author: evandro $ 00008 // $Revision: 1.3 $ 00009 // $Date: 1999/04/12 14:57:37 $ 00010 // $State: Exp $ 00011 // 00012 // ------------------------------------------------------------------------- 00013 // 00014 00015 #ifndef _ARCLEN_H 00016 #define _ARCLEN_H 00017 00018 #include "path.h" 00019 00020 // ------------------------------------------------------------------------- 00021 // Arc-length base class: 00022 // 00023 class cArcLength: public cPath 00024 { 00025 protected: 00026 static double _LoadCoeff; // Coeff. of load terms (spherical arc-length) 00027 double _ArcLen; // Current arc length 00028 double _Dlf; // Step load increment 00029 00030 public: 00031 static void ReadParam (void); 00032 cArcLength(void); 00033 virtual ~cArcLength(void) { } 00034 00035 protected: 00036 virtual void SetArcLength (cVector &); 00037 virtual double FirstIncLoadFac(cVector &, cVector &); 00038 }; 00039 00040 00041 // ------------------------------------------------------------------------- 00042 // Initial Orthogonal (Riks) arc-length class: 00043 // 00044 class cIniOrtArcLength: public cArcLength 00045 { 00046 public: 00047 cIniOrtArcLength(void); 00048 ~cIniOrtArcLength(void){ }; 00049 double IncLoadFac (cVector &, cVector &, cVector &); 00050 }; 00051 00052 00053 // ------------------------------------------------------------------------- 00054 // Updated Orthogonal (Ramm) arc-length class: 00055 // 00056 class cUpOrtArcLength: public cArcLength 00057 { 00058 public: 00059 cUpOrtArcLength(void); 00060 ~cUpOrtArcLength(void){ }; 00061 double IncLoadFac (cVector &, cVector &, cVector &); 00062 }; 00063 00064 00065 // ------------------------------------------------------------------------- 00066 // Consistent linearized arc-length class: 00067 // 00068 class cConLinArcLength: public cArcLength 00069 { 00070 public: 00071 cConLinArcLength(void); 00072 ~cConLinArcLength(void){ }; 00073 double IncLoadFac (cVector &, cVector &, cVector &); 00074 }; 00075 00076 00077 // ------------------------------------------------------------------------- 00078 // Cilindrical (Quadratic) arc-length class: 00079 // 00080 class cCilArcLength: public cArcLength 00081 { 00082 public: 00083 cCilArcLength(void); 00084 ~cCilArcLength(void){ }; 00085 double IncLoadFac (cVector &, cVector &, cVector &); 00086 }; 00087 00088 00089 00090 #endif 00091