06 April 2023 8:54:16.766 AM sandia_sgmgg_test(): Fortran90 version Test sandia_sgmgg(). TEST01: Demonstrate naive coefficient calculations. 1) Isotropic grid in 2D SPARSE_INDEX: Row 1 2 Col 1: 0 2 2: 0 3 3: 1 1 4: 1 2 5: 2 0 6: 2 1 7: 3 0 COEF: 1: -1 2: 1 3: -1 4: 1 5: -1 6: 1 7: 1 COEF Sum = 1 2) Isotropic grid in 3D SPARSE_INDEX: Row 1 2 3 Col 1: 0 1 0 2: 0 2 0 3: 0 3 0 4: 1 0 0 5: 1 1 0 6: 1 2 0 7: 2 0 0 8: 2 1 0 9: 3 0 0 10: 0 0 1 11: 0 1 1 12: 0 2 1 13: 1 0 1 14: 1 1 1 15: 2 0 1 16: 0 0 2 17: 0 1 2 18: 1 0 2 19: 0 0 3 COEF: 1: 1 2: -2 3: 1 4: 1 5: -2 6: 1 7: -2 8: 1 9: 1 10: 1 11: -2 12: 1 13: -2 14: 1 15: 1 16: -2 17: 1 18: 1 19: 1 COEF Sum = 1 3) Anisotropic grid in 2D SPARSE_INDEX: Row 1 2 Col 1: 0 2 2: 1 1 3: 1 2 4: 2 1 5: 3 0 6: 3 1 7: 4 0 8: 5 0 COEF: 1: 0 2: -1 3: 1 4: 0 5: -1 6: 1 7: 0 8: 1 COEF Sum = 1 4) Generalized grid in 2D SPARSE_INDEX: Row 1 2 Col 1: 0 0 2: 0 1 3: 0 2 4: 0 3 5: 1 0 6: 1 1 7: 2 0 8: 3 0 COEF: 1: 0 2: -1 3: 0 4: 1 5: -1 6: 1 7: 0 8: 1 COEF Sum = 1 TEST02: Demonstrate naive neighbor calculations. 1) Isotropic grid in 2D SPARSE_INDEX: Row 1 2 Col 1: 0 2 2: 0 3 3: 1 1 4: 1 2 5: 2 0 6: 2 1 7: 3 0 NEIGHBOR: Row 1 2 Col 1: 1 1 2: 0 0 3: 1 1 4: 0 0 5: 1 1 6: 0 0 7: 0 0 2) Isotropic grid in 3D SPARSE_INDEX: Row 1 2 3 Col 1: 0 1 0 2: 0 2 0 3: 0 3 0 4: 1 0 0 5: 1 1 0 6: 1 2 0 7: 2 0 0 8: 2 1 0 9: 3 0 0 10: 0 0 1 11: 0 1 1 12: 0 2 1 13: 1 0 1 14: 1 1 1 15: 2 0 1 16: 0 0 2 17: 0 1 2 18: 1 0 2 19: 0 0 3 NEIGHBOR: Row 1 2 3 Col 1: 1 1 1 2: 1 1 1 3: 0 0 0 4: 1 1 1 5: 1 1 1 6: 0 0 0 7: 1 1 1 8: 0 0 0 9: 0 0 0 10: 1 1 1 11: 1 1 1 12: 0 0 0 13: 1 1 1 14: 0 0 0 15: 0 0 0 16: 1 1 1 17: 0 0 0 18: 0 0 0 19: 0 0 0 3) Anisotropic grid in 2D SPARSE_INDEX: Row 1 2 Col 1: 0 2 2: 1 1 3: 1 2 4: 2 1 5: 3 0 6: 3 1 7: 4 0 8: 5 0 NEIGHBOR: Row 1 2 Col 1: 1 0 2: 1 1 3: 0 0 4: 1 0 5: 1 1 6: 0 0 7: 1 0 8: 0 0 4) Generalized grid in 2D SPARSE_INDEX: Row 1 2 Col 1: 0 0 2: 0 1 3: 0 2 4: 0 3 5: 1 0 6: 1 1 7: 2 0 8: 3 0 NEIGHBOR: Row 1 2 Col 1: 1 1 2: 1 1 3: 0 1 4: 0 0 5: 1 1 6: 0 0 7: 1 0 8: 0 0 TEST03: Set up examples of the GG (Gerstner-Griebel) data structure for generalized sparse grids. 1) Isotropic grid in 2D Before Heap: I A G 1 4 3.00000 2 7 3.20000 3 9 3.30000 4 10 3.10000 After Heap: I A G 1 9 3.30000 2 7 3.20000 3 4 3.00000 4 10 3.10000 GG DATA STRUCTURE: ND = 2 NI = 10 NO = 6 NA = 4 Indices: I A/O G(I) Index values 1 o 0.100000 0 0 2 o 1.10000 0 1 3 o 2.20000 0 2 4 a 3.00000 0 3 5 o 1.00000 1 0 6 o 2.10000 1 1 7 a 3.20000 1 2 8 o 2.00000 2 0 9 a 3.30000 2 1 10 a 3.10000 3 0 Backward neighbors: 1 -1 -1 2 -1 1 3 -1 2 4 -1 3 5 1 -1 6 2 5 7 3 6 8 5 -1 9 6 8 10 8 -1 Forward neighbors: 1 5 2 2 6 3 3 7 4 4 -1 -1 5 8 6 6 9 7 7 -1 -1 8 10 9 9 -1 -1 10 -1 -1 Active Heap: I A G 1 9 3.30000 2 7 3.20000 3 4 3.00000 4 10 3.10000 Maximum error indicator G( 9) = 3.30000 Extension in direction D1 = 1 is legal NB = 8 INDX_NAB = 10 GG DATA STRUCTURE: ND = 2 NI = 11 NO = 7 NA = 4 Indices: I A/O G(I) Index values 1 o 0.100000 0 0 2 o 1.10000 0 1 3 o 2.20000 0 2 4 a 3.00000 0 3 5 o 1.00000 1 0 6 o 2.10000 1 1 7 a 3.20000 1 2 8 o 2.00000 2 0 9 o 3.30000 2 1 10 a 3.10000 3 0 11 a 0.218418 3 1 Backward neighbors: 1 -1 -1 2 -1 1 3 -1 2 4 -1 3 5 1 -1 6 2 5 7 3 6 8 5 -1 9 6 8 10 8 -1 11 9 10 Forward neighbors: 1 5 2 2 6 3 3 7 4 4 -1 -1 5 8 6 6 9 7 7 -1 -1 8 10 9 9 11 -1 10 -1 11 11 -1 -1 Active Heap: I A G 1 7 3.20000 2 10 3.10000 3 4 3.00000 4 11 0.218418 Extension in direction D1 = 2 is legal NB = 6 INDX_NAB = 7 GG DATA STRUCTURE: ND = 2 NI = 12 NO = 7 NA = 5 Indices: I A/O G(I) Index values 1 o 0.100000 0 0 2 o 1.10000 0 1 3 o 2.20000 0 2 4 a 3.00000 0 3 5 o 1.00000 1 0 6 o 2.10000 1 1 7 a 3.20000 1 2 8 o 2.00000 2 0 9 o 3.30000 2 1 10 a 3.10000 3 0 11 a 0.218418 3 1 12 a 0.956318 2 2 Backward neighbors: 1 -1 -1 2 -1 1 3 -1 2 4 -1 3 5 1 -1 6 2 5 7 3 6 8 5 -1 9 6 8 10 8 -1 11 9 10 12 7 9 Forward neighbors: 1 5 2 2 6 3 3 7 4 4 -1 -1 5 8 6 6 9 7 7 12 -1 8 10 9 9 11 12 10 -1 11 11 -1 -1 12 -1 -1 Active Heap: I A G 1 7 3.20000 2 10 3.10000 3 4 3.00000 4 11 0.218418 5 12 0.956318 TEST04: Simulate incremental coefficient calculations. Generalized grid in 2D: SPARSE_INDEX: Row 1 2 Col 1: 0 0 COEF: 1: 1 COEF Sum = 1 SPARSE_INDEX: Row 1 2 Col 1: 0 0 2: 0 1 COEF: 1: 0 2: 1 COEF Sum = 1 SPARSE_INDEX: Row 1 2 Col 1: 0 0 2: 0 1 3: 0 2 COEF: 1: 0 2: 0 3: 1 COEF Sum = 1 SPARSE_INDEX: Row 1 2 Col 1: 0 0 2: 0 1 3: 0 2 4: 0 3 COEF: 1: 0 2: 0 3: 0 4: 1 COEF Sum = 1 SPARSE_INDEX: Row 1 2 Col 1: 0 0 2: 0 1 3: 0 2 4: 0 3 5: 1 0 COEF: 1: -1 2: 0 3: 0 4: 1 5: 1 COEF Sum = 1 SPARSE_INDEX: Row 1 2 Col 1: 0 0 2: 0 1 3: 0 2 4: 0 3 5: 1 0 6: 1 1 COEF: 1: 0 2: -1 3: 0 4: 1 5: 0 6: 1 COEF Sum = 1 SPARSE_INDEX: Row 1 2 Col 1: 0 0 2: 0 1 3: 0 2 4: 0 3 5: 1 0 6: 1 1 7: 2 0 COEF: 1: 0 2: -1 3: 0 4: 1 5: -1 6: 1 7: 1 COEF Sum = 1 SPARSE_INDEX: Row 1 2 Col 1: 0 0 2: 0 1 3: 0 2 4: 0 3 5: 1 0 6: 1 1 7: 2 0 8: 3 0 COEF: 1: 0 2: -1 3: 0 4: 1 5: -1 6: 1 7: 0 8: 1 COEF Sum = 1 TEST05: Predict new coefficients given candidate index. Spatial dimension M = 2 Number of items in active set N1 = 5 Index Coef Indices 1 1 0 2 2 1 1 1 3 1 2 0 4 -1 0 1 5 -1 1 0 Candidate: 1 2 Index Coef Coef Old New 1 1 0 2 1 0 3 1 1 4 -1 0 5 -1 -1 6 1 -- ---- ---- Sum: 1 1 TEST06: Predict new coefficients given candidate index. Spatial dimension M = 2 Number of items in active set N1 = 5 Index Coef Indices 1 1 2 0 2 1 1 1 3 1 0 2 4 -1 1 0 5 -1 0 1 Candidate: 3 0 Index Coef Coef Old New 1 1 0 2 1 1 3 1 1 4 -1 -1 5 -1 -1 6 1 -- ---- ---- Sum: 1 1 sandia_sgmgg_test(): Normal end of execution. 06 April 2023 8:54:16.766 AM