EL_NLEeq.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: NonLinear EvolutionLaw (on plastic equivalent strain) | 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: This is a nonlinear evolution law for the evoltion of a | 00024 // scalar variable k which depends on plastic equi. strain | 00025 // i.e. dk = f( de_eq_p ) | 00026 // | 00027 //================================================================================ 00028 00029 #ifndef EL_NLEeq_H 00030 #define EL_NLEeq_H 00031 00032 #include <math.h> 00033 00034 #include "EL_S.h" 00035 00036 class EvolutionLaw_NL_Eeq : public EvolutionLaw_S 00037 { 00038 // Private vars to define the evolution law 00039 00040 //Coefficients to define the nonlinear hardening rule of a scalar var eta 00041 double eeqEtaPeak, etaResidual, etaStart, etaPeak, e, d; 00042 00043 public: 00044 // default constructor 00045 EvolutionLaw_NL_Eeq( double eeqEtaPeakd = 0.003, 00046 double etaResiduald = .2, 00047 double etaStartd = 0.3, 00048 double etaPeakd = 0.5, 00049 double ed = 0.5, 00050 double dd = 500.0) : 00051 eeqEtaPeak(eeqEtaPeakd), etaResidual(etaResiduald), 00052 etaStart(etaStartd), etaPeak(etaPeakd), e(ed), d(dd) {} 00053 00054 EvolutionLaw_NL_Eeq(const EvolutionLaw_NL_Eeq &NLEL ); // Copy constructor 00055 00056 EvolutionLaw_S *newObj(); //create a colne of itself 00057 00058 //void InitVars(EPState *EPS); // Initialize all hardening vars called only once 00059 // // after material point is formed if necessary. 00060 00061 //void setInitD(EPState *EPS); // set initial D once current stress hits the y.s. 00062 // // was primarily for Manzari-Dafalias model 00063 00064 //double h( EPState *EPS, double d ); // Evaluating hardening function h 00065 double h_s( EPState *EPS, PotentialSurface *PS); // Evaluating hardening function h 00066 00067 //void UpdateVar( EPState *EPS, double dlamda ); // Evolve corresponding var linearly using de_eq_p 00068 00069 void print(); 00070 00071 // some accessor functions 00072 // some accessor functions 00073 double geteeqEtaPeak() const; 00074 double getetaResidual() const; 00075 double getetaStart() const; 00076 double getetaPeak() const; 00077 double gete() const; 00078 double getd() const; 00079 00080 //================================================================================ 00081 // Overloaded Insertion Operator 00082 // prints nonlinear EvolutionLaw's contents 00083 //================================================================================ 00084 friend OPS_Stream& operator<< (OPS_Stream& os, const EvolutionLaw_NL_Eeq & NLEL); 00085 00086 00087 }; 00088 00089 00090 #endif 00091 00092 00093 00094 |