FDdecoupledElastic3D.h

Go to the documentation of this file.
00001 //===============================================================================
00002 //# COPYRIGHT (C): Woody's license (by BJ):
00003 //                 ``This    source  code is Copyrighted in
00004 //                 U.S.,  for  an  indefinite  period,  and anybody
00005 //                 caught  using it without our permission, will be
00006 //                 mighty good friends of ourn, cause we don't give
00007 //                 a  darn.  Hack it. Compile it. Debug it. Run it.
00008 //                 Yodel  it.  Enjoy it. We wrote it, that's all we
00009 //                 wanted to do.''
00010 //
00011 //# PROJECT:           Object Oriented Finite Element Program
00012 //# PURPOSE:           Finite Deformation Hyper-Elastic classes
00013 //# CLASS:
00014 //#
00015 //# VERSION:           0.6_(1803398874989) (golden section)
00016 //# LANGUAGE:          C++
00017 //# TARGET OS:         all...
00018 //# DESIGN:            Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu)
00019 //# PROGRAMMER(S):     Zhao Cheng, Boris Jeremic
00020 //#
00021 //#
00022 //# DATE:              July 2004
00023 //# UPDATE HISTORY:
00024 //#
00025 //===============================================================================
00026 
00027 #ifndef FDdecoupledElastic3D_H
00028 #define FDdecoupledElastic3D_H
00029 
00030 #include <FiniteDeformationElastic3D.h>
00031 
00032 #include <W.h>  // for W Strain Energy Functions
00033 
00034 class FDdecoupledElastic3D : public FiniteDeformationElastic3D
00035 {
00036   public:
00037     FDdecoupledElastic3D(int tag, int classTag, WEnergy * , double );
00038     FDdecoupledElastic3D(int tag, WEnergy * , double );
00039     FDdecoupledElastic3D(int tag, WEnergy * );
00040     FDdecoupledElastic3D();       
00041     
00042     virtual ~FDdecoupledElastic3D();
00043 
00044     FDdecoupledElastic3D(FDdecoupledElastic3D &fde3d); 
00045 
00046     const char *getClassType(void) const {return "FDdecoupledElastic3D";};
00047 
00048     double getRho(void);
00049 
00050     int setTrialF(const straintensor &f);
00051     int setTrialFIncr(const straintensor &df);
00052     int setTrialC(const straintensor &c);
00053     int setTrialCIncr(const straintensor &dc);
00054 
00055     const Tensor& getTangentTensor(void) ;        // Default Lagrangian Tangent Tensor
00056     const Tensor& getInitialTangentTensor(void) ;
00057 
00058     const  straintensor& getStrainTensor(void) ;   // Default Green Lagrangian Strain
00059     const  stresstensor& getStressTensor(void) ;   // Default 2nd Piola Kirchhoff Stress
00060     const  straintensor& getF(void);
00061     const  straintensor& getC(void);
00062 
00063 //    virtual const Vector &getStress(void);
00064 //    virtual const Vector &getStrain(void);
00065 
00066 //    virtual const stresstensor getCommittedStress(void);
00067 //    virtual const straintensor getCommittedStrain(void);
00068 
00069 //    virtual const straintensor getPlasticStrainTensor(void);
00070 
00071     int commitState(void) ;
00072     int revertToLastCommit(void) ;
00073     int revertToStart(void) ;
00074 
00075     NDMaterial *getCopy (void);
00076     NDMaterial *getCopy (const char *type);
00077 
00078     const char *getType (void) const;
00079     //int getOrder (void) const;
00080 
00081     int sendSelf(int commitTag, Channel &theChannel);
00082     int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker);
00083 
00084     void Print(OPS_Stream &s, int flag = 0);
00085 
00086 //    int setParameter(char **argv, int argc, Information &info);
00087 //    int updateParameter(int parameterID, Information &info);
00088 
00089     const  stresstensor& getPK1StressTensor(void) ;
00090     const  stresstensor& getCauchyStressTensor(void) ;
00091 
00092   private:
00093   //public:
00094     WEnergy *getWEnergy(void);
00095 
00096     const double getJ(void) ;
00097     const Vector getlambda(void) ;
00098     const Vector getlambda_wave(void) ;
00099 
00100     const Vector wa(void) ;
00101     const Tensor Yab(void) ;
00102     const Tensor FDisoStiffness(void) ;
00103     const Tensor FDvolStiffness(void) ;
00104 
00105 
00106 //    int setInitialTangentTensor(void);
00107     int ComputeTrials(void);
00108     int getCaseIndex(void);
00109 
00110   protected:
00111 
00112      WEnergy * W;
00113 
00114      double rho;
00115 
00116      straintensor F;
00117      straintensor C;
00118      double J;
00119      straintensor Cinv;
00120      double lambda1, lambda2, lambda3;
00121      double lambda_wave1, lambda_wave2, lambda_wave3;
00122      int caseIndex; 
00123      int FromForC;
00124 
00125      Tensor Stiffness;
00126      straintensor thisGreenStrain;
00127      stresstensor thisPK2Stress;
00128 
00129      static stresstensor static_FDE_stress;  // only for static reference return
00130 };
00131 
00132 #endif
00133 

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