-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJIMACK.SIF
1249 lines (1166 loc) · 41.8 KB
/
JIMACK.SIF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
***************************
* SET UP THE INITIAL DATA *
***************************
NAME JIMACK
* Problem :
* *********
* Source: Parallel optimization for a finite element problem
* from nonlinear elasticity, P. K. Jimack, School of Computer Studies,
* U. of Leeds, report 91.22, July 1991.
* SIF input: Nick Gould, September 1991.
* classification OUR2-AN-3549-0
* A 3-D discretization of the box [-1,1]x[-1,1]x[0,DELTA] is used with
* N grid lines in the first two dimensions and M lines in the last.
* Number of grid lines.
* ** N.B. M and N must also be set in the ELEMENTS file and in the
* parameter statement in the INTEGER FUNCTION IENT which follows the
* ELEMENTS file.
*IE N 2
*IE M 2
IE M 6
IE N 12
* Problem data
* ** N.B. DELTA and EPS must also be set in the ELEMENTS file.
RE DELTA 0.1
RE EPS 0.01
* Other useful parameters
IE 0 0
IE 1 1
IE 2 2
IA M-1 M -1
IA N-1 N -1
I* N**2 N N
I* MN**2 M N**2
RI RMN**2 MN**2
RM 2RMN**2 RMN**2 2.0D+0
R/ SCAL 2RMN**2 DELTA
RI RM M
R/ DZ DELTA RM
RA RM RM 0.1
RI RN N
RD DX RN 2.0D+0
RA RN RN 0.1
VARIABLES
DO I 0 N
DO J 0 N
DO K 0 M
X AX(I,J,K)
X AY(I,J,K)
X AZ(I,J,K)
ND
GROUPS
ZN OBJ 'SCALE' SCAL
BOUNDS
FR JIMACK 'DEFAULT'
START POINT
* start with the identity map
RE RX -1.0D+0
DO I 0 N
RE RY -1.0D+0
DO J 0 N
RE RZ 0.0D+0
DO K 0 M
Z JIMACK AX(I,J,K) RX
Z JIMACK AY(I,J,K) RY
Z JIMACK AZ(I,J,K) RZ
R+ RZ RZ DZ
OD K
R+ RY RY DX
OD J
R+ RX RX DX
OD I
ELEMENT TYPE
* INTEGRAL
EV INTEGRAL AXLLL AXULL
EV INTEGRAL AXLUL AXUUL
EV INTEGRAL AXLLU AXULU
EV INTEGRAL AXLUU AXUUU
EV INTEGRAL AYLLL AYULL
EV INTEGRAL AYLUL AYUUL
EV INTEGRAL AYLLU AYULU
EV INTEGRAL AYLUU AYUUU
EV INTEGRAL AZLLL AZULL
EV INTEGRAL AZLUL AZUUL
EV INTEGRAL AZLLU AZULU
EV INTEGRAL AZLUU AZUUU
EP INTEGRAL RI RJ
EP INTEGRAL RK
ELEMENT USES
DO I 0 N-1
IA R I 1
RI RI I
RA RI RI 0.1
DO J 0 N-1
IA S J 1
RI RJ J
RA RJ RJ 0.1
DO K 0 M-1
IA T K 1
RI RK K
RA RK RK 0.1
XT E(I,J,K) INTEGRAL
* Variables are defined at the vertices of the 3-D box.
* The vertices are marked ijk with i, j or k =
* L (lower coordinate) or U (upper cordinate).
ZV E(I,J,K) AXLLL AX(I,J,K)
ZV E(I,J,K) AXLUL AX(I,S,K)
ZV E(I,J,K) AXLLU AX(I,J,T)
ZV E(I,J,K) AXLUU AX(I,S,T)
ZV E(I,J,K) AXULL AX(R,J,K)
ZV E(I,J,K) AXUUL AX(R,S,K)
ZV E(I,J,K) AXULU AX(R,J,T)
ZV E(I,J,K) AXUUU AX(R,S,T)
ZV E(I,J,K) AYLLL AY(I,J,K)
ZV E(I,J,K) AYLUL AY(I,S,K)
ZV E(I,J,K) AYLLU AY(I,J,T)
ZV E(I,J,K) AYLUU AY(I,S,T)
ZV E(I,J,K) AYULL AY(R,J,K)
ZV E(I,J,K) AYUUL AY(R,S,K)
ZV E(I,J,K) AYULU AY(R,J,T)
ZV E(I,J,K) AYUUU AY(R,S,T)
ZV E(I,J,K) AZLLL AZ(I,J,K)
ZV E(I,J,K) AZLUL AZ(I,S,K)
ZV E(I,J,K) AZLLU AZ(I,J,T)
ZV E(I,J,K) AZLUU AZ(I,S,T)
ZV E(I,J,K) AZULL AZ(R,J,K)
ZV E(I,J,K) AZUUL AZ(R,S,K)
ZV E(I,J,K) AZULU AZ(R,J,T)
ZV E(I,J,K) AZUUU AZ(R,S,T)
ZP E(I,J,K) RI RI
ZP E(I,J,K) RJ RJ
ZP E(I,J,K) RK RK
ND
GROUP USES
DO I 0 N-1
DO J 0 N-1
DO K 0 M-1
XE OBJ E(I,J,K)
ND
OBJECT BOUND
* Solution
*LO SOLTN ?
ENDATA
***********************
* SET UP THE FUNCTION *
* AND RANGE ROUTINES *
***********************
ELEMENTS JIMACK
TEMPORARIES
I I
I J
I K
I M
I N
R RM
R RN
R DX
R DY
R DZ
R DELX
R DELY
R DELZ
R DELTA
R EPS
R W
R HALFW
R F
R GX(8)
R GY(8)
R GZ(8)
R XX(64)
R XY(64)
R XZ(64)
R YY(64)
R YZ(64)
R ZZ(64)
I IINT
I IEINT
M INT
M DBLE
F IEINT
GLOBALS
* These values must agree with those set in the SDIF file.
*A N 2
*A M 2
A N 12
A M 6
A DELTA 0.1
A EPS 0.01
A RM DBLE( M )
A RN DBLE( N )
A DX 2.0D+0 / RN
A DY DX
A W 0.577350269189
A HALFW 5.0D-1 * W
A DELX W / RN
A DELY DX
INDIVIDUALS
* Element type INTEGRAL
T INTEGRAL
A I INT( RI )
A J INT( RJ )
A K INT( RK )
A RI DBLE( I )
A RJ DBLE( J )
A RK DBLE( K )
A DZ DELTA / RM
A DELZ HALFW * DELTA / RM
* corners of the element.
A IINT IEINT( I, J, K, EPS, DELTA,
A+ RI, RJ, RK,
A+ DELX, DELY, DELZ, DX, DY, DZ,
A+ AXLLL, AXLLU, AXLUL, AXLUU,
A+ AXULL, AXULU, AXUUL, AXUUU,
A+ AYLLL, AYLLU, AYLUL, AYLUU,
A+ AYULL, AYULU, AYUUL, AYUUU,
A+ AZLLL, AZLLU, AZLUL, AZLUU,
A+ AZULL, AZULU, AZUUL, AZUUU,
A+ F, GX, GY, GZ, XX, XY, XZ,
A+ YY, YZ, ZZ )
F F
G AXLLL GX( 1 )
G AXULL GX( 2 )
G AXLUL GX( 3 )
G AXUUL GX( 4 )
G AXLLU GX( 5 )
G AXULU GX( 6 )
G AXLUU GX( 7 )
G AXUUU GX( 8 )
G AYLLL GY( 1 )
G AYULL GY( 2 )
G AYLUL GY( 3 )
G AYUUL GY( 4 )
G AYLLU GY( 5 )
G AYULU GY( 6 )
G AYLUU GY( 7 )
G AYUUU GY( 8 )
G AZLLL GZ( 1 )
G AZULL GZ( 2 )
G AZLUL GZ( 3 )
G AZUUL GZ( 4 )
G AZLLU GZ( 5 )
G AZULU GZ( 6 )
G AZLUU GZ( 7 )
G AZUUU GZ( 8 )
H AXLLL AXLLL XX( 1 )
H AXLLL AXULL XX( 9 )
H AXULL AXULL XX( 10 )
H AXLLL AXLUL XX( 17 )
H AXULL AXLUL XX( 18 )
H AXLUL AXLUL XX( 19 )
H AXLLL AXUUL XX( 25 )
H AXULL AXUUL XX( 26 )
H AXLUL AXUUL XX( 27 )
H AXUUL AXUUL XX( 28 )
H AXLLL AXLLU XX( 33 )
H AXULL AXLLU XX( 34 )
H AXLUL AXLLU XX( 35 )
H AXUUL AXLLU XX( 36 )
H AXLLU AXLLU XX( 37 )
H AXLLL AXULU XX( 41 )
H AXULL AXULU XX( 42 )
H AXLUL AXULU XX( 43 )
H AXUUL AXULU XX( 44 )
H AXLLU AXULU XX( 45 )
H AXULU AXULU XX( 46 )
H AXLLL AXLUU XX( 49 )
H AXULL AXLUU XX( 50 )
H AXLUL AXLUU XX( 51 )
H AXUUL AXLUU XX( 52 )
H AXLLU AXLUU XX( 53 )
H AXULU AXLUU XX( 54 )
H AXLUU AXLUU XX( 55 )
H AXLLL AXUUU XX( 57 )
H AXULL AXUUU XX( 58 )
H AXLUL AXUUU XX( 59 )
H AXUUL AXUUU XX( 60 )
H AXLLU AXUUU XX( 61 )
H AXULU AXUUU XX( 62 )
H AXLUU AXUUU XX( 63 )
H AXUUU AXUUU XX( 64 )
H AXLLL AYLLL XY( 1 )
H AXULL AYLLL XY( 2 )
H AXLUL AYLLL XY( 3 )
H AXUUL AYLLL XY( 4 )
H AXLLU AYLLL XY( 5 )
H AXULU AYLLL XY( 6 )
H AXLUU AYLLL XY( 7 )
H AXUUU AYLLL XY( 8 )
H AXLLL AYULL XY( 9 )
H AXULL AYULL XY( 10 )
H AXLUL AYULL XY( 11 )
H AXUUL AYULL XY( 12 )
H AXLLU AYULL XY( 13 )
H AXULU AYULL XY( 14 )
H AXLUU AYULL XY( 15 )
H AXUUU AYULL XY( 16 )
H AXLLL AYLUL XY( 17 )
H AXULL AYLUL XY( 18 )
H AXLUL AYLUL XY( 19 )
H AXUUL AYLUL XY( 20 )
H AXLLU AYLUL XY( 21 )
H AXULU AYLUL XY( 22 )
H AXLUU AYLUL XY( 23 )
H AXUUU AYLUL XY( 24 )
H AXLLL AYUUL XY( 25 )
H AXULL AYUUL XY( 26 )
H AXLUL AYUUL XY( 27 )
H AXUUL AYUUL XY( 28 )
H AXLLU AYUUL XY( 29 )
H AXULU AYUUL XY( 30 )
H AXLUU AYUUL XY( 31 )
H AXUUU AYUUL XY( 32 )
H AXLLL AYLLU XY( 33 )
H AXULL AYLLU XY( 34 )
H AXLUL AYLLU XY( 35 )
H AXUUL AYLLU XY( 36 )
H AXLLU AYLLU XY( 37 )
H AXULU AYLLU XY( 38 )
H AXLUU AYLLU XY( 39 )
H AXUUU AYLLU XY( 40 )
H AXLLL AYULU XY( 41 )
H AXULL AYULU XY( 42 )
H AXLUL AYULU XY( 43 )
H AXUUL AYULU XY( 44 )
H AXLLU AYULU XY( 45 )
H AXULU AYULU XY( 46 )
H AXLUU AYULU XY( 47 )
H AXUUU AYULU XY( 48 )
H AXLLL AYLUU XY( 49 )
H AXULL AYLUU XY( 50 )
H AXLUL AYLUU XY( 51 )
H AXUUL AYLUU XY( 52 )
H AXLLU AYLUU XY( 53 )
H AXULU AYLUU XY( 54 )
H AXLUU AYLUU XY( 55 )
H AXUUU AYLUU XY( 56 )
H AXLLL AYUUU XY( 57 )
H AXULL AYUUU XY( 58 )
H AXLUL AYUUU XY( 59 )
H AXUUL AYUUU XY( 60 )
H AXLLU AYUUU XY( 61 )
H AXULU AYUUU XY( 62 )
H AXLUU AYUUU XY( 63 )
H AXUUU AYUUU XY( 64 )
H AYLLL AYLLL YY( 1 )
H AYLLL AYULL YY( 9 )
H AYULL AYULL YY( 10 )
H AYLLL AYLUL YY( 17 )
H AYULL AYLUL YY( 18 )
H AYLUL AYLUL YY( 19 )
H AYLLL AYUUL YY( 25 )
H AYULL AYUUL YY( 26 )
H AYLUL AYUUL YY( 27 )
H AYUUL AYUUL YY( 28 )
H AYLLL AYLLU YY( 33 )
H AYULL AYLLU YY( 34 )
H AYLUL AYLLU YY( 35 )
H AYUUL AYLLU YY( 36 )
H AYLLU AYLLU YY( 37 )
H AYLLL AYULU YY( 41 )
H AYULL AYULU YY( 42 )
H AYLUL AYULU YY( 43 )
H AYUUL AYULU YY( 44 )
H AYLLU AYULU YY( 45 )
H AYULU AYULU YY( 46 )
H AYLLL AYLUU YY( 49 )
H AYULL AYLUU YY( 50 )
H AYLUL AYLUU YY( 51 )
H AYUUL AYLUU YY( 52 )
H AYLLU AYLUU YY( 53 )
H AYULU AYLUU YY( 54 )
H AYLUU AYLUU YY( 55 )
H AYLLL AYUUU YY( 57 )
H AYULL AYUUU YY( 58 )
H AYLUL AYUUU YY( 59 )
H AYUUL AYUUU YY( 60 )
H AYLLU AYUUU YY( 61 )
H AYULU AYUUU YY( 62 )
H AYLUU AYUUU YY( 63 )
H AYUUU AYUUU YY( 64 )
H AXLLL AZLLL XZ( 1 )
H AXULL AZLLL XZ( 2 )
H AXLUL AZLLL XZ( 3 )
H AXUUL AZLLL XZ( 4 )
H AXLLU AZLLL XZ( 5 )
H AXULU AZLLL XZ( 6 )
H AXLUU AZLLL XZ( 7 )
H AXUUU AZLLL XZ( 8 )
H AXLLL AZULL XZ( 9 )
H AXULL AZULL XZ( 10 )
H AXLUL AZULL XZ( 11 )
H AXUUL AZULL XZ( 12 )
H AXLLU AZULL XZ( 13 )
H AXULU AZULL XZ( 14 )
H AXLUU AZULL XZ( 15 )
H AXUUU AZULL XZ( 16 )
H AXLLL AZLUL XZ( 17 )
H AXULL AZLUL XZ( 18 )
H AXLUL AZLUL XZ( 19 )
H AXUUL AZLUL XZ( 20 )
H AXLLU AZLUL XZ( 21 )
H AXULU AZLUL XZ( 22 )
H AXLUU AZLUL XZ( 23 )
H AXUUU AZLUL XZ( 24 )
H AXLLL AZUUL XZ( 25 )
H AXULL AZUUL XZ( 26 )
H AXLUL AZUUL XZ( 27 )
H AXUUL AZUUL XZ( 28 )
H AXLLU AZUUL XZ( 29 )
H AXULU AZUUL XZ( 30 )
H AXLUU AZUUL XZ( 31 )
H AXUUU AZUUL XZ( 32 )
H AXLLL AZLLU XZ( 33 )
H AXULL AZLLU XZ( 34 )
H AXLUL AZLLU XZ( 35 )
H AXUUL AZLLU XZ( 36 )
H AXLLU AZLLU XZ( 37 )
H AXULU AZLLU XZ( 38 )
H AXLUU AZLLU XZ( 39 )
H AXUUU AZLLU XZ( 40 )
H AXLLL AZULU XZ( 41 )
H AXULL AZULU XZ( 42 )
H AXLUL AZULU XZ( 43 )
H AXUUL AZULU XZ( 44 )
H AXLLU AZULU XZ( 45 )
H AXULU AZULU XZ( 46 )
H AXLUU AZULU XZ( 47 )
H AXUUU AZULU XZ( 48 )
H AXLLL AZLUU XZ( 49 )
H AXULL AZLUU XZ( 50 )
H AXLUL AZLUU XZ( 51 )
H AXUUL AZLUU XZ( 52 )
H AXLLU AZLUU XZ( 53 )
H AXULU AZLUU XZ( 54 )
H AXLUU AZLUU XZ( 55 )
H AXUUU AZLUU XZ( 56 )
H AXLLL AZUUU XZ( 57 )
H AXULL AZUUU XZ( 58 )
H AXLUL AZUUU XZ( 59 )
H AXUUL AZUUU XZ( 60 )
H AXLLU AZUUU XZ( 61 )
H AXULU AZUUU XZ( 62 )
H AXLUU AZUUU XZ( 63 )
H AXUUU AZUUU XZ( 64 )
H AYLLL AZLLL YZ( 1 )
H AYULL AZLLL YZ( 2 )
H AYLUL AZLLL YZ( 3 )
H AYUUL AZLLL YZ( 4 )
H AYLLU AZLLL YZ( 5 )
H AYULU AZLLL YZ( 6 )
H AYLUU AZLLL YZ( 7 )
H AYUUU AZLLL YZ( 8 )
H AYLLL AZULL YZ( 9 )
H AYULL AZULL YZ( 10 )
H AYLUL AZULL YZ( 11 )
H AYUUL AZULL YZ( 12 )
H AYLLU AZULL YZ( 13 )
H AYULU AZULL YZ( 14 )
H AYLUU AZULL YZ( 15 )
H AYUUU AZULL YZ( 16 )
H AYLLL AZLUL YZ( 17 )
H AYULL AZLUL YZ( 18 )
H AYLUL AZLUL YZ( 19 )
H AYUUL AZLUL YZ( 20 )
H AYLLU AZLUL YZ( 21 )
H AYULU AZLUL YZ( 22 )
H AYLUU AZLUL YZ( 23 )
H AYUUU AZLUL YZ( 24 )
H AYLLL AZUUL YZ( 25 )
H AYULL AZUUL YZ( 26 )
H AYLUL AZUUL YZ( 27 )
H AYUUL AZUUL YZ( 28 )
H AYLLU AZUUL YZ( 29 )
H AYULU AZUUL YZ( 30 )
H AYLUU AZUUL YZ( 31 )
H AYUUU AZUUL YZ( 32 )
H AYLLL AZLLU YZ( 33 )
H AYULL AZLLU YZ( 34 )
H AYLUL AZLLU YZ( 35 )
H AYUUL AZLLU YZ( 36 )
H AYLLU AZLLU YZ( 37 )
H AYULU AZLLU YZ( 38 )
H AYLUU AZLLU YZ( 39 )
H AYUUU AZLLU YZ( 40 )
H AYLLL AZULU YZ( 41 )
H AYULL AZULU YZ( 42 )
H AYLUL AZULU YZ( 43 )
H AYUUL AZULU YZ( 44 )
H AYLLU AZULU YZ( 45 )
H AYULU AZULU YZ( 46 )
H AYLUU AZULU YZ( 47 )
H AYUUU AZULU YZ( 48 )
H AYLLL AZLUU YZ( 49 )
H AYULL AZLUU YZ( 50 )
H AYLUL AZLUU YZ( 51 )
H AYUUL AZLUU YZ( 52 )
H AYLLU AZLUU YZ( 53 )
H AYULU AZLUU YZ( 54 )
H AYLUU AZLUU YZ( 55 )
H AYUUU AZLUU YZ( 56 )
H AYLLL AZUUU YZ( 57 )
H AYULL AZUUU YZ( 58 )
H AYLUL AZUUU YZ( 59 )
H AYUUL AZUUU YZ( 60 )
H AYLLU AZUUU YZ( 61 )
H AYULU AZUUU YZ( 62 )
H AYLUU AZUUU YZ( 63 )
H AYUUU AZUUU YZ( 64 )
H AZLLL AZLLL ZZ( 1 )
H AZLLL AZULL ZZ( 9 )
H AZULL AZULL ZZ( 10 )
H AZLLL AZLUL ZZ( 17 )
H AZULL AZLUL ZZ( 18 )
H AZLUL AZLUL ZZ( 19 )
H AZLLL AZUUL ZZ( 25 )
H AZULL AZUUL ZZ( 26 )
H AZLUL AZUUL ZZ( 27 )
H AZUUL AZUUL ZZ( 28 )
H AZLLL AZLLU ZZ( 33 )
H AZULL AZLLU ZZ( 34 )
H AZLUL AZLLU ZZ( 35 )
H AZUUL AZLLU ZZ( 36 )
H AZLLU AZLLU ZZ( 37 )
H AZLLL AZULU ZZ( 41 )
H AZULL AZULU ZZ( 42 )
H AZLUL AZULU ZZ( 43 )
H AZUUL AZULU ZZ( 44 )
H AZLLU AZULU ZZ( 45 )
H AZULU AZULU ZZ( 46 )
H AZLLL AZLUU ZZ( 49 )
H AZULL AZLUU ZZ( 50 )
H AZLUL AZLUU ZZ( 51 )
H AZUUL AZLUU ZZ( 52 )
H AZLLU AZLUU ZZ( 53 )
H AZULU AZLUU ZZ( 54 )
H AZLUU AZLUU ZZ( 55 )
H AZLLL AZUUU ZZ( 57 )
H AZULL AZUUU ZZ( 58 )
H AZLUL AZUUU ZZ( 59 )
H AZUUL AZUUU ZZ( 60 )
H AZLLU AZUUU ZZ( 61 )
H AZULU AZUUU ZZ( 62 )
H AZLUU AZUUU ZZ( 63 )
H AZUUU AZUUU ZZ( 64 )
ENDATA
INTEGER FUNCTION IEINT( I, J, K, EPS, DELTA, RI, RJ, RK,
* DELX, DELY, DELZ, DX, DY, DZ,
* AXLLL, AXLLU, AXLUL, AXLUU,
* AXULL, AXULU, AXUUL, AXUUU,
* AYLLL, AYLLU, AYLUL, AYLUU,
* AYULL, AYULU, AYUUL, AYUUU,
* AZLLL, AZLLU, AZLUL, AZLUU,
* AZULL, AZULU, AZUUL, AZUUU,
* INTF, INTGX, INTGY, INTGZ,
* INTHXX, INTHXY, INTHXZ,
* INTHYY, INTHYZ, INTHZZ )
INTEGER I, J, K
DOUBLE PRECISION EPS, DELTA, RI, RJ, RK,
* DELX, DELY, DELZ, DX, DY, DZ,
* AXLLL, AXLLU, AXLUL, AXLUU,
* AXULL, AXULU, AXUUL, AXUUU,
* AYLLL, AYLLU, AYLUL, AYLUU,
* AYULL, AYULU, AYUUL, AYUUU,
* AZLLL, AZLLU, AZLUL, AZLUU,
* AZULL, AZULU, AZUUL, AZUUU,
* INTF, INTGX( 8 ), INTGY( 8 ), INTGZ( 8 ),
* INTHXX( 64 ), INTHXY( 64 ), INTHXZ( 64 ),
* INTHYY( 64 ), INTHYZ( 64 ), INTHZZ( 64 )
INTEGER M, N, MM1, NM1, NTOT
C
C The values of M and N must agree with those set in the SDIF file.
C
C PARAMETER ( M = 2, N = 2 )
PARAMETER ( M = 6, N = 12 )
PARAMETER ( MM1 = M - 1, NM1 = N - 1 )
PARAMETER ( NTOT = 8 * N * N * M )
DOUBLE PRECISION G( 24, 8, 0: NM1, 0: NM1, 0: MM1 )
LOGICAL EV( 8, 0: NM1, 0: NM1, 0: MM1 )
INTEGER I1, J1, K1, I2, J2, K2, L1, LL, L2, L3
DOUBLE PRECISION XL, XU, YL, YU, ZL, ZU, XMID, YMID, ZMID,
* ONE, HALF, SXL, SXU, SYL, SYU, SZL, SZU,
* SUMX, SUMY, SUMZ, ZERO, X, Y, Z,
* SUMXX, SUMXY, SUMXZ, SUMYY, SUMYZ, SUMZZ
DOUBLE PRECISION P( 8 )
DOUBLE PRECISION DPX( 2, 2, 2, 8 )
DOUBLE PRECISION DPY( 2, 2, 2, 8 )
DOUBLE PRECISION DPZ( 2, 2, 2, 8 )
DOUBLE PRECISION DPXX( 2, 2, 2, 2, 2, 2, 8 )
DOUBLE PRECISION DPXY( 2, 2, 2, 2, 2, 2, 8 )
DOUBLE PRECISION DPXZ( 2, 2, 2, 2, 2, 2, 8 )
DOUBLE PRECISION DPYX( 2, 2, 2, 2, 2, 2, 8 )
DOUBLE PRECISION DPYY( 2, 2, 2, 2, 2, 2, 8 )
DOUBLE PRECISION DPYZ( 2, 2, 2, 2, 2, 2, 8 )
DOUBLE PRECISION DPZX( 2, 2, 2, 2, 2, 2, 8 )
DOUBLE PRECISION DPZY( 2, 2, 2, 2, 2, 2, 8 )
DOUBLE PRECISION DPZZ( 2, 2, 2, 2, 2, 2, 8 )
PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0, HALF = 5.0D-1 )
INTEGER IPHI
EXTERNAL IPHI
DATA EV / NTOT * .TRUE. /
SAVE
C
C Calculate the vertices of the 3-D rectangular box element.
C
XL = - ONE + DX * DBLE( I )
YL = - ONE + DY * DBLE( J )
ZL = DZ * DBLE( K )
XU = XL + DX
YU = YL + DY
ZU = ZL + DZ
XMID = HALF * ( XL + XU )
YMID = HALF * ( YL + YU )
ZMID = HALF * ( ZL + ZU )
SXL = XL / DX
SYL = YL / DY
SZL = ZL / DZ
SXU = - XU / DX
SYU = - YU / DY
SZU = - ZU / DZ
C
C Calculate the 8 contributions to the Gaussian Quadrature formula.
C
L1 = 0
DO 180 K1 = 1, 2
IF ( K1 .EQ. 1 ) THEN
Z = ZMID - DELZ
ELSE
Z = ZMID + DELZ
END IF
DO 170 J1 = 1, 2
IF ( K1 .EQ. 1 ) THEN
Y = YMID - DELY
ELSE
Y = YMID + DELY
END IF
DO 160 I1 = 1, 2
IF ( K1 .EQ. 1 ) THEN
X = XMID - DELX
ELSE
X = XMID + DELX
END IF
L1 = L1 + 1
IEINT = IPHI( X, Y, Z, EPS, DELTA, XL, XU, YL, YU, ZL, ZU,
* DX, DY, DZ, SXL, SXU, SYL, SYU, SZL, SZU,
* AXLLL, AXLLU, AXLUL, AXLUU,
* AXULL, AXULU, AXUUL, AXUUU,
* AYLLL, AYLLU, AYLUL, AYLUU,
* AYULL, AYULU, AYUUL, AYUUU,
* AZLLL, AZLLU, AZLUL, AZLUU,
* AZULL, AZULU, AZUUL, AZUUU,
* G( 1, L1, I, J, K ), EV( L1, I, J, K ),
* P( L1 ), DPX( 1, 1, 1, L1 ),
* DPY( 1, 1, 1, L1 ), DPZ( 1, 1, 1, L1 ),
* DPXX( 1, 1, 1, 1, 1, 1, L1 ),
* DPXY( 1, 1, 1, 1, 1, 1, L1 ),
* DPXZ( 1, 1, 1, 1, 1, 1, L1 ),
* DPYY( 1, 1, 1, 1, 1, 1, L1 ),
* DPYZ( 1, 1, 1, 1, 1, 1, L1 ),
* DPZZ( 1, 1, 1, 1, 1, 1, L1 ) )
160 CONTINUE
170 CONTINUE
180 CONTINUE
C
C Calculate the function and gradient values from the Gauss formula.
C
L1 = 0
L2 = 0
INTF = ZERO
DO 280 K1 = 1, 2
DO 270 J1 = 1, 2
DO 260 I1 = 1, 2
L1 = L1 + 1
SUMX = ZERO
SUMY = ZERO
SUMZ = ZERO
DO 210 LL = 1, 8
SUMX = SUMX + DPX( I1, J1, K1, LL )
SUMY = SUMY + DPY( I1, J1, K1, LL )
SUMZ = SUMZ + DPZ( I1, J1, K1, LL )
210 CONTINUE
INTF = INTF + P( L1 )
INTGX( L1 ) = SUMX
INTGY( L1 ) = SUMY
INTGZ( L1 ) = SUMZ
L3 = 0
DO 250 K2 = 1, 2
DO 240 J2 = 1, 2
DO 230 I2 = 1, 2
L2 = L2 + 1
L3 = L3 + 1
SUMXY = ZERO
SUMXZ = ZERO
SUMYZ = ZERO
DO 220 LL = 1, 8
SUMXY = SUMXY + DPXY( I2, J2, K2, I1, J1, K1, LL )
SUMXZ = SUMXZ + DPXZ( I2, J2, K2, I1, J1, K1, LL )
SUMYZ = SUMYZ + DPYZ( I2, J2, K2, I1, J1, K1, LL )
220 CONTINUE
INTHXY( L2 ) = SUMXY
INTHXZ( L2 ) = SUMXZ
INTHYZ( L2 ) = SUMYZ
IF ( L3 .LE. L1 ) THEN
SUMXX = ZERO
SUMYY = ZERO
SUMZZ = ZERO
DO 225 LL = 1, 8
SUMXX = SUMXX + DPXX( I2, J2, K2, I1, J1, K1, LL )
SUMYY = SUMYY + DPYY( I2, J2, K2, I1, J1, K1, LL )
SUMZZ = SUMZZ + DPZZ( I2, J2, K2, I1, J1, K1, LL )
225 CONTINUE
INTHXX( L2 ) = SUMXX
INTHYY( L2 ) = SUMYY
INTHZZ( L2 ) = SUMZZ
END IF
230 CONTINUE
240 CONTINUE
250 CONTINUE
260 CONTINUE
270 CONTINUE
280 CONTINUE
RETURN
END
INTEGER FUNCTION IPHI( X, Y, Z, EPS, DELTA,
* XL, XU, YL, YU, ZL, ZU,
* DX, DY, DZ, SXL, SXU, SYL, SYU, SZL, SZU,
* AXLLL, AXLLU, AXLUL, AXLUU,
* AXULL, AXULU, AXUUL, AXUUU,
* AYLLL, AYLLU, AYLUL, AYLUU,
* AYULL, AYULU, AYUUL, AYUUU,
* AZLLL, AZLLU, AZLUL, AZLUU,
* AZULL, AZULU, AZUUL, AZUUU,
* G, EV, P, DPX, DPY, DPZ,
* DPXX, DPXY, DPXZ, DPYY, DPYZ, DPZZ )
DOUBLE PRECISION X, Y, Z, EPS, DELTA,
* DX, DY, DZ, SXL, SXU, SYL, SYU, SZL, SZU,
* AXLLL, AXLLU, AXLUL, AXLUU,
* AXULL, AXULU, AXUUL, AXUUU,
* AYLLL, AYLLU, AYLUL, AYLUU,
* AYULL, AYULU, AYUUL, AYUUU,
* AZLLL, AZLLU, AZLUL, AZLUU,
* AZULL, AZULU, AZUUL, AZUUU, P
DOUBLE PRECISION G( 2, 2, 2, 3 ), DPX( 2, 2, 2 )
DOUBLE PRECISION DPY( 2, 2, 2 ) , DPZ( 2, 2, 2 )
DOUBLE PRECISION DPXX( 2, 2, 2, 2, 2, 2 )
DOUBLE PRECISION DPXY( 2, 2, 2, 2, 2, 2 )
DOUBLE PRECISION DPXZ( 2, 2, 2, 2, 2, 2 )
DOUBLE PRECISION DPYY( 2, 2, 2, 2, 2, 2 )
DOUBLE PRECISION DPYZ( 2, 2, 2, 2, 2, 2 )
DOUBLE PRECISION DPZZ( 2, 2, 2, 2, 2, 2 )
LOGICAL EV
C
C Calculate the pointwise energy of an isotropic nonlinear elastic
C material within a 3-D rectangular finite element.
C
DOUBLE PRECISION FXX, FXY, FYY, FXZ, FYZ, FZZ
DOUBLE PRECISION FLLL, FLLU, FLUL, FLUU, FULL, FULU, FUUL, FUUU
DOUBLE PRECISION DU( 3, 3 )
C DOUBLE PRECISION DFXX( 2, 2, 2, 3 ), DFXY( 2, 2, 2, 3 )
C DOUBLE PRECISION DFYY( 2, 2, 2, 3 ), DFXZ( 2, 2, 2, 3 )
C DOUBLE PRECISION DFYZ( 2, 2, 2, 3 ), DFZZ( 2, 2, 2, 3 )
DOUBLE PRECISION DIX( 2, 2, 2, 3 )
DOUBLE PRECISION DIY( 2, 2, 2, 3 )
DOUBLE PRECISION DIZ( 2, 2, 2, 3 )
DOUBLE PRECISION DIXX( 2, 2, 2, 2, 2, 2, 3 )
DOUBLE PRECISION DIXY( 2, 2, 2, 2, 2, 2, 3 )
DOUBLE PRECISION DIXZ( 2, 2, 2, 2, 2, 2, 3 )
DOUBLE PRECISION DIYY( 2, 2, 2, 2, 2, 2, 3 )
DOUBLE PRECISION DIYZ( 2, 2, 2, 2, 2, 2, 3 )
DOUBLE PRECISION DIZZ( 2, 2, 2, 2, 2, 2, 3 )
DOUBLE PRECISION XL, XU, YL, YU, ZL, ZU, V, V2, BV2, CV2
DOUBLE PRECISION GTGAX( 2, 2, 2 ), GTGAY( 2, 2, 2 )
DOUBLE PRECISION GTGAZ( 2, 2, 2 ), INV1 , INV2 , INV3, DGTG
DOUBLE PRECISION GTGAX1, GTGAY1, GTGAZ1, GTGAX2, GTGAY2, GTGAZ2
DOUBLE PRECISION CV21, CV22, CV22X, CV22Y, CV22Z
DOUBLE PRECISION FXXYY, FXXZZ, FYYZZ, FXYYZ, FXZYZ, FXYXZ
DOUBLE PRECISION FXXPYY, FXXPZZ, FYYPZZ
DOUBLE PRECISION FGXXY, FGXXZ, FGXYX, FGXYY, FGXYZ, FGXZX, FGXZY,
* FGXZZ, FGYYX, FGYYZ, FGYZX, FGYZY, FGYZZ,
* FGZZX, FGZZY, HGTGAX, HGTGAY, HGTGAZ
INTEGER I, J, K, IX, IY, IZ, UX, UY, UZ
INTEGER I1, J1, K1, L1, I2, J2, K2, L2
PARAMETER ( IX = 1, IY = 2, IZ = 3, UX = 1, UY = 2, UZ = 3 )
DOUBLE PRECISION ZERO, TWO, HALF
PARAMETER ( ZERO = 0.0D+0, TWO = 2.0D+0, HALF = 5.0D-1 )
INTRINSIC DBLE, LOG
DOUBLE PRECISION PSI
EXTERNAL PSI
DOUBLE PRECISION MDX, MDY, MDZ
MDX = - DX
MDY = - DY
MDZ = - DZ
C
C The function u is represented as the sum of eight trilinear
C shape functions, one for each vertex of the 3-D rectangular box.
C
IF ( EV ) THEN
C
C Evalutate the shape function at vertex LLL
C
FLLL = PSI( X, Y, Z, XL, YL, ZL, XU, YU, ZU, DX, DY, DZ,
* SXL, SYL, SZL, G( 1, 1, 1, IX ),
* G( 1, 1, 1, IY ), G( 1, 1, 1, IZ ) )
C
C Evalutate the shape function at vertex LLU
C
FLLU = PSI( X, Y, Z, XL, YL, ZU, XU, YU, ZL, DX, DY, MDZ,
* SXL, SYL, SZU, G( 1, 1, 2, IX ),
* G( 1, 1, 2, IY ), G( 1, 1, 2, IZ ) )
C
C Evalutate the shape function at vertex LUL
C
FLUL = PSI( X, Y, Z, XL, YU, ZL, XU, YL, ZU, DX, MDY, DZ,
* SXL, SYU, SZL, G( 1, 2, 1, IX ),
* G( 1, 2, 1, IY ), G( 1, 2, 1, IZ ) )
C
C Evalutate the shape function at vertex LUU
C
FLUU = PSI( X, Y, Z, XL, YU, ZU, XU, YL, ZL, DX, MDY, MDZ,
* SXL, SYU, SZU, G( 1, 2, 2, IX ),
* G( 1, 2, 2, IY ), G( 1, 2, 2, IZ ) )
C
C Evalutate the shape function at vertex ULL
C
FULL = PSI( X, Y, Z, XU, YL, ZL, XL, YU, ZU, MDX, DY, DZ,
* SXU, SYL, SZL, G( 2, 1, 1, IX ),
* G( 2, 1, 1, IY ), G( 2, 1, 1, IZ ) )
C
C Evalutate the shape function at vertex ULU
C
FULU = PSI( X, Y, Z, XU, YL, ZU, XL, YU, ZL, MDX, DY, MDZ,
* SXU, SYL, SZU, G( 2, 1, 2, IX ),
* G( 2, 1, 2, IY ), G( 2, 1, 2, IZ ) )
C
C Evalutate the shape function at vertex UUL
C
FUUL = PSI( X, Y, Z, XU, YU, ZL, XL, YL, ZU, MDX, MDY, DZ,
* SXU, SYU, SZL, G( 2, 2, 1, IX ),
* G( 2, 2, 1, IY ), G( 2, 2, 1, IZ ) )
C
C Evalutate the shape function at vertex UUU
C
FUUU = PSI( X, Y, Z, XU, YU, ZU, XL, YL, ZL, MDX, MDY, MDZ,
* SXU, SYU, SZU, G( 2, 2, 2, IX ),
* G( 2, 2, 2, IY ), G( 2, 2, 2, IZ ) )
C
C Calculate the inner product of all the components.
C
EV = .FALSE.
END IF
C
C Calculate the components of the matrix grad u.
C
DO 10 I = 1, 3
DU( UX, I ) = AXLLL * G( 1, 1, 1, I ) + AXLLU * G( 1, 1, 2, I )
* + AXLUL * G( 1, 2, 1, I ) + AXLUU * G( 1, 2, 2, I )
* + AXULL * G( 2, 1, 1, I ) + AXULU * G( 2, 1, 2, I )
* + AXUUL * G( 2, 2, 1, I ) + AXUUU * G( 2, 2, 2, I )
DU( UY, I ) = AYLLL * G( 1, 1, 1, I ) + AYLLU * G( 1, 1, 2, I )
* + AYLUL * G( 1, 2, 1, I ) + AYLUU * G( 1, 2, 2, I )
* + AYULL * G( 2, 1, 1, I ) + AYULU * G( 2, 1, 2, I )
* + AYUUL * G( 2, 2, 1, I ) + AYUUU * G( 2, 2, 2, I )
DU( UZ, I ) = AZLLL * G( 1, 1, 1, I ) + AZLLU * G( 1, 1, 2, I )
* + AZLUL * G( 1, 2, 1, I ) + AZLUU * G( 1, 2, 2, I )
* + AZULL * G( 2, 1, 1, I ) + AZULU * G( 2, 1, 2, I )
* + AZUUL * G( 2, 2, 1, I ) + AZUUU * G( 2, 2, 2, I )
10 CONTINUE
C T
C Calculate the components of F = ( grad u ) ( grad u ) .
C
FXX = DU( UX, IX ) * DU( UX, IX ) + DU( UX, IY ) * DU( UX, IY ) +
* DU( UX, IZ ) * DU( UX, IZ )
FXY = DU( UX, IX ) * DU( UY, IX ) + DU( UX, IY ) * DU( UY, IY ) +
* DU( UX, IZ ) * DU( UY, IZ )
FYY = DU( UY, IX ) * DU( UY, IX ) + DU( UY, IY ) * DU( UY, IY ) +
* DU( UY, IZ ) * DU( UY, IZ )
FXZ = DU( UX, IX ) * DU( UZ, IX ) + DU( UX, IY ) * DU( UZ, IY ) +
* DU( UX, IZ ) * DU( UZ, IZ )
FYZ = DU( UY, IX ) * DU( UZ, IX ) + DU( UY, IY ) * DU( UZ, IY ) +
* DU( UY, IZ ) * DU( UZ, IZ )
FZZ = DU( UZ, IX ) * DU( UZ, IX ) + DU( UZ, IY ) * DU( UZ, IY ) +
* DU( UZ, IZ ) * DU( UZ, IZ )
C T
C Calculate the principal invariants of ( grad u ) ( grad u ) .
C
FYYPZZ = FYY + FZZ
FXXPYY = FXX + FYY
FXXPZZ = FXX + FZZ
FXXYY = FXX * FYY - FXY * FXY
FXXZZ = FXX * FZZ - FXZ * FXZ
FYYZZ = FYY * FZZ - FYZ * FYZ
FXYYZ = FXY * FYZ - FYY * FXZ
FXZYZ = FXZ * FYZ - FZZ * FXY
FXYXZ = FXY * FXZ - FXX * FYZ
INV1 = FXXPYY + FZZ
INV2 = FXXYY + FYYZZ + FXXZZ
INV3 = FZZ * FXXYY + FXZ * FXYYZ + FYZ * FXYXZ
C
C Calculate derivatives of F for later use.
C
DO 80 K = 1, 2
DO 70 J = 1, 2
DO 60 I = 1, 2
GTGAX( I, J, K ) = TWO * ( DU( UX, IX ) * G( I, J, K, IX ) +
* DU( UX, IY ) * G( I, J, K, IY ) +
* DU( UX, IZ ) * G( I, J, K, IZ ) )
GTGAY( I, J, K ) = TWO * ( DU( UY, IX ) * G( I, J, K, IX ) +
* DU( UY, IY ) * G( I, J, K, IY ) +
* DU( UY, IZ ) * G( I, J, K, IZ ) )
GTGAZ( I, J, K ) = TWO * ( DU( UZ, IX ) * G( I, J, K, IX ) +
* DU( UZ, IY ) * G( I, J, K, IY ) +
* DU( UZ, IZ ) * G( I, J, K, IZ ) )
60 CONTINUE
70 CONTINUE
80 CONTINUE
C
C Calculate the first derivatives of INVi with respect to the
C variables x( x, x, x ).