00001 /* ****************************************************************** ** 00002 ** OpenSees - Open System for Earthquake Engineering Simulation ** 00003 ** Pacific Earthquake Engineering Research Center ** 00004 ** ** 00005 ** ** 00006 ** (C) Copyright 1999, The Regents of the University of California ** 00007 ** All Rights Reserved. ** 00008 ** ** 00009 ** Commercial use of this program without express permission of the ** 00010 ** University of California, Berkeley, is strictly prohibited. See ** 00011 ** file 'COPYRIGHT' in main directory for information on usage and ** 00012 ** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. ** 00013 ** ** 00014 ** Developed by: ** 00015 ** Frank McKenna (fmckenna@ce.berkeley.edu) ** 00016 ** Gregory L. Fenves (fenves@ce.berkeley.edu) ** 00017 ** Filip C. Filippou (filippou@ce.berkeley.edu) ** 00018 ** ** 00019 ** ****************************************************************** */ 00020 00021 // $Revision: 1.1 $ 00022 // $Date: 2001/05/03 06:32:07 $ 00023 // $Source: /usr/local/cvs/OpenSees/SRC/material/section/FiberSection2d.h,v $ 00024 00025 // Written: fmk 00026 // Created: 04/01 00027 // 00028 // Description: This file contains the class definition for 00029 // FiberSection2d.h. FiberSection2d provides the abstraction of a 00030 // 2d beam section discretized by fibers. The section stiffness and 00031 // stress resultants are obtained by summing fiber contributions. 00032 00033 #ifndef FiberSection2d_h 00034 #define FiberSection2d_h 00035 00036 #include <SectionForceDeformation.h> 00037 #include <Vector.h> 00038 #include <Matrix.h> 00039 00040 #include <UniaxialMaterial.h> 00041 #include <Fiber.h> 00042 #include <Response.h> 00043 00045 class FiberSection2d : public SectionForceDeformation 00046 { 00047 public: 00049 FiberSection2d(); 00051 FiberSection2d(int tag, int numFibers, Fiber **fibers); 00053 ~FiberSection2d(); 00054 00056 int setTrialSectionDeformation(const Vector &deforms); 00058 const Vector &getSectionDeformation(void); 00059 00061 const Vector &getStressResultant(void); 00063 const Matrix &getSectionTangent(void); 00065 const Matrix &getSectionSecant(void); 00066 00068 int commitState(void); 00070 int revertToLastCommit(void); 00072 int revertToStart(void); 00073 00075 SectionForceDeformation *getCopy(void); 00077 const ID &getType (void) const; 00079 int getOrder (void) const; 00080 00082 int sendSelf(int cTag, Channel &theChannel); 00084 int recvSelf(int cTag, Channel &theChannel, 00085 FEM_ObjectBroker &theBroker); 00087 void Print(ostream &s, int flag = 0); 00088 00090 Response *setResponse(char **argv, int argc, Information &info); 00092 int getResponse(int responseID, Information &info); 00093 00095 int addFiber(Fiber &theFiber); 00096 00097 protected: 00098 00099 private: 00101 int numFibers; 00102 UniaxialMaterial **theMaterials; 00103 double *matData; 00104 double kData[4]; 00105 double sData[2]; 00106 00107 static ID code; 00108 00110 Vector e; 00111 Vector eCommit; 00112 Vector *s; 00113 Matrix *ks; // section stiffness 00114 }; 00115 00116 #endif 00117 ÿ