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 HingeRadauTwoBeamIntegration3d_h
00026 #define HingeRadauTwoBeamIntegration3d_h
00027
00028 #include <BeamIntegration.h>
00029
00030 class Matrix;
00031 class ElementalLoad;
00032 class Channel;
00033 class FEM_ObjectBroker;
00034
00035 class HingeRadauTwoBeamIntegration3d : public BeamIntegration
00036 {
00037 public:
00038 HingeRadauTwoBeamIntegration3d(double E, double A, double Iz,
00039 double Iy, double G, double J,
00040 double lpI, double lpJ);
00041 HingeRadauTwoBeamIntegration3d();
00042 ~HingeRadauTwoBeamIntegration3d();
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 double getTangentDriftI(double L, double LI, double q2, double q3, bool yAxis);
00052 double getTangentDriftJ(double L, double LI, double q2, double q3, bool yAxis);
00053
00054 BeamIntegration *getCopy(void);
00055
00056 int sendSelf(int cTag, Channel &theChannel);
00057 int recvSelf(int cTag, Channel &theChannel, FEM_ObjectBroker &theBroker);
00058
00059 int setParameter(const char **argv, int argc, Information &info);
00060 int updateParameter(int parameterID, Information &info);
00061 int activateParameter(int parameterID);
00062
00063 void Print(OPS_Stream &s, int flag = 0);
00064
00065 private:
00066 double E;
00067 double A;
00068 double Iz;
00069 double Iy;
00070 double G;
00071 double J;
00072
00073 double lpI;
00074 double lpJ;
00075 };
00076
00077 #endif