T2Vector.h

Go to the documentation of this file.
00001 //<<<<<<< T2Vector.h
00002 //<<<<<<< T2Vector.h
00003 // $Revision: 1.7 $
00004 // $Date: 2002/05/16 00:07:47 $
00005 //=======
00006 // $Revision: 1.7 $
00007 // $Date: 2002/05/16 00:07:47 $
00008 //>>>>>>> 1.4
00009 //=======
00010 // $Revision: 1.7 $
00011 // $Date: 2002/05/16 00:07:47 $
00012 //>>>>>>> 1.6
00013 // $Source: /usr/local/cvs/OpenSees/SRC/material/nD/soil/T2Vector.h,v $
00014                                                                         
00015 // Written: ZHY
00016 // Created: August 2000
00017 
00018 //
00019 // T2Vector.h
00020 // --------
00021 //
00022 
00023 #ifndef _T2Vector_H_
00024 #define _T2Vector_H_
00025 
00026 #include <Vector.h>
00027 #include <Channel.h>
00028 #include <float.h>
00029 
00030 #define UP_LIMIT    1.0e+30
00031 #define LOW_LIMIT   20.*DBL_EPSILON
00032 
00033 // global function: scalar product of two second order tensor vectors
00034 double operator && (const Vector &, const Vector &);
00035 
00036 // define second order tensor vector class
00037 class T2Vector 
00038 {
00039 
00040 public:
00041   // constructors
00042   T2Vector();
00043   T2Vector(const Vector & T2Vector_init, int isEngrgStrain=0);
00044   T2Vector(const Vector & deviat_init, double volume_init);
00045   
00046   ~T2Vector();
00047 
00048   void setData(const Vector &init, int isEngrgStrain =0);
00049   void setData(const Vector &deviat, double volume);
00050 
00051   const Vector & t2Vector(int isEngrgStrain=0) const; 
00052   const Vector & deviator(int isEngrgStrain=0) const;
00053   double volume() const {return theVolume; }
00054   const Vector &unitT2Vector() const;
00055   const Vector &unitDeviator() const;
00056   double t2VectorLength() const;
00057   double deviatorLength() const;
00058   double octahedralShear(int isEngrgStrain=0) const;
00059 
00060   // = -sqrt(3/2*(S:S))/(p+residualPress)
00061   double deviatorRatio(double residualPress=0.) const; 
00062 
00063   //next function return the angle between two T2Vectors in radians (-PI to PI)
00064   double angleBetweenT2Vector(const T2Vector &) const; 
00065 
00066   //next function return the angle between deviatoric components of
00067   //two vectors in radians (-PI to PI)
00068   double angleBetweenDeviator(const T2Vector &) const; 
00069 
00070   int operator == (const T2Vector & a) const;
00071   int isZero(void) const;
00072 
00073 protected:
00074 
00075 private:
00076   Vector theT2Vector;
00077   Vector theDeviator;
00078   double theVolume;
00079   static Vector engrgStrain;
00080 };
00081 
00082 
00083 #endif

Generated on Mon Oct 23 15:05:16 2006 for OpenSees by doxygen 1.5.0