Adding regression tests that check 7pt, 19pt, positive/negative definite, singular

problems with periodic and Neumann conditions.  Related to [issue915].
This commit is contained in:
falgout 2012-05-09 23:41:22 +00:00
parent 44ac0f1d52
commit 7b286bd16f
11 changed files with 711 additions and 11 deletions

View File

@ -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
###########################################################

View File

@ -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
###########################################################

View File

@ -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
###########################################################

View File

@ -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
###########################################################

View File

@ -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
###########################################################

View File

@ -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
###########################################################

View File

@ -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
###########################################################

View File

@ -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
###########################################################

View File

@ -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

View File

@ -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

View File

@ -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