EL_T.hGo to the documentation of this file.00001 00003 // COPYRIGHT (C): :-)) | 00004 // PROJECT: Object Oriented Finite Element Program | 00005 // PURPOSE: General platform for elaso-plastic efficient and easy | 00006 // constitutive model implementation | 00007 // | 00008 // CLASS: EvolutionLaw_T (the base class for tensorial evolution law) | 00009 // | 00010 // VERSION: | 00011 // LANGUAGE: C++.ver >= 2.0 ( Borland C++ ver=3.00, SUN C++ ver=2.1 ) | 00012 // TARGET OS: DOS || UNIX || . . . | 00013 // DESIGNER(S): Boris Jeremic, Zhaohui Yang | 00014 // PROGRAMMER(S): Boris Jeremic, Zhaohui Yang | 00015 // | 00016 // | 00017 // DATE: 09-02-2000 | 00018 // UPDATE HISTORY: | 00019 // | 00020 // | 00021 // | 00022 // | 00023 // SHORT EXPLANATION: The base class is necessary for we need to use to runtime | 00024 // polymorphism of C++ to achieve the fexibility of the | 00025 // platform. | 00026 // | 00027 //================================================================================= 00028 // 00029 00030 #ifndef EL_T_H 00031 #define EL_T_H 00032 00033 #include <stresst.h> 00034 #include <straint.h> 00035 #include <BJtensor.h> 00036 00037 #include "EPState.h" 00038 #include "PS.h" 00039 00040 class EvolutionLaw_T 00041 { 00042 public: 00043 00044 // Constructor 00045 EvolutionLaw_T() {}; 00046 00047 //create a colne of itself 00048 virtual EvolutionLaw_T *newObj(); 00049 00050 // Not necessary since the increment of internal var can be evalulated in constitutive driver! 00051 //virtual void UpdateVar( EPState *EPS, double dlamda ) = 0; // Evolve only one internal variable 00052 00053 //Print the contents of the evolution law 00054 virtual void print(); 00055 00056 // updating E, e, D and m for Manzari-Dafalias model, 00057 virtual int updateEeDm( EPState *EPS, double st_vol, double dLamda); 00058 00059 //virtual void setInitD( EPState *EPS) = 0; // Initializing D once current st hits the y.s. for Manzari-Dafalias model , 00060 // // other model might not need it 00061 00062 //Why can't i put const before EPState???????????????????????? Aug. 16, 2000 00063 //virtual double h( EPState *EPS, double d ) = 0; // Evaluating hardening function h 00064 // Evaluating hardening function h_t 00065 virtual tensor h_t( EPState *EPS, PotentialSurface *PS); 00066 00067 //================================================================================ 00068 // Overloaded Insertion Operator 00069 // prints an Evolution Law_T's contents 00070 //================================================================================ 00071 friend OPS_Stream& operator<< (OPS_Stream& os, const EvolutionLaw_T & EL); 00072 00073 }; 00074 00075 00076 #endif 00077 |