EL_S.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_S (the base class for scalar 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 the runtime | 00024 // polymorphism of C++ to achieve the fexibility of the | 00025 // platform. | 00026 //================================================================================= 00027 // 00028 00029 #ifndef EL_S_H 00030 #define EL_S_H 00031 00032 #include <stresst.h> 00033 #include <straint.h> 00034 #include <BJtensor.h> 00035 00036 #include "EPState.h" 00037 #include "PS.h" 00038 00039 class EvolutionLaw_S 00040 { 00041 public: 00042 00043 EvolutionLaw_S() {}; //Normal Constructor 00044 00045 virtual EvolutionLaw_S *newObj(); //create a colne of itself 00046 00047 // Not necessary since the increment of internal var can be evalulated in constitutive driver! 00048 //virtual void UpdateVar( EPState *EPS, double dlamda ) = 0; // Evolve only one internal variable 00049 00050 virtual void print(); //Print the contents of the evolution law 00051 00052 //virtual void InitVars( EPState *EPS) = 0; // Initializing eo and E for Manzari-Dafalias model, 00053 // // other model might not need it! 00054 00055 //virtual void setInitD( EPState *EPS) = 0; // Initializing D once current st hits the y.s. for Manzari-Dafalias model , 00056 // // other model might not need it 00057 00058 //Why can't i put const before EPState???????????????????????? Aug. 16, 2000 00059 //virtual double h( EPState *EPS, double d ) = 0; // Evaluating hardening function h 00060 virtual double h_s( EPState *EPS, PotentialSurface *PS); // Evaluating hardening function h 00061 00062 //================================================================================ 00063 // Overloaded Insertion Operator 00064 // prints an Evolution Law_S's contents 00065 //================================================================================ 00066 friend OPS_Stream& operator<< (OPS_Stream& os, const EvolutionLaw_S & EL); 00067 00068 }; 00069 00070 00071 #endif 00072 |