Cosseratstraint.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:             Cosseratstraintensor                                      #
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):       Alireza Tabarrei, Boris Jeremic                           #
00012 //# PROGRAMMER(S):     Alireza Tabarrei,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 COSSERATSTRAINTENSOR_HH
00031 #define COSSERATSTRAINTENSOR_HH
00032 
00033 #include "BJtensor.h"
00034 
00035 class Cosseratstraintensor : public tensor
00036 {
00037   public: // just send appropriate arguments to the base constructor
00038 
00039 //    Cosseratstraintensor (int rank_of_tensor=2, double initval=0.00000003141528);
00040     Cosseratstraintensor (int rank_of_tensor=2, double initval=0.0);
00041 // default constructor           // this is just PI/10^8 to check default constructor
00042 
00043     Cosseratstraintensor ( double *values );
00044 
00045     Cosseratstraintensor ( double initvalue );
00046 
00047     Cosseratstraintensor(const Cosseratstraintensor & x );
00048     Cosseratstraintensor(const tensor & x); // copy-initializer
00049     Cosseratstraintensor(const nDarray & x); // copy-initializer
00050 
00051     //~Cosseratstraintensor( );
00052     
00053     Cosseratstraintensor operator=(const Cosseratstraintensor & rval); // Cosseratstraintensor assignment
00054     Cosseratstraintensor operator=(const tensor & rval);// tensor assignment to Cosseratstraintensor
00055     Cosseratstraintensor operator=(const nDarray & rval);// nDarray assignment to Cosseratstraintensor
00056 
00057     Cosseratstraintensor deep_copy(void);
00058 //..    Cosseratstraintensor * p_deep_copy(void);
00059 
00060 //ini  // use "from" and initialize already allocated strain tensor from "from" values
00061 //ini      void Initialize( const Cosseratstraintensor & from );
00062 
00063 //___// operator() overloading for 3D Gauss points!
00064 //___    Cosseratstraintensor & operator()(short ir, short is, short it,
00065 //___                              short tr, short ts, short tt  );
00066  
00067     double Iinvariant1( ) const;
00068     double Iinvariant2( ) const;
00069     double Iinvariant3( ) const;
00070 
00071     double Jinvariant1( ) const;
00072     double Jinvariant2( ) const;
00073     double Jinvariant3( ) const;
00074 
00075     double equivalent( ) const;   //Zhaohui added 09-02-2000
00076 
00077     Cosseratstraintensor deviator( ) const;
00078     Cosseratstraintensor principal( ) const;
00079 
00080     double sigma_octahedral( ) const;
00081     double tau_octahedral( ) const;
00082 
00083     double ksi( ) const;
00084     double ro( ) const;
00085     double theta( ) const;
00086     double thetaPI( ) const;
00087 
00088     double p_hydrostatic( ) const;
00089     double q_deviatoric( ) const;
00090 
00091 
00092     Cosseratstraintensor pqtheta2strain( double, double, double );
00093     Cosseratstraintensor evoleq2strain( double, double );
00094 
00095     void report(char *) const;
00096     void reportshort(char *) const;
00097 
00098 //..// polinomial root solver friend functions definitions
00099 //..public:
00100 //..friend void laguer(complex *, int , complex *, double , int );
00101 //..friend void zroots(complex *, int , complex *, int );
00102 //..
00103 };
00104 
00105 #endif
00106 

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