Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
enhanced_elem_maps_hex.f90
Go to the documentation of this file.
1 !*********************************************************************
2 !* Illinois Open Source License *
3 !* *
4 !* University of Illinois/NCSA *
5 !* Open Source License *
6 !* *
7 !* Copyright@2008, University of Illinois. All rights reserved. *
8 !* *
9 !* Developed by: *
10 !* *
11 !* Center for Simulation of Advanced Rockets *
12 !* *
13 !* University of Illinois *
14 !* *
15 !* www.csar.uiuc.edu *
16 !* *
17 !* Permission is hereby granted, free of charge, to any person *
18 !* obtaining a copy of this software and associated documentation *
19 !* files (the "Software"), to deal with the Software without *
20 !* restriction, including without limitation the rights to use, *
21 !* copy, modify, merge, publish, distribute, sublicense, and/or *
22 !* sell copies of the Software, and to permit persons to whom the *
23 !* Software is furnished to do so, subject to the following *
24 !* conditions: *
25 !* *
26 !* *
27 !* @ Redistributions of source code must retain the above copyright *
28 !* notice, this list of conditions and the following disclaimers. *
29 !* *
30 !* @ Redistributions in binary form must reproduce the above *
31 !* copyright notice, this list of conditions and the following *
32 !* disclaimers in the documentation and/or other materials *
33 !* provided with the distribution. *
34 !* *
35 !* @ Neither the names of the Center for Simulation of Advanced *
36 !* Rockets, the University of Illinois, nor the names of its *
37 !* contributors may be used to endorse or promote products derived *
38 !* from this Software without specific prior written permission. *
39 !* *
40 !* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
41 !* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
42 !* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
43 !* NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
44 !* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
45 !* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
46 !* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
47 !* USE OR OTHER DEALINGS WITH THE SOFTWARE. *
48 !*********************************************************************
49 !* Please acknowledge The University of Illinois Center for *
50 !* Simulation of Advanced Rockets in works and publications *
51 !* resulting from this software or its derivatives. *
52 !*********************************************************************
53 subroutine enhanced_elem_maps_hex(mixed_map,enhanced_map)
54 
55  implicit none
56 
57  integer :: igpt
58 
59  REAL*8, DIMENSION(1:8,1:9,1:12) :: mixed_map
60  REAL*8, DIMENSION(1:8,1:9,1:9) :: enhanced_map
61 
62  REAL*8, DIMENSION(1:8) :: xi, eta, zeta
63  REAL*8, parameter :: one = 1.d0, three = 3.d0
64 
65 
66 
67  xi = (/ one/sqrt(three), -one/sqrt(three), -one/sqrt(three), &
68  one/sqrt(three), one/sqrt(three), -one/sqrt(three), &
69  -one/sqrt(three), one/sqrt(three) /)
70 
71  eta = (/ one/sqrt(three), one/sqrt(three), -one/sqrt(three), &
72  -one/sqrt(three), one/sqrt(three), one/sqrt(three), &
73  -one/sqrt(three), -one/sqrt(three) /)
74 
75  zeta = (/ one/sqrt(three), one/sqrt(three), one/sqrt(three), &
76  one/sqrt(three), -one/sqrt(three), -one/sqrt(three), &
77  -one/sqrt(three), -one/sqrt(three) /)
78 
79 ! Compute static things for gauss points
80 
81  DO igpt =1, 8
82 
83 ! Compute mixed mapping matrix <mixed_map> at each gauss point
84 
85  mixed_map(igpt,1,1) = eta(igpt)
86  mixed_map(igpt,1,2) = zeta(igpt)
87  mixed_map(igpt,1,3) = eta(igpt) * zeta(igpt)
88  mixed_map(igpt,2,10) = zeta(igpt)
89  mixed_map(igpt,3,12) = eta(igpt)
90  mixed_map(igpt,4,10) = zeta(igpt)
91  mixed_map(igpt,5,4) = xi(igpt)
92  mixed_map(igpt,5,5) = zeta(igpt)
93  mixed_map(igpt,5,6) = xi(igpt) * zeta(igpt)
94  mixed_map(igpt,6,11) = xi(igpt)
95  mixed_map(igpt,7,12) = eta(igpt)
96  mixed_map(igpt,8,11) = xi(igpt)
97  mixed_map(igpt,9,7) = xi(igpt)
98  mixed_map(igpt,9,8) = eta(igpt)
99  mixed_map(igpt,9,9) = xi(igpt) * eta(igpt)
100 
101 ! Compute enhanced mapping matrix <enhanced_map> at each gauss point
102 
103  enhanced_map(igpt,1,1) = xi(igpt)
104  enhanced_map(igpt,1,2) = xi(igpt) * eta(igpt)
105  enhanced_map(igpt,1,3) = xi(igpt) * zeta(igpt)
106  enhanced_map(igpt,5,4) = eta(igpt)
107  enhanced_map(igpt,5,5) = eta(igpt) * zeta(igpt)
108  enhanced_map(igpt,5,6) = eta(igpt) * xi(igpt)
109  enhanced_map(igpt,9,7) = zeta(igpt)
110  enhanced_map(igpt,9,8) = zeta(igpt) * eta(igpt)
111  enhanced_map(igpt,9,9) = zeta(igpt) * xi(igpt)
112 
113  END DO
114 
115 
116 end subroutine enhanced_elem_maps_hex
117 
double sqrt(double d)
Definition: double.h:73
subroutine enhanced_elem_maps_hex(mixed_map, enhanced_map)