PS.h

Go to the documentation of this file.
00001 
00002 //##################################################################################
00003 //# COPYRIGHT (C):     :-))                                                        #
00004 //# PROJECT:           Object Oriented Finite Element Program                      #
00005 //# PURPOSE:           General platform for elaso-plastic constitutive model       #
00006 //#                    implementation                                              #
00007 //# CLASS:             PotentialSurface(the base class for all potential surfaces) #
00008 //#                                                                                #
00009 //# VERSION:                                                                       #
00010 //# LANGUAGE:          C++.ver >= 2.0 ( Borland C++ ver=3.00, SUN C++ ver=2.1 )    #
00011 //# TARGET OS:         DOS || UNIX || . . .                                        #
00012 //# DESIGNER(S):       Boris Jeremic, Zhaohui Yang                                 #
00013 //# PROGRAMMER(S):     Boris Jeremic, Zhaohui Yang                                 #
00014 //#                                                                                #
00015 //#                                                                                #
00016 //# DATE:              08-03-2000                                                  #
00017 //# UPDATE HISTORY:                                                                #
00018 //#                                                                                #
00019 //#                                                                                #
00020 //#                                                                                #
00021 //#                                                                                #
00022 //# SHORT EXPLANATION: The goal is to create a platform for efficient and easy     #
00023 //#                    implemetation of any elasto-plastic constitutive model!     #
00024 //#                                                                                #
00025 //##################################################################################
00026 //
00027 
00028 #ifndef PS_H
00029 #define PS_H
00030 
00031 #include <stresst.h>
00032 #include <straint.h>
00033 #include <BJtensor.h>
00034 
00035 #include "EPState.h"
00036 
00037 
00038 class PotentialSurface
00039 {
00040   public:
00041     virtual PotentialSurface *newObj()  = 0;  //create a colne of itself
00042     virtual ~PotentialSurface() {};           // Codewizard requires virtual destructor
00043     double  q() const { return 0.0; }; // Codewizard does not like function defined in class definition
00044     virtual tensor dQods(const EPState *EPS ) const =  0;  //pure virtual func
00045     virtual tensor d2Qods2(const EPState *EPS ) const = 0; //pure virtual func   
00046     virtual void print() = 0; //pure virtual func
00047     
00048     // Added for Consistent Algorithm, Z. Cheng, Jan 2004
00049     // Ref. Jeremic & Sture, Mechanics of Cohesive-Frictional Materials, Vol.2 165-183 (1997) 
00050     virtual tensor d2Qodsds1(const EPState *EPS ) const;
00051     virtual tensor d2Qodsds2(const EPState *EPS ) const;
00052     virtual tensor d2Qodsds3(const EPState *EPS ) const;
00053     virtual tensor d2Qodsds4(const EPState *EPS ) const;
00054     virtual tensor d2Qodsdt1(const EPState *EPS ) const;
00055     virtual tensor d2Qodsdt2(const EPState *EPS ) const;
00056     virtual tensor d2Qodsdt3(const EPState *EPS ) const;
00057     virtual tensor d2Qodsdt4(const EPState *EPS ) const;
00058                                  
00059     //================================================================================
00060     // Overloaded Insertion Operator
00061     // prints an PotentialSurface's contents 
00062     //================================================================================
00063     friend OPS_Stream& operator<< (OPS_Stream& os, const PotentialSurface & PS)
00064     {
00065        os << "Potential Surface Parameters: " << endln;
00066        return os;
00067     }
00068 };
00069 
00070 
00071 #endif
00072 

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