MatPoint3D.h

Go to the documentation of this file.
00001 //=============================================================================
00002 //
00003 // COPYRIGHT (C):     :-))
00004 // PROJECT:           Object Oriented Finite Element Program
00005 // FILE:              MatPoint3D.h
00006 // CLASS:             MatPoint3D
00007 // MEMBER FUNCTIONS:
00008 //
00009 // MEMBER VARIABLES
00010 //
00011 // PURPOSE:           Gauss Point
00012 // RETURN:
00013 // VERSION:
00014 // LANGUAGE:          C++.ver >= 3.0 (Borland.C++.ver=3.1||SUN.C++.ver=3.0.1)
00015 // TARGET OS:         DOS || UNIX || . . .
00016 // DESIGNER:          Boris Jeremic
00017 // PROGRAMMER:        Boris Jeremic
00018 // DATE:              17 October 1994.
00019 // UPDATE HISTORY:
00020 //
00021 //
00022 //#                    Aug 2000 porting to OpenSees                            #
00023 //=============================================================================
00024 //
00025 //
00026 #ifndef MATPOINT3D_H
00027 #define MATPOINT3D_H
00028 
00029 #include <stresst.h>
00030 #include <straint.h>
00031 
00032 //#include <mmodel.h>
00033 #include <EPState.h>
00034 #include <NDMaterial.h>
00035 
00036 class MatPoint3D
00037 {
00038   private:
00039     short int  r_direction_point_number;
00040     short int  s_direction_point_number;
00041     short int  t_direction_point_number;
00042     double r;
00043     double s;
00044     double t;
00045     double rw;
00046     double sw;
00047     double tw;
00048 
00049   public: // dobro ovo su samo ustvari pointeri pa nema ekstra kopiranja !
00050 
00051     // *gpEPS is used to hold all state parameters and internal vars, instead of the 
00052     // following stresses, strain, and internal vars __Zhaohui 09-30-2000
00053     
00054     //Now no EPState needed. Each MatPoint has an NDMaterial
00055     //EPState        *gpEPS;
00056     
00057     //stresstensor * p_stress;
00058     //stresstensor * p_iterative_stress; // to be used for iterative nodal forces
00059     //double         q_ast_iterative;
00060     //straintensor * p_strain;
00061     //tensor  * TangentE;
00062     
00063     //Might be ElasticIsotropic3D or Template3Dep
00064     NDMaterial * matmodel;
00065 
00066   public:  
00067     //default constructor
00068     MatPoint3D(  short int INr_direction_point_number = 0,
00069                short int INs_direction_point_number = 0,
00070                short int INt_direction_point_number = 0,
00071                double r_coord = 0,
00072                double s_coord = 0,
00073                double t_coord = 0,
00074                double r_weight = 0,
00075                double s_weight = 0,
00076                double t_weight = 0,
00077                //EPState *eps    = 0,
00078                NDMaterial * p_mmodel = 0   
00079                //stresstensor * p_INstress = 0,
00080                //stresstensor * p_INiterative_stress = 0,
00081                //double         IN_q_ast_iterative = 0.0,
00082                //straintensor * p_INstrain = 0,
00083                //tensor * p_Tangent_E_tensor = 0,
00084                );
00085         
00086     // Constructor 1
00087     ~MatPoint3D();
00088 
00089     void Initialize(short int INr_direction_point_number,
00090                     short int INs_direction_point_number,
00091                     short int INt_direction_point_number,
00092                     double r_coord,
00093                     double s_coord,
00094                     double t_coord,
00095                     double r_weight,
00096                     double s_weight,
00097                     double t_weight,
00098                     //stresstensor * p_INstress,
00099                     //stresstensor * p_INiterative_stress,
00100                     //double         IN_q_ast_iterative,
00101                     //straintensor * p_INstrain,
00102                     //tensor * p_Tangent_E_tensor,
00103                     //EPState  * EPS,
00104                     NDMaterial * p_mmodel
00105                    );                             
00106 
00107 
00108   public:
00109     short int GP_number_r(void) const;
00110     short int GP_number_s(void) const;
00111     short int GP_number_t(void) const;
00112    
00113     MatPoint3D * GP(void);
00114 
00115     double r_coordinate() const;
00116     double s_coordinate() const;
00117     double t_coordinate() const;
00118     
00119     double r_weight() const;
00120     double s_weight() const;
00121     double t_weight() const;
00122     
00123     //void setEPS(EPState *eps);
00124     //EPState *getEPS() const;
00125     NDMaterial* getNDMat() const;
00126     const char* getType (void) const;
00127     int getTag (void) const;
00128     double getrho() const;
00129     const stresstensor getStressTensor() const;
00130     const straintensor getStrainTensor() const;
00131     //Added Aug. 13, 2001 Joey
00132     const straintensor getPlasticStrainTensor() const;
00133     //Added 02-18-03 Joey
00134     //double getpsi() const; //state parameter
00135     
00136     int commitState(void) ;
00137     int revertToLastCommit(void) ;
00138     int revertToStart(void) ;
00139 
00140     void report(char * msg) const;
00141     void reportpqtheta(char * msg) const;
00142     void reportTensor(char *msg) const;
00143 };
00144 
00145 #endif 
00146 //

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