DP_PS.h

Go to the documentation of this file.
00001 
00002 //################################################################################
00003 //# COPYRIGHT (C):     :-))                                                      #
00004 //# PROJECT:           Object Oriented Finite Element Program                    #
00005 //# PURPOSE:           Drucker - Prager  potential criterion                     #
00006 //# CLASS:             DPPotentialSurface                                        #
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 //# PROGRAMMER(S):     Boris Jeremic, ZHaohui Yang                               #
00012 //#                                                                              #
00013 //#                                                                              #
00014 //# DATE:              August 03 '93                                             #
00015 //# UPDATE HISTORY:    August 08 '00                                             #
00016 //#                                                                              #
00017 //#                                                                              #
00018 //#                                                                              #
00019 //#                                                                              #
00020 //# SHORT EXPLANATION:                                                           #
00021 //#                                                                              #
00022 //# if alfa1#=0 && alfa2#=0 && alfa1#=alfa2 =>                                   #
00023 //#              Drucker-Prager with non-associated flow rule                    #
00024 //#                                                                              #
00025 //# if alfa1#=0 && alfa2#=0 && alfa1==alfa2 =>                                   #
00026 //#              Drucker-Prager with associated flow rule                        #
00027 //#                                                                              #
00028 //# if alfa1==0 && alfa2#=0 =>                                                   #
00029 //#              Von Mises with non-associated Drucker-Prager flow rule          #
00030 //#                                                                              #
00031 //# if alfa1#=0 && alfa2==0 =>                                                   #
00032 //#              Drucker-Prager with non-associated Von Mises flow rule          #
00033 //#                                                                              #
00034 //# if alfa1==0 && alfa2==0 =>                                                   #
00035 //#              Von Mises with associated flow rule                             #
00036 //#                                                                              #
00037 //################################################################################
00038 //*/
00039 
00040 #ifndef DP_PS_H
00041 #define DP_PS_H
00042 
00043 #include "PS.h"
00044 #include "EPState.h"
00045 #include <BJtensor.h>
00046 
00047 
00048 class DPPotentialSurface : public PotentialSurface
00049 {
00050   private:                // Private vars to define the Drucker-Prager Potential Surface
00051     double alfa2;         // potential surface orientation angle  
00052   
00053   public:
00054     DPPotentialSurface( double a2d = 0.0 ) : alfa2(a2d) {}   // Default constructor
00055     virtual ~DPPotentialSurface() { }; //Virtual functions not all redefined
00056     DPPotentialSurface( const DPPotentialSurface &DPPS ); //Copy constructor
00057     PotentialSurface *newObj();              //create a colne of itself
00058     double getalfa2() const;
00059 
00060     tensor dQods(const EPState *EPS) const;
00061     tensor d2Qods2(const EPState *EPS) const;
00062     
00063     tensor d2Qodsds1(const EPState *EPS) const; // For Consistent Algorithm, Z Cheng, Jan 2004        
00064     
00065     void print() { opserr << *this; };
00066 
00067     //================================================================================
00068     // Overloaded Insertion Operator
00069     // prints an DP-PotentialSurface's contents 
00070     //================================================================================
00071     friend OPS_Stream& operator<< (OPS_Stream& os, const DPPotentialSurface &PS);
00072 
00073 };
00074 
00075 #endif
00076 

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