From 7b286bd16fdc30856c2df86b0d5a59740d9448da Mon Sep 17 00:00:00 2001 From: falgout Date: Wed, 9 May 2012 23:41:22 +0000 Subject: [PATCH] Adding regression tests that check 7pt, 19pt, positive/negative definite, singular problems with periodic and Neumann conditions. Related to [issue915]. --- test/TEST_sstruct/sstruct.in.19aniso | 85 ++++++++++++++++++++++++++ test/TEST_sstruct/sstruct.in.19iso | 85 ++++++++++++++++++++++++++ test/TEST_sstruct/sstruct.in.7aniso | 71 +++++++++++++++++++++ test/TEST_sstruct/sstruct.in.7iso | 71 +++++++++++++++++++++ test/TEST_sstruct/sstruct.in.p19aniso | 85 ++++++++++++++++++++++++++ test/TEST_sstruct/sstruct.in.p19iso | 85 ++++++++++++++++++++++++++ test/TEST_sstruct/sstruct.in.p7aniso | 71 +++++++++++++++++++++ test/TEST_sstruct/sstruct.in.p7iso | 71 +++++++++++++++++++++ test/TEST_sstruct/sstruct_struct.jobs | 32 ++++++++-- test/TEST_sstruct/sstruct_struct.saved | 32 ++++++++++ test/TEST_sstruct/sstruct_struct.sh | 34 +++++++++-- 11 files changed, 711 insertions(+), 11 deletions(-) create mode 100644 test/TEST_sstruct/sstruct.in.19aniso create mode 100644 test/TEST_sstruct/sstruct.in.19iso create mode 100644 test/TEST_sstruct/sstruct.in.7aniso create mode 100644 test/TEST_sstruct/sstruct.in.7iso create mode 100644 test/TEST_sstruct/sstruct.in.p19aniso create mode 100644 test/TEST_sstruct/sstruct.in.p19iso create mode 100644 test/TEST_sstruct/sstruct.in.p7aniso create mode 100644 test/TEST_sstruct/sstruct.in.p7iso diff --git a/test/TEST_sstruct/sstruct.in.19aniso b/test/TEST_sstruct/sstruct.in.19aniso new file mode 100644 index 000000000..8e3652bff --- /dev/null +++ b/test/TEST_sstruct/sstruct.in.19aniso @@ -0,0 +1,85 @@ + +########################################################### + +# GridCreate: ndim nparts +GridCreate: 3 1 + +# GridSetExtents: part ilower(ndim) iupper(ndim) +GridSetExtents: 0 (1- 1- 1-) (8+ 4+ 4+) + +# GridSetVariables: part nvars vartypes[nvars] +# CELL = 0 +GridSetVariables: 0 1 [0] + +# GridSetPeriodic: part periodic[ndim] +GridSetPeriodic: 0 [0 0 4] + +########################################################### + +# StencilCreate: nstencils sizes[nstencils] +StencilCreate: 1 [19] + +# StencilSetEntry: stencil_num entry offset[ndim] var value +StencilSetEntry: 0 0 [ 1 1 0 ] 0 0.0 +StencilSetEntry: 0 1 [ 1 0 0 ] 0 100.0 +StencilSetEntry: 0 2 [ 1 -1 0 ] 0 0.0 +StencilSetEntry: 0 3 [ 0 -1 0 ] 0 10000.0 +StencilSetEntry: 0 4 [ -1 -1 0 ] 0 0.0 +StencilSetEntry: 0 5 [ -1 0 0 ] 0 100.0 +StencilSetEntry: 0 6 [ -1 1 0 ] 0 0.0 +StencilSetEntry: 0 7 [ 0 1 0 ] 0 10000.0 +StencilSetEntry: 0 8 [ 0 0 0 ] 0 -20208.0 +StencilSetEntry: 0 9 [ 1 0 -1 ] 0 0.0 +StencilSetEntry: 0 10 [ 0 -1 -1 ] 0 0.0 +StencilSetEntry: 0 11 [ -1 0 -1 ] 0 0.0 +StencilSetEntry: 0 12 [ 0 1 -1 ] 0 0.0 +StencilSetEntry: 0 13 [ 0 0 -1 ] 0 4.0 +StencilSetEntry: 0 14 [ 1 0 1 ] 0 0.0 +StencilSetEntry: 0 15 [ 0 -1 1 ] 0 0.0 +StencilSetEntry: 0 16 [ -1 0 1 ] 0 0.0 +StencilSetEntry: 0 17 [ 0 1 1 ] 0 0.0 +StencilSetEntry: 0 18 [ 0 0 1 ] 0 4.0 + +########################################################### + +# GraphSetStencil: part var stencil_num +GraphSetStencil: 0 0 0 + +########################################################### + +# Neumann in both x and y + +# MatrixSetValues: \ +# part ilower(ndim) iupper(ndim) stride[ndim] var entry value +# west +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 5 0.0 +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 8 -20108.0 +# east +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 1 0.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 8 -20108.0 +# south +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 3 0.0 +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 8 -10208.0 +# north +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 7 0.0 +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 8 -10208.0 +# lower +#MatrixSetValues: 0 (1- 1- 1-) (8+ 4+ 1-) [1 1 1] 0 13 0.0 +# upper +#MatrixSetValues: 0 (1- 1- 4+) (8+ 4+ 4+) [1 1 1] 0 18 0.0 + +MatrixSetValues: 0 (1- 1- 1-) (1- 1- 4+) [1 1 1] 0 8 -10108.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 1- 4+) [1 1 1] 0 8 -10108.0 +MatrixSetValues: 0 (1- 4+ 1-) (1- 4+ 4+) [1 1 1] 0 8 -10108.0 +MatrixSetValues: 0 (8+ 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 8 -10108.0 + +########################################################### + +# ProcessPoolCreate: num_pools +ProcessPoolCreate: 1 + +# ProcessPoolSetPart: pool part +ProcessPoolSetPart: 0 0 + +########################################################### + diff --git a/test/TEST_sstruct/sstruct.in.19iso b/test/TEST_sstruct/sstruct.in.19iso new file mode 100644 index 000000000..d2b58c9a7 --- /dev/null +++ b/test/TEST_sstruct/sstruct.in.19iso @@ -0,0 +1,85 @@ + +########################################################### + +# GridCreate: ndim nparts +GridCreate: 3 1 + +# GridSetExtents: part ilower(ndim) iupper(ndim) +GridSetExtents: 0 (1- 1- 1-) (8+ 4+ 4+) + +# GridSetVariables: part nvars vartypes[nvars] +# CELL = 0 +GridSetVariables: 0 1 [0] + +# GridSetPeriodic: part periodic[ndim] +GridSetPeriodic: 0 [0 0 4] + +########################################################### + +# StencilCreate: nstencils sizes[nstencils] +StencilCreate: 1 [19] + +# StencilSetEntry: stencil_num entry offset[ndim] var value +StencilSetEntry: 0 0 [ 1 1 0 ] 0 0.0 +StencilSetEntry: 0 1 [ 1 0 0 ] 0 1.0 +StencilSetEntry: 0 2 [ 1 -1 0 ] 0 0.0 +StencilSetEntry: 0 3 [ 0 -1 0 ] 0 1.0 +StencilSetEntry: 0 4 [ -1 -1 0 ] 0 0.0 +StencilSetEntry: 0 5 [ -1 0 0 ] 0 1.0 +StencilSetEntry: 0 6 [ -1 1 0 ] 0 0.0 +StencilSetEntry: 0 7 [ 0 1 0 ] 0 1.0 +StencilSetEntry: 0 8 [ 0 0 0 ] 0 -6.0 +StencilSetEntry: 0 9 [ 1 0 -1 ] 0 0.0 +StencilSetEntry: 0 10 [ 0 -1 -1 ] 0 0.0 +StencilSetEntry: 0 11 [ -1 0 -1 ] 0 0.0 +StencilSetEntry: 0 12 [ 0 1 -1 ] 0 0.0 +StencilSetEntry: 0 13 [ 0 0 -1 ] 0 1.0 +StencilSetEntry: 0 14 [ 1 0 1 ] 0 0.0 +StencilSetEntry: 0 15 [ 0 -1 1 ] 0 0.0 +StencilSetEntry: 0 16 [ -1 0 1 ] 0 0.0 +StencilSetEntry: 0 17 [ 0 1 1 ] 0 0.0 +StencilSetEntry: 0 18 [ 0 0 1 ] 0 1.0 + +########################################################### + +# GraphSetStencil: part var stencil_num +GraphSetStencil: 0 0 0 + +########################################################### + +# Neumann in both x and y + +# MatrixSetValues: \ +# part ilower(ndim) iupper(ndim) stride[ndim] var entry value +# west +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 5 0.0 +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 8 -5.0 +# east +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 1 0.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 8 -5.0 +# south +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 3 0.0 +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 8 -5.0 +# north +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 7 0.0 +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 8 -5.0 +# lower +#MatrixSetValues: 0 (1- 1- 1-) (8+ 4+ 1-) [1 1 1] 0 13 0.0 +# upper +#MatrixSetValues: 0 (1- 1- 4+) (8+ 4+ 4+) [1 1 1] 0 18 0.0 + +MatrixSetValues: 0 (1- 1- 1-) (1- 1- 4+) [1 1 1] 0 8 -4.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 1- 4+) [1 1 1] 0 8 -4.0 +MatrixSetValues: 0 (1- 4+ 1-) (1- 4+ 4+) [1 1 1] 0 8 -4.0 +MatrixSetValues: 0 (8+ 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 8 -4.0 + +########################################################### + +# ProcessPoolCreate: num_pools +ProcessPoolCreate: 1 + +# ProcessPoolSetPart: pool part +ProcessPoolSetPart: 0 0 + +########################################################### + diff --git a/test/TEST_sstruct/sstruct.in.7aniso b/test/TEST_sstruct/sstruct.in.7aniso new file mode 100644 index 000000000..476618edc --- /dev/null +++ b/test/TEST_sstruct/sstruct.in.7aniso @@ -0,0 +1,71 @@ + +########################################################### + +# GridCreate: ndim nparts +GridCreate: 3 1 + +# GridSetExtents: part ilower(ndim) iupper(ndim) +GridSetExtents: 0 (1- 1- 1-) (8+ 4+ 4+) + +# GridSetVariables: part nvars vartypes[nvars] +# CELL = 0 +GridSetVariables: 0 1 [0] + +# GridSetPeriodic: part periodic[ndim] +GridSetPeriodic: 0 [0 0 4] + +########################################################### + +# StencilCreate: nstencils sizes[nstencils] +StencilCreate: 1 [7] + +# StencilSetEntry: stencil_num entry offset[ndim] var value +StencilSetEntry: 0 0 [ 0 0 0] 0 -20208.0 +StencilSetEntry: 0 1 [-1 0 0] 0 100.0 +StencilSetEntry: 0 2 [ 1 0 0] 0 100.0 +StencilSetEntry: 0 3 [ 0 -1 0] 0 10000.0 +StencilSetEntry: 0 4 [ 0 1 0] 0 10000.0 +StencilSetEntry: 0 5 [ 0 0 -1] 0 4.0 +StencilSetEntry: 0 6 [ 0 0 1] 0 4.0 + +########################################################### + +# GraphSetStencil: part var stencil_num +GraphSetStencil: 0 0 0 + +########################################################### + +# MatrixSetValues: \ +# part ilower(ndim) iupper(ndim) stride[ndim] var entry value +# west +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 1 0.0 +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 0 -20108.0 +# east +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 2 0.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 0 -20108.0 +# south +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 3 0.0 +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 0 -10208.0 +# north +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 4 0.0 +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 0 -10208.0 +# lower +#MatrixSetValues: 0 (1- 1- 1-) (8+ 4+ 1-) [1 1 1] 0 5 0.0 +# upper +#MatrixSetValues: 0 (1- 1- 4+) (8+ 4+ 4+) [1 1 1] 0 6 0.0 + +MatrixSetValues: 0 (1- 1- 1-) (1- 1- 4+) [1 1 1] 0 0 -10108.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 1- 4+) [1 1 1] 0 0 -10108.0 +MatrixSetValues: 0 (1- 4+ 1-) (1- 4+ 4+) [1 1 1] 0 0 -10108.0 +MatrixSetValues: 0 (8+ 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 0 -10108.0 + +########################################################### + +# ProcessPoolCreate: num_pools +ProcessPoolCreate: 1 + +# ProcessPoolSetPart: pool part +ProcessPoolSetPart: 0 0 + +########################################################### + diff --git a/test/TEST_sstruct/sstruct.in.7iso b/test/TEST_sstruct/sstruct.in.7iso new file mode 100644 index 000000000..32b2a19fa --- /dev/null +++ b/test/TEST_sstruct/sstruct.in.7iso @@ -0,0 +1,71 @@ + +########################################################### + +# GridCreate: ndim nparts +GridCreate: 3 1 + +# GridSetExtents: part ilower(ndim) iupper(ndim) +GridSetExtents: 0 (1- 1- 1-) (8+ 4+ 4+) + +# GridSetVariables: part nvars vartypes[nvars] +# CELL = 0 +GridSetVariables: 0 1 [0] + +# GridSetPeriodic: part periodic[ndim] +GridSetPeriodic: 0 [0 0 4] + +########################################################### + +# StencilCreate: nstencils sizes[nstencils] +StencilCreate: 1 [7] + +# StencilSetEntry: stencil_num entry offset[ndim] var value +StencilSetEntry: 0 0 [ 0 0 0] 0 -6.0 +StencilSetEntry: 0 1 [-1 0 0] 0 1.0 +StencilSetEntry: 0 2 [ 1 0 0] 0 1.0 +StencilSetEntry: 0 3 [ 0 -1 0] 0 1.0 +StencilSetEntry: 0 4 [ 0 1 0] 0 1.0 +StencilSetEntry: 0 5 [ 0 0 -1] 0 1.0 +StencilSetEntry: 0 6 [ 0 0 1] 0 1.0 + +########################################################### + +# GraphSetStencil: part var stencil_num +GraphSetStencil: 0 0 0 + +########################################################### + +# MatrixSetValues: \ +# part ilower(ndim) iupper(ndim) stride[ndim] var entry value +# west +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 1 0.0 +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 0 -5.0 +# east +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 2 0.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 0 -5.0 +# south +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 3 0.0 +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 0 -5.0 +# north +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 4 0.0 +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 0 -5.0 +# lower +#MatrixSetValues: 0 (1- 1- 1-) (8+ 4+ 1-) [1 1 1] 0 5 0.0 +# upper +#MatrixSetValues: 0 (1- 1- 4+) (8+ 4+ 4+) [1 1 1] 0 6 0.0 + +MatrixSetValues: 0 (1- 1- 1-) (1- 1- 4+) [1 1 1] 0 0 -4.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 1- 4+) [1 1 1] 0 0 -4.0 +MatrixSetValues: 0 (1- 4+ 1-) (1- 4+ 4+) [1 1 1] 0 0 -4.0 +MatrixSetValues: 0 (8+ 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 0 -4.0 + +########################################################### + +# ProcessPoolCreate: num_pools +ProcessPoolCreate: 1 + +# ProcessPoolSetPart: pool part +ProcessPoolSetPart: 0 0 + +########################################################### + diff --git a/test/TEST_sstruct/sstruct.in.p19aniso b/test/TEST_sstruct/sstruct.in.p19aniso new file mode 100644 index 000000000..df9b01a0b --- /dev/null +++ b/test/TEST_sstruct/sstruct.in.p19aniso @@ -0,0 +1,85 @@ + +########################################################### + +# GridCreate: ndim nparts +GridCreate: 3 1 + +# GridSetExtents: part ilower(ndim) iupper(ndim) +GridSetExtents: 0 (1- 1- 1-) (8+ 4+ 4+) + +# GridSetVariables: part nvars vartypes[nvars] +# CELL = 0 +GridSetVariables: 0 1 [0] + +# GridSetPeriodic: part periodic[ndim] +GridSetPeriodic: 0 [0 0 4] + +########################################################### + +# StencilCreate: nstencils sizes[nstencils] +StencilCreate: 1 [19] + +# StencilSetEntry: stencil_num entry offset[ndim] var value +StencilSetEntry: 0 0 [ 1 1 0 ] 0 0.0 +StencilSetEntry: 0 1 [ 1 0 0 ] 0 -100.0 +StencilSetEntry: 0 2 [ 1 -1 0 ] 0 0.0 +StencilSetEntry: 0 3 [ 0 -1 0 ] 0 -10000.0 +StencilSetEntry: 0 4 [ -1 -1 0 ] 0 0.0 +StencilSetEntry: 0 5 [ -1 0 0 ] 0 -100.0 +StencilSetEntry: 0 6 [ -1 1 0 ] 0 0.0 +StencilSetEntry: 0 7 [ 0 1 0 ] 0 -10000.0 +StencilSetEntry: 0 8 [ 0 0 0 ] 0 20208.0 +StencilSetEntry: 0 9 [ 1 0 -1 ] 0 0.0 +StencilSetEntry: 0 10 [ 0 -1 -1 ] 0 0.0 +StencilSetEntry: 0 11 [ -1 0 -1 ] 0 0.0 +StencilSetEntry: 0 12 [ 0 1 -1 ] 0 0.0 +StencilSetEntry: 0 13 [ 0 0 -1 ] 0 -4.0 +StencilSetEntry: 0 14 [ 1 0 1 ] 0 0.0 +StencilSetEntry: 0 15 [ 0 -1 1 ] 0 0.0 +StencilSetEntry: 0 16 [ -1 0 1 ] 0 0.0 +StencilSetEntry: 0 17 [ 0 1 1 ] 0 0.0 +StencilSetEntry: 0 18 [ 0 0 1 ] 0 -4.0 + +########################################################### + +# GraphSetStencil: part var stencil_num +GraphSetStencil: 0 0 0 + +########################################################### + +# Neumann in both x and y + +# MatrixSetValues: \ +# part ilower(ndim) iupper(ndim) stride[ndim] var entry value +# west +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 5 0.0 +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 8 20108.0 +# east +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 1 0.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 8 20108.0 +# south +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 3 0.0 +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 8 10208.0 +# north +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 7 0.0 +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 8 10208.0 +# lower +#MatrixSetValues: 0 (1- 1- 1-) (8+ 4+ 1-) [1 1 1] 0 13 0.0 +# upper +#MatrixSetValues: 0 (1- 1- 4+) (8+ 4+ 4+) [1 1 1] 0 18 0.0 + +MatrixSetValues: 0 (1- 1- 1-) (1- 1- 4+) [1 1 1] 0 8 10108.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 1- 4+) [1 1 1] 0 8 10108.0 +MatrixSetValues: 0 (1- 4+ 1-) (1- 4+ 4+) [1 1 1] 0 8 10108.0 +MatrixSetValues: 0 (8+ 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 8 10108.0 + +########################################################### + +# ProcessPoolCreate: num_pools +ProcessPoolCreate: 1 + +# ProcessPoolSetPart: pool part +ProcessPoolSetPart: 0 0 + +########################################################### + diff --git a/test/TEST_sstruct/sstruct.in.p19iso b/test/TEST_sstruct/sstruct.in.p19iso new file mode 100644 index 000000000..d14f505e2 --- /dev/null +++ b/test/TEST_sstruct/sstruct.in.p19iso @@ -0,0 +1,85 @@ + +########################################################### + +# GridCreate: ndim nparts +GridCreate: 3 1 + +# GridSetExtents: part ilower(ndim) iupper(ndim) +GridSetExtents: 0 (1- 1- 1-) (8+ 4+ 4+) + +# GridSetVariables: part nvars vartypes[nvars] +# CELL = 0 +GridSetVariables: 0 1 [0] + +# GridSetPeriodic: part periodic[ndim] +GridSetPeriodic: 0 [0 0 4] + +########################################################### + +# StencilCreate: nstencils sizes[nstencils] +StencilCreate: 1 [19] + +# StencilSetEntry: stencil_num entry offset[ndim] var value +StencilSetEntry: 0 0 [ 1 1 0 ] 0 0.0 +StencilSetEntry: 0 1 [ 1 0 0 ] 0 -1.0 +StencilSetEntry: 0 2 [ 1 -1 0 ] 0 0.0 +StencilSetEntry: 0 3 [ 0 -1 0 ] 0 -1.0 +StencilSetEntry: 0 4 [ -1 -1 0 ] 0 0.0 +StencilSetEntry: 0 5 [ -1 0 0 ] 0 -1.0 +StencilSetEntry: 0 6 [ -1 1 0 ] 0 0.0 +StencilSetEntry: 0 7 [ 0 1 0 ] 0 -1.0 +StencilSetEntry: 0 8 [ 0 0 0 ] 0 6.0 +StencilSetEntry: 0 9 [ 1 0 -1 ] 0 0.0 +StencilSetEntry: 0 10 [ 0 -1 -1 ] 0 0.0 +StencilSetEntry: 0 11 [ -1 0 -1 ] 0 0.0 +StencilSetEntry: 0 12 [ 0 1 -1 ] 0 0.0 +StencilSetEntry: 0 13 [ 0 0 -1 ] 0 -1.0 +StencilSetEntry: 0 14 [ 1 0 1 ] 0 0.0 +StencilSetEntry: 0 15 [ 0 -1 1 ] 0 0.0 +StencilSetEntry: 0 16 [ -1 0 1 ] 0 0.0 +StencilSetEntry: 0 17 [ 0 1 1 ] 0 0.0 +StencilSetEntry: 0 18 [ 0 0 1 ] 0 -1.0 + +########################################################### + +# GraphSetStencil: part var stencil_num +GraphSetStencil: 0 0 0 + +########################################################### + +# Neumann in both x and y + +# MatrixSetValues: \ +# part ilower(ndim) iupper(ndim) stride[ndim] var entry value +# west +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 5 0.0 +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 8 5.0 +# east +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 1 0.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 8 5.0 +# south +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 3 0.0 +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 8 5.0 +# north +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 7 0.0 +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 8 5.0 +# lower +#MatrixSetValues: 0 (1- 1- 1-) (8+ 4+ 1-) [1 1 1] 0 13 0.0 +# upper +#MatrixSetValues: 0 (1- 1- 4+) (8+ 4+ 4+) [1 1 1] 0 18 0.0 + +MatrixSetValues: 0 (1- 1- 1-) (1- 1- 4+) [1 1 1] 0 8 4.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 1- 4+) [1 1 1] 0 8 4.0 +MatrixSetValues: 0 (1- 4+ 1-) (1- 4+ 4+) [1 1 1] 0 8 4.0 +MatrixSetValues: 0 (8+ 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 8 4.0 + +########################################################### + +# ProcessPoolCreate: num_pools +ProcessPoolCreate: 1 + +# ProcessPoolSetPart: pool part +ProcessPoolSetPart: 0 0 + +########################################################### + diff --git a/test/TEST_sstruct/sstruct.in.p7aniso b/test/TEST_sstruct/sstruct.in.p7aniso new file mode 100644 index 000000000..9ca15fff8 --- /dev/null +++ b/test/TEST_sstruct/sstruct.in.p7aniso @@ -0,0 +1,71 @@ + +########################################################### + +# GridCreate: ndim nparts +GridCreate: 3 1 + +# GridSetExtents: part ilower(ndim) iupper(ndim) +GridSetExtents: 0 (1- 1- 1-) (8+ 4+ 4+) + +# GridSetVariables: part nvars vartypes[nvars] +# CELL = 0 +GridSetVariables: 0 1 [0] + +# GridSetPeriodic: part periodic[ndim] +GridSetPeriodic: 0 [0 0 4] + +########################################################### + +# StencilCreate: nstencils sizes[nstencils] +StencilCreate: 1 [7] + +# StencilSetEntry: stencil_num entry offset[ndim] var value +StencilSetEntry: 0 0 [ 0 0 0] 0 20208.0 +StencilSetEntry: 0 1 [-1 0 0] 0 -100.0 +StencilSetEntry: 0 2 [ 1 0 0] 0 -100.0 +StencilSetEntry: 0 3 [ 0 -1 0] 0 -10000.0 +StencilSetEntry: 0 4 [ 0 1 0] 0 -10000.0 +StencilSetEntry: 0 5 [ 0 0 -1] 0 -4.0 +StencilSetEntry: 0 6 [ 0 0 1] 0 -4.0 + +########################################################### + +# GraphSetStencil: part var stencil_num +GraphSetStencil: 0 0 0 + +########################################################### + +# MatrixSetValues: \ +# part ilower(ndim) iupper(ndim) stride[ndim] var entry value +# west +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 1 0.0 +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 0 20108.0 +# east +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 2 0.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 0 20108.0 +# south +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 3 0.0 +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 0 10208.0 +# north +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 4 0.0 +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 0 10208.0 +# lower +#MatrixSetValues: 0 (1- 1- 1-) (8+ 4+ 1-) [1 1 1] 0 5 0.0 +# upper +#MatrixSetValues: 0 (1- 1- 4+) (8+ 4+ 4+) [1 1 1] 0 6 0.0 + +MatrixSetValues: 0 (1- 1- 1-) (1- 1- 4+) [1 1 1] 0 0 10108.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 1- 4+) [1 1 1] 0 0 10108.0 +MatrixSetValues: 0 (1- 4+ 1-) (1- 4+ 4+) [1 1 1] 0 0 10108.0 +MatrixSetValues: 0 (8+ 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 0 10108.0 + +########################################################### + +# ProcessPoolCreate: num_pools +ProcessPoolCreate: 1 + +# ProcessPoolSetPart: pool part +ProcessPoolSetPart: 0 0 + +########################################################### + diff --git a/test/TEST_sstruct/sstruct.in.p7iso b/test/TEST_sstruct/sstruct.in.p7iso new file mode 100644 index 000000000..2a890991b --- /dev/null +++ b/test/TEST_sstruct/sstruct.in.p7iso @@ -0,0 +1,71 @@ + +########################################################### + +# GridCreate: ndim nparts +GridCreate: 3 1 + +# GridSetExtents: part ilower(ndim) iupper(ndim) +GridSetExtents: 0 (1- 1- 1-) (8+ 4+ 4+) + +# GridSetVariables: part nvars vartypes[nvars] +# CELL = 0 +GridSetVariables: 0 1 [0] + +# GridSetPeriodic: part periodic[ndim] +GridSetPeriodic: 0 [0 0 4] + +########################################################### + +# StencilCreate: nstencils sizes[nstencils] +StencilCreate: 1 [7] + +# StencilSetEntry: stencil_num entry offset[ndim] var value +StencilSetEntry: 0 0 [ 0 0 0] 0 6.0 +StencilSetEntry: 0 1 [-1 0 0] 0 -1.0 +StencilSetEntry: 0 2 [ 1 0 0] 0 -1.0 +StencilSetEntry: 0 3 [ 0 -1 0] 0 -1.0 +StencilSetEntry: 0 4 [ 0 1 0] 0 -1.0 +StencilSetEntry: 0 5 [ 0 0 -1] 0 -1.0 +StencilSetEntry: 0 6 [ 0 0 1] 0 -1.0 + +########################################################### + +# GraphSetStencil: part var stencil_num +GraphSetStencil: 0 0 0 + +########################################################### + +# MatrixSetValues: \ +# part ilower(ndim) iupper(ndim) stride[ndim] var entry value +# west +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 1 0.0 +MatrixSetValues: 0 (1- 1- 1-) (1- 4+ 4+) [1 1 1] 0 0 5.0 +# east +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 2 0.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 4+ 4+) [1 1 1] 0 0 5.0 +# south +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 3 0.0 +MatrixSetValues: 0 (1- 1- 1-) (8+ 1- 4+) [1 1 1] 0 0 5.0 +# north +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 4 0.0 +MatrixSetValues: 0 (1- 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 0 5.0 +# lower +#MatrixSetValues: 0 (1- 1- 1-) (8+ 4+ 1-) [1 1 1] 0 5 0.0 +# upper +#MatrixSetValues: 0 (1- 1- 4+) (8+ 4+ 4+) [1 1 1] 0 6 0.0 + +MatrixSetValues: 0 (1- 1- 1-) (1- 1- 4+) [1 1 1] 0 0 4.0 +MatrixSetValues: 0 (8+ 1- 1-) (8+ 1- 4+) [1 1 1] 0 0 4.0 +MatrixSetValues: 0 (1- 4+ 1-) (1- 4+ 4+) [1 1 1] 0 0 4.0 +MatrixSetValues: 0 (8+ 4+ 1-) (8+ 4+ 4+) [1 1 1] 0 0 4.0 + +########################################################### + +# ProcessPoolCreate: num_pools +ProcessPoolCreate: 1 + +# ProcessPoolSetPart: pool part +ProcessPoolSetPart: 0 0 + +########################################################### + diff --git a/test/TEST_sstruct/sstruct_struct.jobs b/test/TEST_sstruct/sstruct_struct.jobs index 41ce68cb6..786ae5f73 100755 --- a/test/TEST_sstruct/sstruct_struct.jobs +++ b/test/TEST_sstruct/sstruct_struct.jobs @@ -1,17 +1,37 @@ #!/bin/ksh + #============================================================================= -# sstruct: compares the struct solvers from calls from sstruct & struct -# itself. +# Compare the struct solvers called from sstruct & struct interfaces #============================================================================= mpirun -np 1 ./struct -n 12 12 12 -solver 1 -istart -3 -3 -3 -relax 1 -rap 1 \ - > sstruct_struct.out.1 +> sstruct_struct.out.1 mpirun -np 1 ./sstruct -in sstruct.in.struct -solver 201 -relax 1 -rap 1 -rhsone \ - > sstruct_struct.out.201 +> sstruct_struct.out.201 mpirun -np 1 ./struct -n 12 12 12 -solver 0 -istart -3 -3 -3 -relax 1 \ - > sstruct_struct.out.0 +> sstruct_struct.out.0 mpirun -np 1 ./sstruct -in sstruct.in.struct -solver 200 -relax 1 -rhsone \ - > sstruct_struct.out.200 +> sstruct_struct.out.200 +#============================================================================= +# Compare 19pt, 7pt, positive, and negative definite +#============================================================================= +mpirun -np 2 sstruct -in sstruct.in.19aniso -P 2 1 1 -solver 201 \ +> sstruct_struct.out.10 +mpirun -np 2 sstruct -in sstruct.in.p19aniso -P 2 1 1 -solver 201 \ +> sstruct_struct.out.11 +mpirun -np 2 sstruct -in sstruct.in.7aniso -P 2 1 1 -solver 201 \ +> sstruct_struct.out.12 +mpirun -np 2 sstruct -in sstruct.in.p7aniso -P 2 1 1 -solver 201 \ +> sstruct_struct.out.13 + +mpirun -np 2 sstruct -in sstruct.in.19iso -P 2 1 1 -solver 201 \ +> sstruct_struct.out.15 +mpirun -np 2 sstruct -in sstruct.in.p19iso -P 2 1 1 -solver 201 \ +> sstruct_struct.out.16 +mpirun -np 2 sstruct -in sstruct.in.7iso -P 2 1 1 -solver 201 \ +> sstruct_struct.out.17 +mpirun -np 2 sstruct -in sstruct.in.p7iso -P 2 1 1 -solver 201 \ +> sstruct_struct.out.18 diff --git a/test/TEST_sstruct/sstruct_struct.saved b/test/TEST_sstruct/sstruct_struct.saved index 50c234b7a..3454e3f35 100644 --- a/test/TEST_sstruct/sstruct_struct.saved +++ b/test/TEST_sstruct/sstruct_struct.saved @@ -14,3 +14,35 @@ Final Relative Residual Norm = 2.753739e-07 Iterations = 16 Final Relative Residual Norm = 6.891627e-07 +# Output file: sstruct_struct.out.10 +Iterations = 8 +Final Relative Residual Norm = 3.476646e-07 + +# Output file: sstruct_struct.out.11 +Iterations = 8 +Final Relative Residual Norm = 3.476646e-07 + +# Output file: sstruct_struct.out.12 +Iterations = 8 +Final Relative Residual Norm = 3.476646e-07 + +# Output file: sstruct_struct.out.13 +Iterations = 8 +Final Relative Residual Norm = 3.476646e-07 + +# Output file: sstruct_struct.out.15 +Iterations = 23 +Final Relative Residual Norm = 9.655301e-07 + +# Output file: sstruct_struct.out.16 +Iterations = 23 +Final Relative Residual Norm = 9.655301e-07 + +# Output file: sstruct_struct.out.17 +Iterations = 23 +Final Relative Residual Norm = 9.655301e-07 + +# Output file: sstruct_struct.out.18 +Iterations = 23 +Final Relative Residual Norm = 9.655301e-07 + diff --git a/test/TEST_sstruct/sstruct_struct.sh b/test/TEST_sstruct/sstruct_struct.sh index 17cdcef1d..096efcee8 100755 --- a/test/TEST_sstruct/sstruct_struct.sh +++ b/test/TEST_sstruct/sstruct_struct.sh @@ -11,14 +11,10 @@ # $Revision$ #EHEADER********************************************************************** - - - - TNAME=`basename $0 .sh` #============================================================================= -# sstruct: Tests the struct solvers called from the sstruct interface +# Compare the struct solvers called from sstruct & struct interfaces #============================================================================= tail -3 ${TNAME}.out.0 > ${TNAME}.testdata @@ -31,6 +27,26 @@ tail -3 ${TNAME}.out.1 > ${TNAME}.testdata tail -3 ${TNAME}.out.201 > ${TNAME}.testdata.temp diff ${TNAME}.testdata ${TNAME}.testdata.temp >&2 +#============================================================================= +# Compare 19pt, 7pt, positive, and negative definite +#============================================================================= + +tail -3 ${TNAME}.out.10 > ${TNAME}.testdata +tail -3 ${TNAME}.out.11 > ${TNAME}.testdata.temp +diff ${TNAME}.testdata ${TNAME}.testdata.temp >&2 +tail -3 ${TNAME}.out.12 > ${TNAME}.testdata.temp +diff ${TNAME}.testdata ${TNAME}.testdata.temp >&2 +tail -3 ${TNAME}.out.13 > ${TNAME}.testdata.temp +diff ${TNAME}.testdata ${TNAME}.testdata.temp >&2 + +tail -3 ${TNAME}.out.15 > ${TNAME}.testdata +tail -3 ${TNAME}.out.16 > ${TNAME}.testdata.temp +diff ${TNAME}.testdata ${TNAME}.testdata.temp >&2 +tail -3 ${TNAME}.out.17 > ${TNAME}.testdata.temp +diff ${TNAME}.testdata ${TNAME}.testdata.temp >&2 +tail -3 ${TNAME}.out.18 > ${TNAME}.testdata.temp +diff ${TNAME}.testdata ${TNAME}.testdata.temp >&2 + #============================================================================= # compare with baseline case #============================================================================= @@ -40,6 +56,14 @@ FILES="\ ${TNAME}.out.1\ ${TNAME}.out.200\ ${TNAME}.out.201\ + ${TNAME}.out.10\ + ${TNAME}.out.11\ + ${TNAME}.out.12\ + ${TNAME}.out.13\ + ${TNAME}.out.15\ + ${TNAME}.out.16\ + ${TNAME}.out.17\ + ${TNAME}.out.18\ " for i in $FILES