xref: /phasta/phSolver/compressible/gtminv.f (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1      subroutine gtminv( rminv )
2c---------------------------------------------------------------------
3c this routine returns the inverse of the local mass matrix,
4c     minv = Inverse[ Integrate[ N_a * N_b ] ].
5c
6c---------------------------------------------------------------------
7      include "common.h"
8
9      dimension rminv(nshape,nshape)
10c
11c.... mass matrix inverse for quadratic tets
12c
13      if (nshape == 10) then
14         rminv(1,1) = 600.00000000000d0
15         rminv(1,2) = 60.000000000000d0
16         rminv(1,3) = 60.000000000000d0
17         rminv(1,4) = 60.000000000000d0
18         rminv(1,5) = 630.00000000000d0
19         rminv(1,6) = 0.0d0
20         rminv(1,7) = 630.00000000000d0
21         rminv(1,8) = 630.00000000000d0
22         rminv(1,9) = 0.0d0
23         rminv(1,10) = 0.0d0
24         rminv(2,1) = 60.000000000000d0
25         rminv(2,2) = 600.00000000000d0
26         rminv(2,3) = 60.000000000000d0
27         rminv(2,4) = 60.000000000000d0
28         rminv(2,5) = 630.00000000000d0
29         rminv(2,6) = 630.00000000000d0
30         rminv(2,7) = 0.d0
31         rminv(2,8) = 0.d0
32         rminv(2,9) = 630.000000000000d0
33         rminv(2,10) = 0.0d0
34         rminv(3,1) = 60.000000000000d0
35         rminv(3,2) = 60.000000000000d0
36         rminv(3,3) = 600.000000000000d0
37         rminv(3,4) = 60.000000000000d0
38         rminv(3,5) = 0.0d0
39         rminv(3,6) = 630.00000000000d0
40         rminv(3,7) = 630.00000000000d0
41         rminv(3,8) = 0.0d0
42         rminv(3,9) = 0.0d0
43         rminv(3,10) = 630.00000000000d0
44         rminv(4,1) = 60.000000000000d0
45         rminv(4,2) = 60.000000000000d0
46         rminv(4,3) = 60.000000000000d0
47         rminv(4,4) = 600.00000000000d0
48         rminv(4,5) = 0.d0
49         rminv(4,6) = 0.d0
50         rminv(4,7) = 0.d0
51         rminv(4,8) = 630.000000000000d0
52         rminv(4,9) = 630.00000000000d0
53         rminv(4,10) = 630.00000000000d0
54         rminv(5,1) = 630.00000000000d0
55         rminv(5,2) = 630.00000000000d0
56         rminv(5,3) = 0.0d0
57         rminv(5,4) = 0.0d0
58         rminv(5,5) = 1890.00000000000d0
59         rminv(5,6) = 315.00000000000d0
60         rminv(5,7) = 315.00000000000d0
61         rminv(5,8) = 315.00000000000d0
62         rminv(5,9) = 315.00000000000d0
63         rminv(5,10) = 0.0d0
64         rminv(6,1) = 0.0d0
65         rminv(6,2) = 630.000000000000d0
66         rminv(6,3) = 630.000000000000d0
67         rminv(6,4) = 0.0d0
68         rminv(6,5) = 315.00000000000d0
69         rminv(6,6) = 1890.0d0
70         rminv(6,7) = 315.00000000000d0
71         rminv(6,8) = 0.0d0
72         rminv(6,9) = 315.000000000000d0
73         rminv(6,10) = 315.000000000000d0
74         rminv(7,1) = 630.000000000000d0
75         rminv(7,2) = 0.0d0
76         rminv(7,3) = 630.00000000000d0
77         rminv(7,4) = 0.0d0
78         rminv(7,5) = 315.00000000000d0
79         rminv(7,6) = 315.00000000000d0
80         rminv(7,7) = 1890.0000000000d0
81         rminv(7,8) = 315.00000000000d0
82         rminv(7,9) = 0.0d0
83         rminv(7,10) = 315.00000000000d0
84         rminv(8,1) = 630.00000000000d0
85         rminv(8,2) = 0.0d0
86         rminv(8,3) = 0.0d0
87         rminv(8,4) = 630.000000000000d0
88         rminv(8,5) = 315.00000000000d0
89         rminv(8,6) = 0.0d0
90         rminv(8,7) = 315.00000000000d0
91         rminv(8,8) = 1890.0000000000d0
92         rminv(8,9) = 315.00000000000d0
93         rminv(8,10) = 315.00000000000d0
94         rminv(9,1) = 0.0d0
95         rminv(9,2) = 630.000000000000d0
96         rminv(9,3) = 0.0d0
97         rminv(9,4) = 630.00000000000d0
98         rminv(9,5) = 315.00000000000d0
99         rminv(9,6) = 315.00000000000d0
100         rminv(9,7) = 0.0d0
101         rminv(9,8) = 315.00000000000d0
102         rminv(9,9) = 1890.00000000000d0
103         rminv(9,10) = 315.00000000000d0
104         rminv(10,1) = 0.0d0
105         rminv(10,2) = 0.0d0
106         rminv(10,3) = 630.00000000000d0
107         rminv(10,4) = 630.00000000000d0
108         rminv(10,5) = 0.0d0
109         rminv(10,6) = 315.00000000000d0
110         rminv(10,7) = 315.00000000000d0
111         rminv(10,8) = 315.00000000000d0
112         rminv(10,9) = 315.00000000000d0
113         rminv(10,10) = 1890.0000000000d0
114      else if (nshape == 20) then
115c
116c.... cubic tets
117c
118         rminv(1,1) = 2400.d0
119         rminv(1,2) = -120.d0
120         rminv(1,3) = -120.d0
121         rminv(1,4) = -120.d0
122         rminv(1,5) = 2520.d0
123         rminv(1,6) = -2520.d0
124         rminv(1,7) = 0.d0
125         rminv(1,8) = 0.d0
126         rminv(1,9) = 2520.d0
127         rminv(1,10) = 2520.d0
128         rminv(1,11) = 2520.d0
129         rminv(1,12) = -2520.d0
130         rminv(1,13) = 0.d0
131         rminv(1,14) = 0.d0
132         rminv(1,15) = 0.d0
133         rminv(1,16) = 0.d0
134         rminv(1,17) = 10080.d0
135         rminv(1,18) = 10080.d0
136         rminv(1,19) = 0.d0
137         rminv(1,20) = 10080.d0
138         rminv(2,1) = -120.d0
139         rminv(2,2) = 2400.d0
140         rminv(2,3) = -120.d0
141         rminv(2,4) = -120.d0
142         rminv(2,5) = 2520.d0
143         rminv(2,6) = 2520.d0
144         rminv(2,7) = 2520.d0
145         rminv(2,8) = -2520.d0
146         rminv(2,9) = 0.d0
147         rminv(2,10) = 0.d0
148         rminv(2,11) = 0.d0
149         rminv(2,12) = 0.d0
150         rminv(2,13) = 2520.d0
151         rminv(2,14) = -2520.d0
152         rminv(2,15) = 0.d0
153         rminv(2,16) = 0.d0
154         rminv(2,17) = 10080.d0
155         rminv(2,18) = 10080.d0
156         rminv(2,19) = 10080.d0
157         rminv(2,20) = 0.d0
158         rminv(3,1) = -120.d0
159         rminv(3,2) = -120.d0
160         rminv(3,3) = 2400.d0
161         rminv(3,4) = -120.d0
162         rminv(3,5) = 0.d0
163         rminv(3,6) = 0.d0
164         rminv(3,7) = 2520.d0
165         rminv(3,8) = 2520.d0
166         rminv(3,9) = 2520.d0
167         rminv(3,10) = -2520.d0
168         rminv(3,11) = 0.d0
169         rminv(3,12) = 0.d0
170         rminv(3,13) = 0.d0
171         rminv(3,14) = 0.d0
172         rminv(3,15) = 2520.d0
173         rminv(3,16) = -2520.d0
174         rminv(3,17) = 10080.d0
175         rminv(3,18) = 0.d0
176         rminv(3,19) = 10080.d0
177         rminv(3,20) = 10080.d0
178         rminv(4,1) = -120.d0
179         rminv(4,2) = -120.d0
180         rminv(4,3) = -120.d0
181         rminv(4,4) = 2400.d0
182         rminv(4,5) = 0.d0
183         rminv(4,6) = 0.d0
184         rminv(4,7) = 0.d0
185         rminv(4,8) = 0.d0
186         rminv(4,9) = 0.d0
187         rminv(4,10) = 0.d0
188         rminv(4,11) = 2520.d0
189         rminv(4,12) = 2520.d0
190         rminv(4,13) = 2520.d0
191         rminv(4,14) = 2520.d0
192         rminv(4,15) = 2520.d0
193         rminv(4,16) = 2520.d0
194         rminv(4,17) = 0.d0
195         rminv(4,18) = 10080.d0
196         rminv(4,19) = 10080.d0
197         rminv(4,20) = 10080.d0
198         rminv(5,1) = 2520.d0
199         rminv(5,2) = 2520.d0
200         rminv(5,3) = 0.d0
201         rminv(5,4) = 0.d0
202         rminv(5,5) = 7560.d0
203         rminv(5,6) = 0.d0
204         rminv(5,7) = 3150.d0
205         rminv(5,8) = -1890.d0
206         rminv(5,9) = 3150.d0
207         rminv(5,10) = 1890.d0
208         rminv(5,11) = 3150.d0
209         rminv(5,12) = -1890.d0
210         rminv(5,13) = 3150.d0
211         rminv(5,14) = -1890.d0
212         rminv(5,15) = 0.d0
213         rminv(5,16) = 0.d0
214         rminv(5,17) = 37800.d0
215         rminv(5,18) = 37800.d0
216         rminv(5,19) = 7560.d0
217         rminv(5,20) = 7560.d0
218         rminv(6,1) = -2520.d0
219         rminv(6,2) = 2520.d0
220         rminv(6,3) = 0.d0
221         rminv(6,4) = 0.d0
222         rminv(6,5) = 0.d0
223         rminv(6,6) = 12600.d0
224         rminv(6,7) = 1890.d0
225         rminv(6,8) = -630.d0
226         rminv(6,9) = -1890.d0
227         rminv(6,10) = -630.d0
228         rminv(6,11) = -1890.d0
229         rminv(6,12) = 630.d0
230         rminv(6,13) = 1890.d0
231         rminv(6,14) = -630.d0
232         rminv(6,15) = 0.d0
233         rminv(6,16) = 0.d0
234         rminv(6,17) = 0.d0
235         rminv(6,18) = 0.d0
236         rminv(6,19) = 2520.d0
237         rminv(6,20) = -2520.d0
238         rminv(7,1) = 0.d0
239         rminv(7,2) = 2520.d0
240         rminv(7,3) = 2520.d0
241         rminv(7,4) = 0.d0
242         rminv(7,5) = 3150.d0
243         rminv(7,6) = 1890.d0
244         rminv(7,7) = 7560.d0
245         rminv(7,8) = 0.d0
246         rminv(7,9) = 3150.d0
247         rminv(7,10) = -1890.d0
248         rminv(7,11) = 0.d0
249         rminv(7,12) = 0.d0
250         rminv(7,13) = 3150.d0
251         rminv(7,14) = -1890.d0
252         rminv(7,15) = 3150.d0
253         rminv(7,16) = -1890.d0
254         rminv(7,17) = 37800.d0
255         rminv(7,18) = 7560.d0
256         rminv(7,19) = 37800.d0
257         rminv(7,20) = 7560.d0
258         rminv(8,1) = 0.d0
259         rminv(8,2) = -2520.d0
260         rminv(8,3) = 2520.d0
261         rminv(8,4) = 0.d0
262         rminv(8,5) = -1890.d0
263         rminv(8,6) = -630.d0
264         rminv(8,7) = 0.d0
265         rminv(8,8) = 12600.d0
266         rminv(8,9) = 1890.d0
267         rminv(8,10) = -630.d0
268         rminv(8,11) = 0.d0
269         rminv(8,12) = 0.d0
270         rminv(8,13) = -1890.d0
271         rminv(8,14) = 630.d0
272         rminv(8,15) = 1890.d0
273         rminv(8,16) = -630.d0
274         rminv(8,17) = 0.d0
275         rminv(8,18) = -2520.d0
276         rminv(8,19) = 0.d0
277         rminv(8,20) = 2520.d0
278         rminv(9,1) = 2520.d0
279         rminv(9,2) = 0.d0
280         rminv(9,3) = 2520.d0
281         rminv(9,4) = 0.d0
282         rminv(9,5) = 3150.d0
283         rminv(9,6) = -1890.d0
284         rminv(9,7) = 3150.d0
285         rminv(9,8) = 1890.d0
286         rminv(9,9) = 7560.d0
287         rminv(9,10) = 0.d0
288         rminv(9,11) = 3150.d0
289         rminv(9,12) = -1890.d0
290         rminv(9,13) = 0.d0
291         rminv(9,14) = 0.d0
292         rminv(9,15) = 3150.d0
293         rminv(9,16) = -1890.d0
294         rminv(9,17) = 37800.d0
295         rminv(9,18) = 7560.d0
296         rminv(9,19) = 7560.d0
297         rminv(9,20) = 37800.d0
298         rminv(10,1) = 2520.d0
299         rminv(10,2) = 0.d0
300         rminv(10,3) = -2520.d0
301         rminv(10,4) = 0.d0
302         rminv(10,5) = 1890.d0
303         rminv(10,6) = -630.d0
304         rminv(10,7) = -1890.d0
305         rminv(10,8) = -630.d0
306         rminv(10,9) = 0.d0
307         rminv(10,10) = 12600.d0
308         rminv(10,11) = 1890.d0
309         rminv(10,12) = -630.d0
310         rminv(10,13) = 0.d0
311         rminv(10,14) = 0.d0
312         rminv(10,15) = -1890.d0
313         rminv(10,16) = 630.d0
314         rminv(10,17) = 0.d0
315         rminv(10,18) = 2520.d0
316         rminv(10,19) = -2520.d0
317         rminv(10,20) = 0.d0
318         rminv(11,1) = 2520.d0
319         rminv(11,2) = 0.d0
320         rminv(11,3) = 0.d0
321         rminv(11,4) = 2520.d0
322         rminv(11,5) = 3150.d0
323         rminv(11,6) = -1890.d0
324         rminv(11,7) = 0.d0
325         rminv(11,8) = 0.d0
326         rminv(11,9) = 3150.d0
327         rminv(11,10) = 1890.d0
328         rminv(11,11) = 7560.d0
329         rminv(11,12) = 0.d0
330         rminv(11,13) = 3150.d0
331         rminv(11,14) = 1890.d0
332         rminv(11,15) = 3150.d0
333         rminv(11,16) = 1890.d0
334         rminv(11,17) = 7560.d0
335         rminv(11,18) = 37800.d0
336         rminv(11,19) = 7560.d0
337         rminv(11,20) = 37800.d0
338         rminv(12,1) = -2520.d0
339         rminv(12,2) = 0.d0
340         rminv(12,3) = 0.d0
341         rminv(12,4) = 2520.d0
342         rminv(12,5) = -1890.d0
343         rminv(12,6) = 630.d0
344         rminv(12,7) = 0.d0
345         rminv(12,8) = 0.d0
346         rminv(12,9) = -1890.d0
347         rminv(12,10) = -630.d0
348         rminv(12,11) = 0.d0
349         rminv(12,12) = 12600.d0
350         rminv(12,13) = 1890.d0
351         rminv(12,14) = 630.d0
352         rminv(12,15) = 1890.d0
353         rminv(12,16) = 630.d0
354         rminv(12,17) = -2520.d0
355         rminv(12,18) = 0.d0
356         rminv(12,19) = 2520.d0
357         rminv(12,20) = 0.d0
358         rminv(13,1) = 0.d0
359         rminv(13,2) = 2520.d0
360         rminv(13,3) = 0.d0
361         rminv(13,4) = 2520.d0
362         rminv(13,5) = 3150.d0
363         rminv(13,6) = 1890.d0
364         rminv(13,7) = 3150.d0
365         rminv(13,8) = -1890.d0
366         rminv(13,9) = 0.d0
367         rminv(13,10) = 0.d0
368         rminv(13,11) = 3150.d0
369         rminv(13,12) = 1890.d0
370         rminv(13,13) = 7560.d0
371         rminv(13,14) = 0.d0
372         rminv(13,15) = 3150.d0
373         rminv(13,16) = 1890.d0
374         rminv(13,17) = 7560.d0
375         rminv(13,18) = 37800.d0
376         rminv(13,19) = 37800.d0
377         rminv(13,20) = 7560.d0
378         rminv(14,1) = 0.d0
379         rminv(14,2) = -2520.d0
380         rminv(14,3) = 0.d0
381         rminv(14,4) = 2520.d0
382         rminv(14,5) = -1890.d0
383         rminv(14,6) = -630.d0
384         rminv(14,7) = -1890.d0
385         rminv(14,8) = 630.d0
386         rminv(14,9) = 0.d0
387         rminv(14,10) = 0.d0
388         rminv(14,11) = 1890.d0
389         rminv(14,12) = 630.d0
390         rminv(14,13) = 0.d0
391         rminv(14,14) = 12600.d0
392         rminv(14,15) = 1890.d0
393         rminv(14,16) = 630.d0
394         rminv(14,17) = -2520.d0
395         rminv(14,18) = 0.d0
396         rminv(14,19) = 0.d0
397         rminv(14,20) = 2520.d0
398         rminv(15,1) = 0.d0
399         rminv(15,2) = 0.d0
400         rminv(15,3) = 2520.d0
401         rminv(15,4) = 2520.d0
402         rminv(15,5) = 0.d0
403         rminv(15,6) = 0.d0
404         rminv(15,7) = 3150.d0
405         rminv(15,8) = 1890.d0
406         rminv(15,9) = 3150.d0
407         rminv(15,10) = -1890.d0
408         rminv(15,11) = 3150.d0
409         rminv(15,12) = 1890.d0
410         rminv(15,13) = 3150.d0
411         rminv(15,14) = 1890.d0
412         rminv(15,15) = 7560.d0
413         rminv(15,16) = 0.d0
414         rminv(15,17) = 7560.d0
415         rminv(15,18) = 7560.d0
416         rminv(15,19) = 37800.d0
417         rminv(15,20) = 37800.d0
418         rminv(16,1) = 0.d0
419         rminv(16,2) = 0.d0
420         rminv(16,3) = -2520.d0
421         rminv(16,4) = 2520.d0
422         rminv(16,5) = 0.d0
423         rminv(16,6) = 0.d0
424         rminv(16,7) = -1890.d0
425         rminv(16,8) = -630.d0
426         rminv(16,9) = -1890.d0
427         rminv(16,10) = 630.d0
428         rminv(16,11) = 1890.d0
429         rminv(16,12) = 630.d0
430         rminv(16,13) = 1890.d0
431         rminv(16,14) = 630.d0
432         rminv(16,15) = 0.d0
433         rminv(16,16) = 12600.d0
434         rminv(16,17) = -2520.d0
435         rminv(16,18) = 2520.d0
436         rminv(16,19) = 0.d0
437         rminv(16,20) = 0.d0
438         rminv(17,1) = 10080.d0
439         rminv(17,2) = 10080.d0
440         rminv(17,3) = 10080.d0
441         rminv(17,4) = 0.d0
442         rminv(17,5) = 37800.d0
443         rminv(17,6) = 0.d0
444         rminv(17,7) = 37800.d0
445         rminv(17,8) = 0.d0
446         rminv(17,9) = 37800.d0
447         rminv(17,10) = 0.d0
448         rminv(17,11) = 7560.d0
449         rminv(17,12) = -2520.d0
450         rminv(17,13) = 7560.d0
451         rminv(17,14) = -2520.d0
452         rminv(17,15) = 7560.d0
453         rminv(17,16) = -2520.d0
454         rminv(17,17) = 529200.d0
455         rminv(17,18) = 65520.d0
456         rminv(17,19) = 65520.d0
457         rminv(17,20) = 65520.d0
458         rminv(18,1) = 10080.d0
459         rminv(18,2) = 10080.d0
460         rminv(18,3) = 0.d0
461         rminv(18,4) = 10080.d0
462         rminv(18,5) = 37800.d0
463         rminv(18,6) = 0.d0
464         rminv(18,7) = 7560.d0
465         rminv(18,8) = -2520.d0
466         rminv(18,9) = 7560.d0
467         rminv(18,10) = 2520.d0
468         rminv(18,11) = 37800.d0
469         rminv(18,12) = 0.d0
470         rminv(18,13) = 37800.d0
471         rminv(18,14) = 0.d0
472         rminv(18,15) = 7560.d0
473         rminv(18,16) = 2520.d0
474         rminv(18,17) = 65520.d0
475         rminv(18,18) = 529200.d0
476         rminv(18,19) = 65520.d0
477         rminv(18,20) = 65520.d0
478         rminv(19,1) = 0.d0
479         rminv(19,2) = 10080.d0
480         rminv(19,3) = 10080.d0
481         rminv(19,4) = 10080.d0
482         rminv(19,5) = 7560.d0
483         rminv(19,6) = 2520.d0
484         rminv(19,7) = 37800.d0
485         rminv(19,8) = 0.d0
486         rminv(19,9) = 7560.d0
487         rminv(19,10) = -2520.d0
488         rminv(19,11) = 7560.d0
489         rminv(19,12) = 2520.d0
490         rminv(19,13) = 37800.d0
491         rminv(19,14) = 0.d0
492         rminv(19,15) = 37800.d0
493         rminv(19,16) = 0.d0
494         rminv(19,17) = 65520.d0
495         rminv(19,18) = 65520.d0
496         rminv(19,19) = 529200.d0
497         rminv(19,20) = 65520.d0
498         rminv(20,1) = 10080.d0
499         rminv(20,2) = 0.d0
500         rminv(20,3) = 10080.d0
501         rminv(20,4) = 10080.d0
502         rminv(20,5) = 7560.d0
503         rminv(20,6) = -2520.d0
504         rminv(20,7) = 7560.d0
505         rminv(20,8) = 2520.d0
506         rminv(20,9) = 37800.d0
507         rminv(20,10) = 0.d0
508         rminv(20,11) = 37800.d0
509         rminv(20,12) = 0.d0
510         rminv(20,13) = 7560.d0
511         rminv(20,14) = 2520.d0
512         rminv(20,15) = 37800.d0
513         rminv(20,16) = 0.d0
514         rminv(20,17) = 65520.d0
515         rminv(20,18) = 65520.d0
516         rminv(20,19) = 65520.d0
517         rminv(20,20) = 529200.d0
518      else
519         write(*,*) 'error in gtinv.f: element type not supported'
520      endif
521
522c
523c.... return
524c
525      return
526      end
527
528
529
530