RMC01_YS.h

Go to the documentation of this file.
00001 //================================================================================
00002 //# COPY LEFT and RIGHT:                                                         #
00003 //# Commercial    use    of    this  program without express permission of the   #
00004 //# University  of  California, is strictly encouraged. Copyright and Copyleft   #
00005 //# are covered by the following clause:                                         #
00006 //#                                                                              #
00007 //# Woody's license:                                                             #
00008 //# ``This    source    code is Copyrighted in U.S., by the The Regents of the   #
00009 //# University  of  California,  for  an indefinite period, and anybody caught   #
00010 //# using  it  without  our  permission,  will be mighty good friends of ourn,   #
00011 //# cause  we  don't give a darn. Hack it. Compile it. Debug it. Run it. Yodel   #
00012 //# it. Enjoy it. We wrote it, that's all we wanted to do.'' bj                  #
00013 //#                                                                              #
00014 //#                                                                              #
00015 //#                                                                              #
00016 //# PROJECT:           Object Oriented Finite Element Program                    #
00017 //# PURPOSE:           Rounded Mohr Coulomb Potential Surface                    #
00018 //# CLASS:             RMC01YieldSurface                                         #
00019 //#                                                                              #
00020 //# VERSION:                                                                     #
00021 //# LANGUAGE:          C++                                                       #
00022 //# TARGET OS:         DOS || UNIX || . . .                                      #
00023 //# DESIGNER(S):       Boris Jeremic jeremic@ucdavis.edu                         #
00024 //#                    Zhao Cheng,                                               #
00025 //# PROGRAMMER(S):     Zhao Cheng, Boris Jeremic                                 #
00026 //#                                                                              #
00027 //#                                                                              #
00028 //# DATE:              12 Feb. 2003                                              #
00029 //# UPDATE HISTORY:                                                              #
00030 //#                                                                              #
00031 //#                                                                              #
00032 //#                                                                              #
00033 //#                                                                              #
00034 //# SHORT EXPLANATION: Functions for rounded Mohr-Coulomb yield function         #
00035 //#                                                                              #
00036 //================================================================================
00037 
00038 #ifndef RMC01_YS_H
00039 #define RMC01_YS_H
00040 
00041 #include "RMC01.h"
00042 #include <stresst.h>
00043 #include <BJtensor.h>
00044 #include "EPState.h"
00045 #include "YS.h"
00046 
00047 
00048 class RMC01YieldSurface : public YieldSurface
00049 {
00050   // Private vars to define the RMC01 Yield Surface
00051   private:
00052     
00053   
00054   public:
00055     YieldSurface *newObj();  //create a clone of itself
00056     
00057     RMC01YieldSurface ( ) {}    // Default constructor
00058     virtual ~RMC01YieldSurface() {}     // Destructor
00059 
00060     double f(const EPState *EPS) const;
00061     tensor dFods(const EPState *EPS) const;
00062 
00063     // Redefine 1st derivative of F over scalar internal variables
00064     double xi_s1( const EPState *EPS ) const;
00065     double xi_s2( const EPState *EPS ) const;
00066 
00067     // Redefine 1st derivative of F over tensorial internal variables
00068 //    tensor xi_t1(const EPState *EPS) const;
00069 
00070     void print() { opserr << *this; }; 
00071   
00072     //================================================================================
00073     // Overloaded Insertion Operator
00074     // prints an RMC01 YieldSurface's contents 
00075     //================================================================================
00076     friend OPS_Stream& operator<< (OPS_Stream& os, const RMC01YieldSurface & YS);
00077 
00078 };
00079 
00080 #endif
00081 

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