EL_NLEp.hGo to the documentation of this file.00001 00002 //================================================================================ 00003 // COPYRIGHT (C): :-)) | 00004 // PROJECT: Object Oriented Finite Element Program | 00005 // PURPOSE: General platform for elaso-plastic constitutive model | 00006 // implementation | 00007 // | 00008 // CLASS: EvolutionLaw_L_Ep (linear scalar Evolution law) | 00009 // | 00010 // | 00011 // VERSION: | 00012 // LANGUAGE: C++.ver >= 2.0 ( Borland C++ ver=3.00, SUN C++ ver=2.1 ) | 00013 // TARGET OS: DOS || UNIX || . . . | 00014 // DESIGNER(S): Boris Jeremic, Zhaohui Yang | 00015 // PROGRAMMER(S): Boris Jeremic, Zhaohui Yang | 00016 // | 00017 // | 00018 // DATE: Mar. 28, 01 | 00019 // UPDATE HISTORY: | 00020 // | 00021 // | 00022 // | 00023 // | 00024 // SHORT EXPLANATION: This is a nonlinear evolution law for the evoltion of a | 00025 // scalar variable po which depends on plastic volumetric | 00026 // strain i.e. dpo = (1+eo)po/(lamda-kappa)*de_p | 00027 // | 00028 //================================================================================ 00029 00030 #ifndef EL_NLEp_H 00031 #define EL_NLEp_H 00032 00033 #include <math.h> 00034 00035 #include "EL_S.h" 00036 00037 class EvolutionLaw_NL_Ep : public EvolutionLaw_S 00038 { 00039 // Private vars to define the evolution law 00040 00041 private: 00042 double eo; //coefficient to define the linear hardening rule of a scalar hardening var 00043 double lambda; //coefficient to define the linear hardening rule of a scalar hardening var 00044 double kappa; //coefficient to define the linear hardening rule of a scalar hardening var 00045 00046 public: 00047 //EvolutionLaw_NL_Ep( ); // default constructor---no parameters 00048 00049 EvolutionLaw_NL_Ep( double eod = 0.85, double lambdad = 0.19, double kappad = 0.06); 00050 00051 EvolutionLaw_NL_Ep(const EvolutionLaw_NL_Ep &LEL ); // Copy constructor 00052 00053 EvolutionLaw_S *newObj(); //create a clone of itself 00054 00055 //void InitVars(EPState *EPS); // Initialize all hardening vars called only once 00056 // // after material point is formed if necessary. 00057 00058 //void setInitD(EPState *EPS); // set initial D once current stress hits the y.s. 00059 // // was primarily for Manzari-Dafalias model 00060 00061 //double h( EPState *EPS, double norm_dQods); // Evaluating hardening function h 00062 double h_s( EPState *EPS, PotentialSurface *PS); // Evaluating hardening function h 00063 00064 //void UpdateVar( EPState *EPS, double dlamda ); // Evolve corresponding var linearly using de_eq_p 00065 //Moved to CDriver.cpp 00066 00067 void print(); 00068 00069 private: 00070 // some accessor functions 00071 double geteo() const; 00072 //void seteo( double eod); 00073 00074 double getlambda() const; 00075 //void setlambda( double lambdad); 00076 00077 double getkappa() const; 00078 //void setkappad( double kappad); 00079 00080 //================================================================================ 00081 // Overloaded Insertion Operator Zhaohui Added Aug. 13, 2000 00082 // prints Linear EvolutionLaw's contents 00083 //================================================================================ 00084 friend OPS_Stream& operator<< (OPS_Stream& os, const EvolutionLaw_NL_Ep & LEL); 00085 00086 00087 }; 00088 00089 00090 #endif 00091 00092 00093 00094 |