Mesh Oriented datABase
(version 5.5.1)
An array-based unstructured mesh library
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
src
verdict
V_GaussIntegration.hpp
Generated on Sun Dec 22 2024 02:06:35 for Mesh Oriented datABase by
1.9.1.