EL_NLEeq.h

Go 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 

Generated on Mon Oct 23 15:05:16 2006 for OpenSees by doxygen 1.5.0