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 NewElement_h
00026 #define NewElement_h
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include <Element.h>
00036 #include <Matrix.h>
00037 #include <Vector.h>
00038
00039 class Channel;
00040 class UniaxialMaterial;
00041
00042 #define ELE_TAG_NewElement 100001
00043
00044 class NewElement : public Element
00045 {
00046 public:
00047 NewElement(int tag);
00048 NewElement();
00049 ~NewElement();
00050
00051 const char *getClassType(void) const {return "NewElement";};
00052
00053
00054 int getNumExternalNodes(void) const;
00055 const ID &getExternalNodes(void);
00056 Node **getNodePtrs(void);
00057 int getNumDOF(void);
00058 void setDomain(Domain *theDomain);
00059
00060
00061 int commitState(void);
00062 int revertToLastCommit(void);
00063 int revertToStart(void);
00064 int update(void);
00065
00066
00067
00068 const Matrix &getTangentStiff(void);
00069 const Matrix &getInitialStiff(void);
00070
00071 void zeroLoad(void);
00072 int addLoad(const Vector &addP);
00073 int addInertiaLoadToUnbalance(const Vector &accel);
00074 const Vector &getResistingForce(void);
00075 const Vector &getResistingForceIncInertia(void);
00076
00077
00078 int sendSelf(int commitTag, Channel &theChannel);
00079 int recvSelf(int commitTag, Channel &theChannel,
00080 FEM_ObjectBroker &theBroker);
00081 int displaySelf(Renderer &theViewer, int displayMode, float fact);
00082 void Print(OPS_Stream &s, int flag =0);
00083
00084 Response *setResponse(const char **argv, int argc, Information &eleInfo, OPS_Stream &);
00085 int getResponse(int responseID, Information &eleInformation);
00086
00087 int setParameter (const char **argv, int argc, Parameter ¶m);
00088 int updateParameter (int parameterID, Information &info);
00089
00090 protected:
00091
00092 private:
00093 ID connectedExternalNodes;
00094 Matrix theMatrix;
00095 Vector theVector;
00096 };
00097
00098 #endif
00099
00100
00101
00102