vtf-logo

shells/materials/j2Plasticity/J2Plasticity.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 /*
00003  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00004  *
00005  *                                   Fehmi Cirak
00006  *                        California Institute of Technology
00007  *                           (C) 2005 All Rights Reserved
00008  *
00009  * <LicenseText>
00010  *
00011  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00012 */
00013 #ifndef J2PLASTICITY_H
00014 #define J2PLASTICITY_H
00015 
00016 #include "../MaterialBase.h"
00017 
00018 #include <cassert>
00019 
00020 namespace shells {
00021 
00022 class J2Plasticity : public MaterialBase {
00023 private:
00024     J2Plasticity(); // use createMaterial instead
00025     void computeMaterialParameters();
00026     
00027 public:
00028     ~J2Plasticity();
00029     
00030     void updateStress(double * const stress, 
00031                       double const * const gstrain, 
00032                       double const dtime = 0.0,
00033                       double * const history=NULL,
00034                       double const * const gstrainPrv=NULL);     
00035 
00036     double density();    
00037     double estimatedElasticityConst();
00038 
00039     void initialization(double * history);
00040     
00041     static MaterialBase * createMaterial() {
00042         return new J2Plasticity();
00043     }
00044     
00045 private:
00046     static const int _numberMaterialParameters = 19;
00047     static const int _numberInternalVariables = 13; // 4 history vars + 9 F comps
00048     static const int _nonstrainHistoryVar = 4; 
00049     
00050     double _materialParameters[_numberMaterialParameters];
00051     double _internalVariables[_numberInternalVariables];
00052     
00053     double _massDensity;
00054     double _youngModulus;
00055     double _poissonRatio;
00056     double _yieldStress;
00057     double _referencePlasticStrain;
00058     double _hardeningExponent;
00059     double _referencePlasticStrainRate;
00060     double _rateSensitivityExponent;
00061     double _referenceTemperature;
00062     double _meltingTemperature;  
00063     double _thermalSofteningCoeff;
00064     double _taylorQuinneyCoeff;
00065 };
00066 
00067 }
00068 
00069 
00070 // inlined functions
00071 inline double shells::J2Plasticity::density()
00072 {
00073     return _massDensity;
00074 }
00075 
00076 
00077 inline double shells::J2Plasticity::estimatedElasticityConst()
00078 {
00079     return _youngModulus;
00080 }
00081 
00082 #endif // J2PLASTICITY_H

Generated on Fri Aug 24 13:00:24 2007 for SFC Thin-Shell Finite Element Solver by  doxygen 1.4.7