EL_NLEp.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:             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 

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