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.2 $
00022 // $Date: 2001/07/11 18:22:53 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/material/uniaxial/ViscousMaterial.h,v $
00024
00025 // Written: Mehrdad Sasani
00026 // Created: June 2000
00027 // Revision: A
00028 //
00029 // Description: This file contains the class interface for
00030 // ViscousMaterial. ViscousMaterial defines a force(F)-velocity(v)
00031 // relationship of the form F = C*pow(v,a), where C is a prescribed
00032 // constant and a is a real number.
00033
00034 #ifndef ViscousMaterial_h
00035 #define ViscousMaterial_h
00036
00037 #include <UniaxialMaterial.h>
00038
00040 class ViscousMaterial : public UniaxialMaterial
00041 {
00042 public:
00044 ViscousMaterial(int tag, double C, double Alpha);
00046 ViscousMaterial();
00048 ~ViscousMaterial();
00049
00051 int setTrialStrain(double velocity, double strainRate = 0.0);
00053 double getStrain(void);
00055 double getStrainRate(void);
00057 double getStress(void);
00058
00060 double getTangent(void);
00062 double getDampTangent(void);
00064 double getSecant (void);
00065
00067 int commitState(void);
00069 int revertToLastCommit(void);
00071 int revertToStart(void);
00072
00074 UniaxialMaterial *getCopy(void);
00075
00077 int sendSelf(int commitTag, Channel &theChannel);
00079 int recvSelf(int commitTag, Channel &theChannel,
00080 FEM_ObjectBroker &theBroker);
00081
00083 void Print(ostream &s, int flag =0);
00084
00085 protected:
00086
00087 private:
00089 double trialRate;
00091 double C;
00093 double Alpha;
00094 };
00095
00096
00097 #endif
00098
00099 ÿ