EL_NLEij.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_Eij (nonlinear tensorial 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: 09-13-2000 | 00019 // UPDATE HISTORY: | 00020 // | 00021 // | 00022 // | 00023 // | 00024 // SHORT EXPLANATION: This is a nonlinear evolution law for the evoltion of a | 00025 // tensorial variable alpha which depends on plastic strain | 00026 // i.e. dalpha = 2/3*ha*dE_ij -Cr*de_eq*alpha_ij(Amstrong- | 00027 // Frederick Model | 00028 //================================================================================ 00029 00030 #ifndef EL_NLEij_H 00031 #define EL_NLEij_H 00032 00033 #include <math.h> 00034 00035 #include "EL_T.h" 00036 00037 class EvolutionLaw_NL_Eij : public EvolutionLaw_T 00038 { 00039 // Private vars to define the evolution law 00040 00041 //coefficient to define the A-F hardening rule of a scalar hardening var 00042 double ha, Cr; 00043 00044 public: 00045 //EvolutionLaw_L_Eij( ); // default constructor---no parameters 00046 00047 EvolutionLaw_NL_Eij( double had = 10.0, double Crd = 1.0) : ha(had),Cr(Crd) {} 00048 00049 EvolutionLaw_NL_Eij(const EvolutionLaw_NL_Eij &LEL ); // Copy constructor 00050 00051 EvolutionLaw_T *newObj(); //create a colne of itself 00052 00053 //void InitVars(EPState *EPS); // Initialize all hardening vars called only once 00054 // // after material point is formed if necessary. 00055 00056 //void setInitD(EPState *EPS); // set initial D once current stress hits the y.s. 00057 // // was primarily for Manzari-Dafalias model 00058 00059 //double h( EPState *EPS, double norm_dQods); // Evaluating hardening function h 00060 tensor h_t( EPState *EPS, PotentialSurface *PS); // Evaluating hardening function h 00061 00062 //void UpdateVar( EPState *EPS, double dlamda ); // Evolve corresponding var linearly using de_eq_p 00063 //Moved to CDriver.cpp 00064 00065 void print(); 00066 00067 // some accessor functions 00068 double getha() const; 00069 double getCr() const; 00070 void setha( double had); 00071 void setCr( double Crd); 00072 00073 //================================================================================ 00074 // Overloaded Insertion Operator Zhaohui Added Aug. 13, 2000 00075 // prints Linear EvolutionLaw's contents 00076 //================================================================================ 00077 friend OPS_Stream& operator<< (OPS_Stream& os, const EvolutionLaw_NL_Eij & LEL); 00078 00079 00080 }; 00081 00082 00083 #endif 00084 00085 00086 00087 |