straint.h

Go to the documentation of this file.
00001 
00002 //################################################################################
00003 //# COPYRIGHT (C):     :-))                                                      #
00004 //# PROJECT:           Object Oriented Finite Element Program                    #
00005 //# PURPOSE:           strain tensor with all necessery functions                #
00006 //# CLASS:             straintensor                                              #
00007 //#                                                                              #
00008 //# VERSION:                                                                     #
00009 //# LANGUAGE:          C++.ver >= 2.0 ( Borland C++ ver=3.00, SUN C++ ver=2.1 )  #
00010 //# TARGET OS:         DOS || UNIX || . . .                                      #
00011 //# DESIGNER(S):       Boris Jeremic                                             #
00012 //# PROGRAMMER(S):     Boris Jeremic                                             #
00013 //#                                                                              #
00014 //#                                                                              #
00015 //# DATE:              July 25 '93                                               #
00016 //# UPDATE HISTORY:    August 22-29 '94 choped to separate files and worked on   #
00017 //#                                   const and & issues                         #
00018 //#                    August 30-31 '94 added use_def_dim to full the CC,        #
00019 //#                                   resolved problem with temoraries for       #
00020 //#                                   operators + and - ( +=, -= )               #
00021 //#                                                                              #
00022 //#                                                                              #
00023 //#                                                                              #
00024 //#                                                                              #
00025 //#                                                                              #
00026 //#                                                                              #
00027 //################################################################################
00028 //*/
00029 //
00030 #ifndef STRAINTENSOR_HH
00031 #define STRAINTENSOR_HH
00032 
00033 #include <OPS_Globals.h>
00034 #include "BJtensor.h"
00035 
00036 
00037 class straintensor : public tensor
00038 {
00039   public: // just send appropriate arguments to the base constructor
00040 
00041 //    straintensor (int rank_of_tensor=2, double initval=0.00000003141528);
00042     straintensor (int rank_of_tensor=2, double initval=0.0);
00043 // default constructor           // this is just PI/10^8 to check default constructor
00044 
00045     straintensor ( double *values );
00046 
00047     straintensor ( double initvalue );
00048 
00049     straintensor(const straintensor & x );
00050     straintensor(const tensor & x); // copy-initializer
00051     straintensor(const nDarray & x); // copy-initializer
00052 
00053     //~straintensor( );
00054     
00055     straintensor operator=(const straintensor & rval); // straintensor assignment
00056     straintensor operator=(const tensor & rval);// tensor assignment to straintensor
00057     straintensor operator=(const nDarray & rval);// nDarray assignment to straintensor
00058 
00059     straintensor deep_copy(void);
00060 //..    straintensor * p_deep_copy(void);
00061 
00062 //ini  // use "from" and initialize already allocated strain tensor from "from" values
00063 //ini      void Initialize( const straintensor & from );
00064 
00065 //___// operator() overloading for 3D Gauss points!
00066 //___    straintensor & operator()(short ir, short is, short it,
00067 //___                              short tr, short ts, short tt  );
00068  
00069     double Iinvariant1( ) const;
00070     double Iinvariant2( ) const;
00071     double Iinvariant3( ) const;
00072 
00073     double Jinvariant1( ) const;
00074     double Jinvariant2( ) const;
00075     double Jinvariant3( ) const;
00076 
00077     double equivalent( ) const;   //Zhaohui added 09-02-2000
00078 
00079     straintensor deviator( ) const;
00080     straintensor principal( ) const;
00081 
00082     double sigma_octahedral( ) const;
00083     double tau_octahedral( ) const;
00084 
00085     double ksi( ) const;
00086     double ro( ) const;
00087     double theta( ) const;
00088     double thetaPI( ) const;
00089 
00090     double p_hydrostatic( ) const;
00091     double q_deviatoric( ) const;
00092 
00093 
00094     straintensor pqtheta2strain( double, double, double );
00095     straintensor evoleq2strain( double, double );
00096 
00097     void report(char *) const;
00098     void reportshort(char *) const;
00099 
00100     friend OPS_Stream& operator<< (OPS_Stream& os, const straintensor & rhs);
00101 
00102 //..// polinomial root solver friend functions definitions
00103 //..public:
00104 //..friend void laguer(complex *, int , complex *, double , int );
00105 //..friend void zroots(complex *, int , complex *, int );
00106 //..
00107 };
00108 
00109 #endif
00110 

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