Loading [MathJax]/jax/output/HTML-CSS/config.js
Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
V_GaussIntegration.hpp
Go to the documentation of this file.
1 /*========================================================================= 2  3  Module: $RCSfile: V_GaussIntegration.hpp,v $ 4  5  Copyright (c) 2006 Sandia Corporation. 6  All rights reserved. 7  See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 8  9  This software is distributed WITHOUT ANY WARRANTY; without even 10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 11  PURPOSE. See the above copyright notice for more information. 12  13 =========================================================================*/ 14  15 /* 16  * 17  * GaussIntegration.hpp declaration of gauss integration functions 18  * 19  * This file is part of VERDICT 20  * 21  */ 22  23 #ifndef GAUSS_INTEGRATION_HPP 24 #define GAUSS_INTEGRATION_HPP 25  26 #include "moab/verdict.h" 27  28 #define maxTotalNumberGaussPoints 27 29 #define maxNumberNodes 20 30 #define maxNumberGaussPoints 3 31 #define maxNumberGaussPointsTri 6 32 #define maxNumberGaussPointsTet 4 33  34 namespace GaussIntegration 35 { 36  37 void get_signs_for_node_local_coord_hex( int node_id, double& sign_y1, double& sign_y2, double& sign_y3 ); 38 //- to get the signs for coordinates of hex nodes in the local computational space 39  40 // constructors 41 void initialize( int n = 2, int m = 4, int dim = 2, int tri = 0 ); 42  43 // manipulators 44 void get_gauss_pts_and_weight(); 45 //- get gauss point locations and weights 46  47 void get_tri_rule_pts_and_weight(); 48 //- get integration points and weights for triangular rules 49  50 void calculate_shape_function_2d_tri(); 51 //- calculate the shape functions and derivatives of shape functions 52 //- at integration points for 2D triangular elements 53  54 void calculate_shape_function_2d_quad(); 55 //- calculate the shape functions and derivatives of shape functions 56 //- at gaussian points for 2D quad elements 57  58 void get_shape_func( double shape_function[], 59  double dndy1_at_gauss_pts[], 60  double dndy2_at_gauss_ptsp[], 61  double gauss_weight[] ); 62 //- get shape functions and the derivatives 63  64 void get_shape_func( double shape_function[], 65  double dndy1_at_gauss_pts[], 66  double dndy2_at_gauss_pts[], 67  double dndy3_at_gauss_pts[], 68  double gauss_weight[] ); 69 //- get shape functions and the derivatives for 3D elements 70  71 void calculate_derivative_at_nodes( double dndy1_at_nodes[][maxNumberNodes], double dndy2_at_nodes[][maxNumberNodes] ); 72 //- calculate shape function derivatives at nodes 73  74 void calculate_shape_function_3d_hex(); 75 //- calculate shape functions and derivatives of shape functions 76 //- at gaussian points for 3D hex elements 77  78 void calculate_derivative_at_nodes_3d( double dndy1_at_nodes[][maxNumberNodes], 79  double dndy2_at_nodes[][maxNumberNodes], 80  double dndy3_at_nodes[][maxNumberNodes] ); 81 //- calculate shape function derivatives at nodes for hex elements 82  83 void calculate_derivative_at_nodes_2d_tri( double dndy1_at_nodes[][maxNumberNodes], 84  double dndy2_at_nodes[][maxNumberNodes] ); 85 //- calculate shape function derivatives at nodes for triangular elements 86  87 void calculate_shape_function_3d_tet(); 88 //- calculate shape functions and derivatives of shape functions 89 //- at integration points for 3D tet elements 90  91 void get_tet_rule_pts_and_weight(); 92 //- get integration points and weights for tetrhedron rules 93  94 void calculate_derivative_at_nodes_3d_tet( double dndy1_at_nodes[][maxNumberNodes], 95  double dndy2_at_nodes[][maxNumberNodes], 96  double dndy3_at_nodes[][maxNumberNodes] ); 97 //- calculate shape function derivatives at nodes for tetrahedron elements 98  99 void get_node_local_coord_tet( int node_id, double& y1, double& y2, double& y3, double& y4 ); 100 //- get nodal volume coordinates for tetrahedron element 101 } // namespace GaussIntegration 102  103 #endif