00001 #ifndef QuadraticCyclic_H
00002 #define QuadraticCyclic_H
00003
00004 #include <CyclicModel.h>
00005 #include <Vector.h>
00006 #include <Matrix.h>
00007
00008 class QuadraticCyclic : public CyclicModel
00009 {
00010 public:
00011 QuadraticCyclic(int tag, double wt=0.9, double qy=0.33);
00012 ~QuadraticCyclic();
00013 void Print (OPS_Stream &, int = 0);
00014 CyclicModel *getCopy();
00015
00016 protected:
00017 int createFullCycleTask();
00018 int createHalfCycleTask();
00019 double getTaskFactor();
00020
00021 private:
00022 int solveQuad(double x1, double y1, double x2,
00023 double y2, double x3, double y);
00024 double getQuadFactor(double x1, double y1, double dx);
00025 int createTask();
00026
00027 private:
00028 double a, b, c;
00029 double weightFactor, facty;
00030 double qx1, qy1, qx2, qy2, qx3, qy3;
00031
00032 static Matrix X;
00033 static Vector Y, A;
00034 };
00035
00036 #endif
00037