Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

ElasticIsotropicMaterial.h

Go to the documentation of this file.
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.4 $
00022 // $Date: 2001/06/16 04:41:14 $
00023 // $Source: /usr/local/cvs/OpenSees/SRC/material/nD/ElasticIsotropicMaterial.h,v $
00024                                                                         
00025                                                                         
00026 #ifndef ElasticIsotropicMaterial_h
00027 #define ElasticIsotropicMaterial_h
00028 
00029 // File: ~/material/ElasticIsotropicMaterial.h
00030 //
00031 // Written: MHS
00032 // Created: Feb 2000
00033 // Revision: A
00034 //
00035 // Description: This file contains the class definition for ElasticIsotropicMaterialModel.
00036 // ElasticIsotropicMaterialModel is an abstract base class and thus no objects of it's type
00037 // can be instantiated. It has pure virtual functions which must be
00038 // implemented in it's derived classes. 
00039 //
00040 // What: "@(#) ElasticIsotropicMaterial.h, revA"
00041 
00042 #include <NDMaterial.h>
00043 
00044 #include <Matrix.h>
00045 #include <Vector.h>
00046 #include <ID.h>
00047 
00048 #include <Tensor.h>
00049 
00060 class ElasticIsotropicMaterial : public NDMaterial
00061 {
00062   public:
00064     ElasticIsotropicMaterial (int tag, int classTag, double E, double nu, double rho = 0.0);
00065 
00067     ElasticIsotropicMaterial (int tag, double E, double nu, double rho = 0.0);
00068 
00070     ElasticIsotropicMaterial (void);
00071 
00078     virtual ~ElasticIsotropicMaterial (void);
00079 
00080 
00082     virtual double getRho( ) ;
00083 
00084 
00086     virtual int setTrialStrain (const Vector &v);
00088     virtual int setTrialStrain (const Vector &v, const Vector &r);
00090     virtual int setTrialStrainIncr (const Vector &v);
00092     virtual int setTrialStrainIncr (const Vector &v, const Vector &r);
00094     virtual const Matrix &getTangent (void);
00096     virtual const Vector &getStress (void);
00098     virtual const Vector &getStrain (void);
00099 
00101     int setTrialStrain (const Tensor &v);
00103     int setTrialStrain (const Tensor &v, const Tensor &r);
00105     int setTrialStrainIncr (const Tensor &v);
00107     int setTrialStrainIncr (const Tensor &v, const Tensor &r);
00109     const Tensor &getTangentTensor (void);
00111     const stresstensor getStressTensor (void);
00113     const Tensor &getStrainTensor (void);
00114     
00115     
00117     virtual int commitState (void);
00119     virtual int revertToLastCommit (void);
00121     virtual int revertToStart (void);
00122     
00123     // Create a copy of material parameters AND state variables
00125     virtual NDMaterial *getCopy (void);
00126 
00127     // Create a copy of just the material parameters
00129     virtual NDMaterial *getCopy (const char *type);
00130 
00132     virtual const char *getType (void) const;
00133 
00135     virtual int getOrder (void) const;
00136     
00138     virtual int sendSelf(int commitTag, Channel &theChannel);  
00140     virtual int recvSelf(int commitTag, Channel &theChannel, 
00141    FEM_ObjectBroker &theBroker);    
00142     
00144     void Print(ostream &s, int flag = 0);
00145 
00147     virtual int setParameter(char **argv, int argc, Information &info);
00149     virtual int updateParameter(int parameterID, Information &info);
00150 
00151   protected:
00153     double E; 
00154     double v; 
00155     double rho ; //mass per unit 3D volume
00156 
00157   private:
00158 };
00159 
00160 
00161 #endif
Copyright Contact Us