ElasticCrossAnisotropic.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:           Elastic Cross Anisotropic Material implementation:
00013 //# CLASS:             ElasticIsotropic3D
00014 //#
00015 //# VERSION:           0.61803398874989 (golden section)
00016 //# LANGUAGE:          C++
00017 //# TARGET OS:         all...
00018 //# DESIGN:            Zhaohui Yang, Boris Jeremic (jeremic@ucdavis.edu)
00019 //# PROGRAMMER(S):     Zhaohui Yang, Yi Bian, Boris Jeremic
00020 //#
00021 //#
00022 //# DATE:              10Oct2002
00023 //# UPDATE HISTORY:    March 20, 2003 Re-activated Joey Yang
00024 //#                    Aug2006   Z.Cheng
00025 //#
00026 //===============================================================================
00027 
00028 #ifndef ElasticCrossAnisotropic_h
00029 #define ElasticCrossAnisotropic_h
00030 
00031 //#include <Channel.h>
00032 //#include <string.h>
00033 //#include <G3Globals.h>
00034 
00035 #include <Matrix.h>
00036 #include <Vector.h>
00037 #include <Tensor.h>
00038 #include <stresst.h>
00039 #include <straint.h>
00040 
00041 #include <NDMaterial.h>
00042 
00043 class ElasticCrossAnisotropic : public NDMaterial
00044 {
00045 public:
00046   ElasticCrossAnisotropic(int tag,
00047                           double Ehp,
00048                           double Evp,
00049                           double nuhvp,
00050                           double nuhhp,
00051                           double Ghvp,
00052                           double rhop = 0.0);
00053   ElasticCrossAnisotropic ();
00054   ~ElasticCrossAnisotropic ();
00055 
00056         const char *getClassType(void) const {return "ElasticCrossAnisotropic";};
00057 
00058         double getrho ();
00059         double getMatParameter(int MatParameterID);
00060 
00061         int setTrialStrain (const Tensor &v);
00062         int setTrialStrain (const Tensor &v, const Tensor &r);
00063         int setTrialStrainIncr (const Tensor &v);
00064         int setTrialStrainIncr (const Tensor &v, const Tensor &r);
00065 
00066         const Tensor &getTangentTensor (void);
00067         const stresstensor& getStressTensor (void);
00068         const straintensor& getStrainTensor (void);
00069 
00070         int commitState (void);
00071         int revertToLastCommit (void);
00072         int revertToStart (void);
00073 
00074         NDMaterial *getCopy (void);
00075         NDMaterial *getCopy (const char *type);
00076         const char *getType (void) const;
00077 
00078         void Print(OPS_Stream &s, int flag = 0);
00079 
00080         int sendSelf(int commitTag, Channel &theChannel);
00081         int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker);
00082 
00083 protected:
00084 
00085 private:
00086     static stresstensor Stress;   // Stress tensor
00087     static Tensor Dt;         // Elastic constants tensor
00088     straintensor Strain;   // Strain tensor
00089 
00090 // all the directions are relative so we call them "horizontal" and "vertical", take that
00091 // horizontal is one plane of anisotropy while vertical is the axes perpendicular to that plane.
00092   double Eh;             // Eh: Young's modulus in any horizontal direction.
00093   double Ev;             // Ev: Young's modulus in a vertical direction.
00094   double nuhv;           // nuhv: Poisson's ratio for strain in the vertical direction due to a horizontal direct stress.
00095   double nuhh;           // nvhh: Poisoon's ratio for strain in any horizontal direction due to a horizontal direct stress at right angles.
00096   double Ghv;            // Ghv: Modulus of shear deformation in a vertical plane.
00097   double rho;            // Mass density
00098 };
00099 
00100 #endif
00101 

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