RMC_YF.h

Go to the documentation of this file.
00001 
00002 //   COPYLEFT (C): Woody's viral GPL-like license (by BJ):
00003 //                 ``This    source  code is Copyrighted in
00004 //                 U.S.,  for  an  indefinite  period,  and anybody
00005 //                 caught  using it without our permission, will be
00006 //                 mighty good friends of ourn, cause we don't give
00007 //                 a  darn.  Hack it. Compile it. Debug it. Run it.
00008 //                 Yodel  it.  Enjoy it. We wrote it, that's all we
00009 //                 wanted to do.''
00010 //
00011 //
00012 // COPYRIGHT (C):     :-))
00013 // PROJECT:           Object Oriented Finite Element Program
00014 // FILE:              
00015 // CLASS:             
00016 // MEMBER FUNCTIONS:
00017 //
00018 // MEMBER VARIABLES
00019 //
00020 // PURPOSE:           
00021 //
00022 // RETURN:
00023 // VERSION:
00024 // LANGUAGE:          C++
00025 // TARGET OS:         
00026 // DESIGNER:          Zhao Cheng, Boris Jeremic
00027 // PROGRAMMER:        Zhao Cheng, 
00028 // DATE:              Fall 2005
00029 // UPDATE HISTORY:    
00030 //
00032 //
00033 #ifndef RMC_YF_H
00034 #define RMC_YF_H
00035 
00036 #include "YieldFunction.h"
00037 #include <math.h>
00038 
00039 class RMC_YF : public YieldFunction
00040 {
00041   public:
00042     RMC_YF(int a_which_in = -1, int index_a_in = 0, 
00043           int k_which_in = -1, int index_k_in = 0,
00044           int r_which_in = -1, int index_r_in = 0);
00045     ~RMC_YF();
00046       
00047     YieldFunction *newObj();
00048   
00049     double YieldFunctionValue(const stresstensor &Stre, 
00050                               const MaterialParameter &MaterialParameter_in) const;
00051            
00052     const stresstensor& StressDerivative(const stresstensor &Stre, 
00053                                          const MaterialParameter &MaterialParameter_in) const;
00054     
00055     double InScalarDerivative(const stresstensor &Stre, 
00056                               const MaterialParameter &MaterialParameter_in, 
00057                               int which) const;
00058     
00059     int getNumInternalScalar() const;
00060     int getNumInternalTensor() const;
00061     int getYieldFunctionRank() const;
00062 
00063   private:
00064     double geta(const MaterialParameter &MaterialParameter_in) const;
00065     double getk(const MaterialParameter &MaterialParameter_in) const;
00066     double getr(const MaterialParameter &MaterialParameter_in) const;
00067     
00068     double RoundedFunctionf1(double s, double r) const;
00069         double RoundedFunctionf2(double s, double r) const;
00070         double RoundedFunctiondf1(double s, double r) const;
00071         double RoundedFunctiondf2(double s, double r) const;
00072         double RoundedFunction(double s, double r) const;       
00073     
00074   private:    
00075     int a_which;
00076     int index_a;
00077     int k_which;
00078     int index_k;
00079     int r_which;
00080     int index_r;
00081         
00082     static stresstensor RMCst;
00083 };
00084 
00085 
00086 #endif
00087 

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