00001 // ------------------------------------------------------------------------- 00002 // Quadrat.h - This header file contains the definition of the class to 00003 // peform the numerical integration process. 00004 // ------------------------------------------------------------------------- 00005 // Main public methods: 00006 // ------------------------------------------------------------------------- 00007 // 00008 // static void ReadAll( void ) 00009 // 00010 // Reads all quadrature data from the neutral file. 00011 // ------------------------------------------------------------------------- 00012 // 00013 // static void FreeAll( void ) 00014 // 00015 // Delete all the objects of the class. 00016 // ------------------------------------------------------------------------- 00017 // 00018 // static cQuadrature *GetQuadrature( int label ) 00019 // 00020 // label - quadrature label ( in ) 00021 // 00022 // Returns the quadrature pointer from the given label. 00023 // ------------------------------------------------------------------------- 00024 // 00025 // static eIntType GetType( int label ) 00026 // 00027 // label - quadrature label ( in ) 00028 // 00029 // Returns the quadrature type from the given label. 00030 // ------------------------------------------------------------------------- 00031 // 00032 // static sOrder GetOrder( int label ) 00033 // 00034 // label - quadrature label ( in ) 00035 // 00036 // Returns the quadrature order from the given label. 00037 // ------------------------------------------------------------------------- 00038 // 00039 // static int NumQuadrature( void ) 00040 // 00041 // Returns the total number of quadratures in the mesh. 00042 // ------------------------------------------------------------------------- 00043 // 00044 // eIntType GetType( void ) 00045 // 00046 // Returns the type of the quadrature. 00047 // ------------------------------------------------------------------------- 00048 // 00049 // sOrder GetOrder( void ) 00050 // 00051 // Returns the order of the quadrature. 00052 // ------------------------------------------------------------------------- 00053 // 00054 // $Author: evandro $ 00055 // $Revision: 1.1 $ 00056 // $Date: 1999/04/12 14:53:48 $ 00057 // $State: Exp $ 00058 // 00059 // ------------------------------------------------------------------------- 00060 00061 #ifndef _QUADRAT_H 00062 #define _QUADRAT_H 00063 00064 #include "gbldefs.h" 00065 00066 // ------------------------------------------------------------------------- 00067 // Integration types: 00068 // 00069 typedef enum _eIntType 00070 { 00071 GAUSS, // Gauss quadrature 00072 LOBATTO, // Lobatto quadrature 00073 MIXED, // mixed Gauss/Lobatto for plates and shells 00074 NEWTONCOTES // Newton-cotes quadrature 00075 } eIntType; 00076 00077 // ------------------------------------------------------------------------- 00078 // Numerical integration class: 00079 // 00080 class cQuadrature 00081 { 00082 private: 00083 static int _iNumQuad; // Number of quadratures 00084 static cQuadrature **_vcQuad; // Array of quadratures 00085 00086 protected: 00087 eIntType _eType; 00088 sOrder _sOrder; 00089 00090 public: 00091 static void ReadAll ( void ); 00092 static void FreeAll ( void ); 00093 static cQuadrature *GetQuadrature( int ); 00094 static eIntType GetType ( int ); 00095 static sOrder GetOrder ( int ); 00096 static int NumQuadrature( void ) { return _iNumQuad; } 00097 cQuadrature ( eIntType, int, int, int ); 00098 ~cQuadrature ( void ) { } 00099 eIntType GetType ( void ) { return _eType; } 00100 sOrder GetOrder ( void ) { return _sOrder; } 00101 00102 private: 00103 static void ProcessIntegration( void ); 00104 static void ProcessGauss ( void ); 00105 static void ProcessLobatto ( void ); 00106 static void ProcessMixed ( void ); 00107 static void ProcessNewton ( void ); 00108 }; 00109 00110 #endif