VM_YF.hGo 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 VM_YF_H 00034 #define VM_YF_H 00035 00036 #include "YieldFunction.h" 00037 #include <math.h> 00038 00039 class VM_YF : public YieldFunction 00040 { 00041 public: 00042 00043 VM_YF(int k_which_in = -1, int index_k_in = 0, 00044 int alpha_which_in = -1, int index_alpha_in = 0); 00045 ~VM_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 const stresstensor& InTensorDerivative(const stresstensor &Stre, 00060 const MaterialParameter &MaterialParameter_in, 00061 int which) const; 00062 00063 int getNumInternalScalar() const; 00064 int getNumInternalTensor() const; 00065 int getYieldFunctionRank() const; 00066 00067 private: 00068 00069 double getk(const MaterialParameter &MaterialParameter_in) const; 00070 00071 const stresstensor& getbackstress(const MaterialParameter &MaterialParameter_in) const; 00072 00073 private: 00074 00075 int k_which; 00076 int index_k; 00077 int alpha_which; 00078 int index_alpha; 00079 00080 static stresstensor VMst; 00081 }; 00082 00083 00084 #endif 00085 |