EL_LEeq.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_Eeq (linear 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-02-2000 | 00019 // UPDATE HISTORY: | 00020 // | 00021 // | 00022 // | 00023 // | 00024 // SHORT EXPLANATION: This is a linear evolution law for the evoltion of a | 00025 // scalar variable k which depends on plastic equi. strain | 00026 // i.e. dk = a*de_eq_p | 00027 // | 00028 //================================================================================ 00029 00030 #ifndef EL_LEeq_H 00031 #define EL_LEeq_H 00032 00033 #include <math.h> 00034 #include "EL_S.h" 00035 00036 class EvolutionLaw_L_Eeq : public EvolutionLaw_S 00037 { 00038 // Private vars to define the evolution law 00039 00040 private: 00041 double a; //coefficient to define the linear hardening rule of a scalar hardening var 00042 00043 public: 00044 //EvolutionLaw_L_Eeq( ); // default constructor---no parameters 00045 00046 EvolutionLaw_L_Eeq( double ad = 10.0); 00047 00048 EvolutionLaw_L_Eeq(const EvolutionLaw_L_Eeq &LEL ); // Copy constructor 00049 00050 //~EvolutionLaw_L_Eeq() {}; 00051 00052 EvolutionLaw_S *newObj(); //create a clone of itself 00053 00054 //void InitVars(EPState *EPS); // Initialize all hardening vars called only once 00055 // // after material point is formed if necessary. 00056 00057 //void setInitD(EPState *EPS); // set initial D once current stress hits the y.s. 00058 // // was primarily for Manzari-Dafalias model 00059 00060 //double h( EPState *EPS, double norm_dQods); // Evaluating hardening function h 00061 double h_s( EPState *EPS, PotentialSurface *PS); // Evaluating hardening function h 00062 00063 //void UpdateVar( EPState *EPS, double dlamda ); // Evolve corresponding var linearly using de_eq_p 00064 //Moved to CDriver.cpp 00065 00066 void print(); 00067 00068 private: 00069 // some accessor functions 00070 double geta() const; // Linear coefficient used to evolve internal var 00071 void seta( double ad); 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_L_Eeq & LEL); 00078 00079 00080 }; 00081 00082 00083 #endif 00084 00085 00086 00087 |