DP_YS.h

Go to the documentation of this file.
00001 
00002 //################################################################################
00003 //# COPYRIGHT (C):     :-))                                                      #
00004 //# PROJECT:           Object Oriented Finite Element Program                    #
00005 //# PURPOSE:           Drucker - Prager  yield criterion                         #
00006 //# CLASS:             DPYieldSurface                                            #
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_YS_H
00041 #define DP_YS_H
00042 
00043 #include <stresst.h>
00044 #include <BJtensor.h>
00045 #include "EPState.h"
00046 #include "YS.h"
00047 
00048 
00049 class DPYieldSurface : public YieldSurface
00050 {
00051   private:                // Private vars to define the Drucker-Prager Yield Surface
00052     //double alfa1;       // Cone orientation angle now in EPState's first scalar var 
00053   
00054   public:
00055     //alpha machines complains on this
00056     //DPYieldSurface *newObj();  //create a clone of itself  
00057     YieldSurface *newObj();  //create a clone of itself
00058     
00059     DPYieldSurface ( ) {}    // Default constructor
00060     virtual ~DPYieldSurface ( );   // Destructor //Virtual functions not all redefined
00061     //DPYieldSurface (const DPYieldSurface & );   // copy constructor
00062 
00063     double f(const EPState *EPS) const;
00064     tensor dFods(const EPState *EPS) const;
00065 
00066     // Redefine 1st derivative of F over scalar internal variables
00067     double xi_s1( const EPState *EPS ) const;
00068     double xi_s2( const EPState *EPS ) const;
00069 
00070     // Redefine 1st derivative of F over tensorial internal variables
00071     tensor xi_t1(const EPState *EPS) const;
00072 
00073     void print() { opserr << *this; }; 
00074   
00075     //================================================================================
00076     // Overloaded Insertion Operator
00077     // prints an DP YieldSurface's contents 
00078     //================================================================================
00079     friend OPS_Stream& operator<< (OPS_Stream& os, const DPYieldSurface & YS);
00080 
00081 };
00082 
00083 #endif
00084 

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