YS.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:             YieldSurface (the base class for all yield 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 #ifndef YS_H
00028 #define YS_H
00029 
00030 #include <stresst.h>
00031 #include <straint.h>
00032 #include <BJtensor.h>
00033 
00034 #include "EPState.h"
00035 
00036 class YieldSurface
00037 {
00038   public:
00039     YieldSurface() {} ;                  //Normal Constructor
00040     virtual YieldSurface *newObj() = 0;  //create a clone of itself
00041   
00042     virtual double f( const EPState *EPS ) const = 0;    //pure virtual func
00043     virtual tensor dFods( const EPState *EPS ) const = 0;  //pure virtual func
00044     virtual void print() = 0; //pure virtual func
00045 
00046     // 1st derivative of F over scalar internal variables (at most 4 scalar internal vars allowed currently)
00047     virtual double xi_s1( const EPState *EPS ) const;    
00048     virtual double xi_s2( const EPState *EPS ) const;
00049     virtual double xi_s3( const EPState *EPS ) const;
00050     virtual double xi_s4( const EPState *EPS ) const;
00051 
00052     // 1st derivative of F over scalar internal variables (at most 4 tensor internal vars allowed currently)
00053     virtual tensor xi_t1( const EPState *EPS ) const;    
00054     virtual tensor xi_t2( const EPState *EPS ) const;
00055     virtual tensor xi_t3( const EPState *EPS ) const;
00056     virtual tensor xi_t4( const EPState *EPS ) const;
00057 
00058 
00059     //================================================================================
00060     // Overloaded Insertion Operator
00061     // prints an YieldSurface's contents 
00062     //================================================================================
00063     friend OPS_Stream& operator<< (OPS_Stream& os, const YieldSurface & YS);
00064 };
00065 
00066 
00067 #endif
00068 

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