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 UserDefinedHingeIntegration2d_h
00026 #define UserDefinedHingeIntegration2d_h
00027
00028 #include <BeamIntegration.h>
00029
00030 #include <Vector.h>
00031
00032 class Channel;
00033 class FEM_ObjectBroker;
00034
00035 class UserDefinedHingeIntegration2d : public BeamIntegration
00036 {
00037 public:
00038 UserDefinedHingeIntegration2d(int npL, const Vector &ptL, const Vector &wtL,
00039 int npR, const Vector &ptR, const Vector &wtR,
00040 double E, double A, double I);
00041 UserDefinedHingeIntegration2d();
00042 ~UserDefinedHingeIntegration2d();
00043
00044 void getSectionLocations(int numSections, double L, double *xi);
00045 void getSectionWeights(int numSections, double L, double *wt);
00046
00047 void addElasticDeformations(ElementalLoad *theLoad, double loadFactor,
00048 double L, double *v0);
00049 int addElasticFlexibility(double L, Matrix &fe);
00050
00051 BeamIntegration *getCopy(void);
00052
00053 int sendSelf(int cTag, Channel &theChannel);
00054 int recvSelf(int cTag, Channel &theChannel, FEM_ObjectBroker &theBroker);
00055
00056 int setParameter(const char **argv, int argc, Information &info);
00057 int updateParameter(int parameterID, Information &info);
00058 int activateParameter(int parameterID);
00059
00060 void Print(OPS_Stream &s, int flag = 0);
00061
00062 private:
00063 Vector ptsL;
00064 Vector wtsL;
00065 Vector ptsR;
00066 Vector wtsR;
00067
00068 double E;
00069 double A;
00070 double I;
00071 };
00072
00073 #endif