00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef BeamIntegration_h
00026 #define BeamIntegration_h
00027
00028 #include <OPS_Globals.h>
00029 #include <MovableObject.h>
00030
00031 class Matrix;
00032 class ElementalLoad;
00033 class Information;
00034
00035 class BeamIntegration : public MovableObject
00036 {
00037 public:
00038 BeamIntegration(int classTag);
00039 virtual ~BeamIntegration();
00040
00041 virtual void getSectionLocations(int nIP, double L, double *xi) = 0;
00042 virtual void getSectionWeights(int nIP, double L, double *wt) = 0;
00043
00044 virtual void addElasticDeformations(ElementalLoad *theLoad,
00045 double loadFactor,
00046 double L, double *v0) {return;}
00047
00048 virtual int addElasticFlexibility(double L, Matrix &fe) {return 0;}
00049
00050 virtual double getTangentDriftI(double L, double LI, double q2,
00051 double q3, bool yAxis = false) {return 0.0;}
00052 virtual double getTangentDriftJ(double L, double LI, double q2,
00053 double q3, bool yAxis = false) {return 0.0;}
00054
00055 virtual BeamIntegration *getCopy(void) = 0;
00056
00057 virtual void getLocationsDeriv(int nIP, double L, double dLdh,
00058 double *dptsdh);
00059 virtual void getWeightsDeriv(int nIP, double L, double dLdh,
00060 double *dwtsdh);
00061
00062 virtual int addElasticFlexDeriv(double L, Matrix &dfedh,
00063 double dLdh = 0.0) {return 0;}
00064
00065 virtual void Print(OPS_Stream &s, int flag = 0) = 0;
00066 };
00067
00068 #endif