RMC01_YS.hGo 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 |