Added reduced and enhanced connectivity regression tests and merged the

'fe_rhombus' tests with this new one.
This commit is contained in:
falgout 2010-03-26 19:49:54 +00:00
parent 5299348361
commit 85e2f6ee01
8 changed files with 422 additions and 20 deletions

View File

@ -1,16 +0,0 @@
#!/bin/ksh
#BHEADER**********************************************************************
# Copyright (c) 2008, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
# This file is part of HYPRE. See file COPYRIGHT for details.
#
# HYPRE is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License (as published by the Free
# Software Foundation) version 2.1 dated February 1999.
#
# $Revision$
#EHEADER**********************************************************************
mpirun -np 5 ./sstruct -in sstruct.in.fe_rhombus5 -solver 20 \
> fe_rhombus5.out.0

View File

@ -1,4 +0,0 @@
# Output file: fe_rhombus5.out.0
Iterations = 7
Final Relative Residual Norm = 3.548718e-07

View File

@ -0,0 +1,39 @@
#!/bin/ksh
#BHEADER**********************************************************************
# Copyright (c) 2008, Lawrence Livermore National Security, LLC.
# Produced at the Lawrence Livermore National Laboratory.
# This file is part of HYPRE. See file COPYRIGHT for details.
#
# HYPRE is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License (as published by the Free
# Software Foundation) version 2.1 dated February 1999.
#
# $Revision$
#EHEADER**********************************************************************
# These produce the same rel residual
mpirun -np 1 ./sstruct -in sstruct.in.reduced3D -solver 28 \
> sharedpart.out.0
mpirun -np 3 ./sstruct -in sstruct.in.reduced3D -solver 28 -pooldist 1 \
> sharedpart.out.1
mpirun -np 1 ./sstruct -in sstruct.in.reduced3D-4 -solver 28 \
> sharedpart.out.2
mpirun -np 3 ./sstruct -in sstruct.in.reduced3D-4 -solver 28 -pooldist 1 \
> sharedpart.out.3
# These produce the same rel residual
mpirun -np 1 ./sstruct -in sstruct.in.enhanced3D -solver 28 \
> sharedpart.out.10
mpirun -np 7 ./sstruct -in sstruct.in.enhanced3D -solver 28 -pooldist 1 \
> sharedpart.out.11
# Check AMG
mpirun -np 3 ./sstruct -in sstruct.in.reduced3D -solver 20 -pooldist 1 \
> sharedpart.out.50
mpirun -np 7 ./sstruct -in sstruct.in.enhanced3D -solver 20 -pooldist 1 \
> sharedpart.out.51
mpirun -np 3 ./sstruct -in sstruct.in.reduced3D-4 -solver 20 -pooldist 1 \
> sharedpart.out.52
mpirun -np 5 ./sstruct -in sstruct.in.fe_rhombus5 -solver 20 \
> sharedpart.out.53

View File

@ -0,0 +1,40 @@
# Output file: sharedpart.out.0
Iterations = 17
Final Relative Residual Norm = 8.509105e-07
# Output file: sharedpart.out.1
Iterations = 17
Final Relative Residual Norm = 8.509105e-07
# Output file: sharedpart.out.2
Iterations = 17
Final Relative Residual Norm = 8.509105e-07
# Output file: sharedpart.out.3
Iterations = 17
Final Relative Residual Norm = 8.509105e-07
# Output file: sharedpart.out.10
Iterations = 18
Final Relative Residual Norm = 4.922026e-07
# Output file: sharedpart.out.11
Iterations = 18
Final Relative Residual Norm = 4.922026e-07
# Output file: sharedpart.out.50
Iterations = 3
Final Relative Residual Norm = 3.616956e-08
# Output file: sharedpart.out.51
Iterations = 3
Final Relative Residual Norm = 3.825981e-08
# Output file: sharedpart.out.52
Iterations = 3
Final Relative Residual Norm = 3.616956e-08
# Output file: sharedpart.out.53
Iterations = 7
Final Relative Residual Norm = 3.548718e-07

View File

@ -14,12 +14,39 @@
TNAME=`basename $0 .sh`
#=============================================================================
#=============================================================================
tail -3 ${TNAME}.out.0 > ${TNAME}.testdata
for i in 1 2 3
do
tail -3 ${TNAME}.out.$i > ${TNAME}.testdata.temp
diff ${TNAME}.testdata ${TNAME}.testdata.temp >&2
done
#=============================================================================
#=============================================================================
tail -3 ${TNAME}.out.10 > ${TNAME}.testdata
tail -3 ${TNAME}.out.11 > ${TNAME}.testdata.temp
diff ${TNAME}.testdata ${TNAME}.testdata.temp >&2
#=============================================================================
# compare with baseline case
#=============================================================================
FILES="\
${TNAME}.out.0\
${TNAME}.out.1\
${TNAME}.out.2\
${TNAME}.out.3\
${TNAME}.out.10\
${TNAME}.out.11\
${TNAME}.out.50\
${TNAME}.out.51\
${TNAME}.out.52\
${TNAME}.out.53\
"
for i in $FILES
@ -44,3 +71,4 @@ fi
# remove temporary files
#=============================================================================
rm -f ${TNAME}.testdata*

View File

@ -0,0 +1,138 @@
###########################################################
# This example came from Rob Rieben and has both reduced and enhanced
# connectivity points. The k,z axis points "into the page".
#
# -------------------------------
# | / /|
# | part 3 / / |
# | / / |
# | / part / |
# | j / 4 / |
# | | / / |
# | ---i / / |
# --------------/ / |
# | | / part |
# | part 1 | j i / 5 |
# | | | / / /|
# | | |/ / / |
# | | / / |
# | j | / i / |
# | | | / / / |
# | ---i |/ j---/ / |
# ------------------------| part |
# | | | 6 |
# | part 0 | part 2 | |
# | | | |
# | j | j | j |
# | | | | | | |
# | ---i | ---i | ---i |
# --------------------------------
#
###########################################################
# GridCreate: ndim nparts
GridCreate: 3 7
# GridSetExtents: part ilower(ndim) iupper(ndim)
GridSetExtents: 0 (2- 2- 2-) (8+ 8+ 8+)
GridSetExtents: 1 (2- 2- 2-) (8+ 8+ 8+)
GridSetExtents: 2 (2- 2- 2-) (8+ 8+ 8+)
GridSetExtents: 3 (2- 2- 2-) (8+ 8+ 8+)
GridSetExtents: 4 (2- 2- 2-) (8+ 8+ 8+)
GridSetExtents: 5 (2- 2- 2-) (8+ 8+ 8+)
GridSetExtents: 6 (2- 2- 2-) (8+ 8+ 8+)
# GridSetVariables: part nvars vartypes[nvars]
# NODE = 1
# XFACE = 2
# YFACE = 3
GridSetVariables: 0 1 [1]
GridSetVariables: 1 1 [1]
GridSetVariables: 2 1 [1]
GridSetVariables: 3 1 [1]
GridSetVariables: 4 1 [1]
GridSetVariables: 5 1 [1]
GridSetVariables: 6 1 [1]
# GridSetSharedPart: part ilower(ndim) iupper(ndim) offset[ndim] \
# spart silower(ndim) siupper(ndim) soffset[ndim] \
# index_map[ndim] index_dir[ndim]
GridSetSharedPart: 0 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] 1 (2- 2- 2-) (8+ 2- 8+) [0 -1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 0 (8+ 2- 2-) (8+ 8+ 8+) [1 0 0] 2 (2- 2- 2-) (2- 8+ 8+) [-1 0 0] [0 1 2] [1 1 1]
GridSetSharedPart: 0 (8+ 8+ 2-) (8+ 8+ 8+) [1 1 0] 4 (2- 2- 2-) (2- 2- 8+) [-1 -1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 0 (8+ 8+ 2-) (8+ 8+ 8+) [1 1 0] 5 (2- 8+ 2-) (2- 8+ 8+) [-1 1 0] [1 0 2] [-1 1 1]
GridSetSharedPart: 1 (2- 2- 2-) (8+ 2- 8+) [0 -1 0] 0 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 1 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] 3 (2- 2- 2-) (8+ 2- 8+) [0 -1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 1 (8+ 2- 2-) (8+ 8+ 8+) [1 0 0] 4 (2- 2- 2-) (2- 8+ 8+) [-1 0 0] [0 1 2] [1 1 1]
GridSetSharedPart: 1 (8+ 2- 2-) (8+ 2- 8+) [1 -1 0] 2 (2- 8- 2-) (2- 8+ 8+) [-1 1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 1 (8+ 2- 2-) (8+ 2- 8+) [1 -1 0] 5 (2- 8- 2-) (2- 8+ 8+) [-1 1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 2 (2- 2- 2-) (2- 8+ 8+) [-1 0 0] 0 (8+ 2- 2-) (8+ 8+ 8+) [1 0 0] [0 1 2] [1 1 1]
GridSetSharedPart: 2 (8+ 2- 2-) (8+ 8+ 8+) [1 0 0] 6 (2- 2- 2-) (2- 8+ 8+) [-1 0 0] [0 1 2] [1 1 1]
GridSetSharedPart: 2 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] 5 (2- 2- 2-) (2- 8+ 8+) [-1 0 0] [1 0 2] [-1 1 1]
GridSetSharedPart: 2 (2- 8- 2-) (2- 8+ 8+) [-1 1 0] 1 (8+ 2- 2-) (8+ 2- 8+) [1 -1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 2 (2- 8- 2-) (2- 8+ 8+) [-1 1 0] 4 (2- 2- 2-) (2- 2- 8+) [-1 -1 0] [1 0 2] [-1 1 1]
GridSetSharedPart: 3 (2- 2- 2-) (8+ 2- 8+) [0 -1 0] 1 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 3 (8+ 2- 2-) (8+ 8+ 8+) [1 0 0] 4 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] [1 0 2] [-1 1 1]
GridSetSharedPart: 4 (2- 2- 2-) (2- 8+ 8+) [-1 0 0] 1 (8+ 2- 2-) (8+ 8+ 8+) [1 0 0] [0 1 2] [1 1 1]
GridSetSharedPart: 4 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] 3 (8+ 2- 2-) (8+ 8+ 8+) [1 0 0] [1 0 2] [1 -1 1]
GridSetSharedPart: 4 (2- 2- 2-) (8+ 2- 8+) [0 -1 0] 5 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 4 (2- 2- 2-) (2- 2- 8+) [-1 -1 0] 0 (8+ 8+ 2-) (8+ 8+ 8+) [1 1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 4 (2- 2- 2-) (2- 2- 8+) [-1 -1 0] 2 (2- 8- 2-) (2- 8+ 8+) [-1 1 0] [1 0 2] [1 -1 1]
GridSetSharedPart: 5 (2- 2- 2-) (2- 8+ 8+) [-1 0 0] 2 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] [1 0 2] [1 -1 1]
GridSetSharedPart: 5 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] 4 (2- 2- 2-) (8+ 2- 8+) [0 -1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 5 (2- 2- 2-) (8+ 2- 8+) [0 -1 0] 6 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 5 (2- 8+ 2-) (2- 8+ 8+) [-1 1 0] 0 (8+ 8+ 2-) (8+ 8+ 8+) [1 1 0] [1 0 2] [1 -1 1]
GridSetSharedPart: 5 (2- 8- 2-) (2- 8+ 8+) [-1 1 0] 1 (8+ 2- 2-) (8+ 2- 8+) [1 -1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 6 (2- 2- 2-) (2- 8+ 8+) [-1 0 0] 2 (8+ 2- 2-) (8+ 8+ 8+) [1 0 0] [0 1 2] [1 1 1]
GridSetSharedPart: 6 (2- 8+ 2-) (8+ 8+ 8+) [0 1 0] 5 (2- 2- 2-) (8+ 2- 8+) [0 -1 0] [0 1 2] [1 1 1]
###########################################################
# FEMStencilCreate: size
FEMStencilCreate: 8
# FEMStencilSetRow: row offset[ndim] var values[size]
FEMStencilSetRow: 0 [-1 -1 -1] 0 [ 4 -1 -1 0 -1 0 0 0 ]
FEMStencilSetRow: 1 [ 0 -1 -1] 0 [ -1 4 0 -1 0 -1 0 0 ]
FEMStencilSetRow: 2 [-1 0 -1] 0 [ -1 0 4 -1 0 0 -1 0 ]
FEMStencilSetRow: 3 [ 0 0 -1] 0 [ 0 -1 -1 4 0 0 0 -1 ]
FEMStencilSetRow: 4 [-1 -1 0] 0 [ -1 0 0 0 4 -1 -1 0 ]
FEMStencilSetRow: 5 [ 0 -1 0] 0 [ 0 -1 0 0 -1 4 0 -1 ]
FEMStencilSetRow: 6 [-1 0 0] 0 [ 0 0 -1 0 -1 0 4 -1 ]
FEMStencilSetRow: 7 [ 0 0 0] 0 [ 0 0 0 -1 0 -1 -1 4 ]
###########################################################
# ProcessPoolCreate: num_pools
ProcessPoolCreate: 1
# ProcessPoolSetPart: pool part
ProcessPoolSetPart: 0 0
ProcessPoolSetPart: 0 1
ProcessPoolSetPart: 0 2
ProcessPoolSetPart: 0 3
ProcessPoolSetPart: 0 4
ProcessPoolSetPart: 0 5
ProcessPoolSetPart: 0 6
# ProcessPoolCreate: num_pools
ProcessPoolCreate: 7
# ProcessPoolSetPart: pool part
ProcessPoolSetPart: 0 0
ProcessPoolSetPart: 1 1
ProcessPoolSetPart: 2 2
ProcessPoolSetPart: 3 3
ProcessPoolSetPart: 4 4
ProcessPoolSetPart: 5 5
ProcessPoolSetPart: 6 6
###########################################################

View File

@ -0,0 +1,88 @@
###########################################################
# This example came from Rob Rieben and has one reduced connectivity point.
# The k,z axis points "into the page".
#
# --------------------------------
# | /|
# | / |
# | / |
# | part 1 / |
# | / |
# | j / |
# | | / |
# | ---i / |
# --------------- part 2 |
# | | |
# | part 0 | |
# | | |
# | j | ---j |
# | | | | |
# | ---i | i |
# --------------------------------
#
###########################################################
# GridCreate: ndim nparts
GridCreate: 3 3
# GridSetExtents: part ilower(ndim) iupper(ndim)
GridSetExtents: 0 (2- 2- 2-) (11+ 11+ 11+)
GridSetExtents: 1 (2- 2- 2-) (11+ 31+ 11+)
GridSetExtents: 2 (2- 2- 2-) (11+ 31+ 11+)
# GridSetVariables: part nvars vartypes[nvars]
# NODE = 1
# XFACE = 2
# YFACE = 3
GridSetVariables: 0 1 [1]
GridSetVariables: 1 1 [1]
GridSetVariables: 2 1 [1]
# GridSetSharedPart: part ilower(ndim) iupper(ndim) offset[ndim] \
# spart silower(ndim) siupper(ndim) soffset[ndim] \
# index_map[ndim] index_dir[ndim]
GridSetSharedPart: 0 (2- 11+ 2-) (11+ 11+ 11+) [0 1 0] 1 (2- 2- 2-) (11+ 2- 11+) [0 -1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 0 (11+ 2- 2-) (11+ 11+ 11+) [1 0 0] 2 (2- 2- 2-) (11+ 2- 11+) [0 -1 0] [1 0 2] [1 -1 1]
GridSetSharedPart: 1 (2- 2- 2-) (11+ 2- 11+) [0 -1 0] 0 (2- 11+ 2-) (11+ 11+ 11+) [0 1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 1 (11+ 2- 2-) (11+ 31+ 11+) [1 0 0] 2 (2- 2- 2-) (2- 31+ 11+) [-1 0 0] [0 1 2] [1 1 1]
GridSetSharedPart: 2 (2- 2- 2-) (11+ 2- 11+) [0 -1 0] 0 (11+ 2- 2-) (11+ 11+ 11+) [1 0 0] [1 0 2] [-1 1 1]
GridSetSharedPart: 2 (2- 2- 2-) (2- 31+ 11+) [-1 0 0] 1 (11+ 2- 2-) (11+ 31+ 11+) [1 0 0] [0 1 2] [1 1 1]
###########################################################
# FEMStencilCreate: size
FEMStencilCreate: 8
# FEMStencilSetRow: row offset[ndim] var values[size]
FEMStencilSetRow: 0 [-1 -1 -1] 0 [ 4 -1 -1 0 -1 0 0 0 ]
FEMStencilSetRow: 1 [ 0 -1 -1] 0 [ -1 4 0 -1 0 -1 0 0 ]
FEMStencilSetRow: 2 [-1 0 -1] 0 [ -1 0 4 -1 0 0 -1 0 ]
FEMStencilSetRow: 3 [ 0 0 -1] 0 [ 0 -1 -1 4 0 0 0 -1 ]
FEMStencilSetRow: 4 [-1 -1 0] 0 [ -1 0 0 0 4 -1 -1 0 ]
FEMStencilSetRow: 5 [ 0 -1 0] 0 [ 0 -1 0 0 -1 4 0 -1 ]
FEMStencilSetRow: 6 [-1 0 0] 0 [ 0 0 -1 0 -1 0 4 -1 ]
FEMStencilSetRow: 7 [ 0 0 0] 0 [ 0 0 0 -1 0 -1 -1 4 ]
###########################################################
# ProcessPoolCreate: num_pools
ProcessPoolCreate: 1
# ProcessPoolSetPart: pool part
ProcessPoolSetPart: 0 0
ProcessPoolSetPart: 0 1
ProcessPoolSetPart: 0 2
# ProcessPoolCreate: num_pools
ProcessPoolCreate: 3
# ProcessPoolSetPart: pool part
ProcessPoolSetPart: 0 0
ProcessPoolSetPart: 1 1
ProcessPoolSetPart: 2 2
###########################################################

View File

@ -0,0 +1,89 @@
###########################################################
# This example came from Rob Rieben and has one reduced connectivity point.
# The k,z axis points "into the page". Part 1 is divided into 2 boxes.
#
# --------------------------------
# | /|
# | part 1 / |
# | / |
# | . . . . . . . . . . . / |
# | / |
# | j part 1 / |
# | | / |
# | ---i / |
# --------------- part 2 |
# | | |
# | part 0 | |
# | | |
# | j | ---j |
# | | | | |
# | ---i | i |
# --------------------------------
#
###########################################################
# GridCreate: ndim nparts
GridCreate: 3 3
# GridSetExtents: part ilower(ndim) iupper(ndim)
GridSetExtents: 0 (2- 2- 2-) (11+ 11+ 11+)
GridSetExtents: 1 (2- 2- 2-) (11+ 31+ 6+)
GridSetExtents: 1 (2- 2- 7-) (11+ 31+ 11+)
GridSetExtents: 2 (2- 2- 2-) (11+ 31+ 11+)
# GridSetVariables: part nvars vartypes[nvars]
# NODE = 1
# XFACE = 2
# YFACE = 3
GridSetVariables: 0 1 [1]
GridSetVariables: 1 1 [1]
GridSetVariables: 2 1 [1]
# GridSetSharedPart: part ilower(ndim) iupper(ndim) offset[ndim] \
# spart silower(ndim) siupper(ndim) soffset[ndim] \
# index_map[ndim] index_dir[ndim]
GridSetSharedPart: 0 (2- 11+ 2-) (11+ 11+ 11+) [0 1 0] 1 (2- 2- 2-) (11+ 2- 11+) [0 -1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 0 (11+ 2- 2-) (11+ 11+ 11+) [1 0 0] 2 (2- 2- 2-) (11+ 2- 11+) [0 -1 0] [1 0 2] [1 -1 1]
GridSetSharedPart: 1 (2- 2- 2-) (11+ 2- 11+) [0 -1 0] 0 (2- 11+ 2-) (11+ 11+ 11+) [0 1 0] [0 1 2] [1 1 1]
GridSetSharedPart: 1 (11+ 2- 2-) (11+ 31+ 11+) [1 0 0] 2 (2- 2- 2-) (2- 31+ 11+) [-1 0 0] [0 1 2] [1 1 1]
GridSetSharedPart: 2 (2- 2- 2-) (11+ 2- 11+) [0 -1 0] 0 (11+ 2- 2-) (11+ 11+ 11+) [1 0 0] [1 0 2] [-1 1 1]
GridSetSharedPart: 2 (2- 2- 2-) (2- 31+ 11+) [-1 0 0] 1 (11+ 2- 2-) (11+ 31+ 11+) [1 0 0] [0 1 2] [1 1 1]
###########################################################
# FEMStencilCreate: size
FEMStencilCreate: 8
# FEMStencilSetRow: row offset[ndim] var values[size]
FEMStencilSetRow: 0 [-1 -1 -1] 0 [ 4 -1 -1 0 -1 0 0 0 ]
FEMStencilSetRow: 1 [ 0 -1 -1] 0 [ -1 4 0 -1 0 -1 0 0 ]
FEMStencilSetRow: 2 [-1 0 -1] 0 [ -1 0 4 -1 0 0 -1 0 ]
FEMStencilSetRow: 3 [ 0 0 -1] 0 [ 0 -1 -1 4 0 0 0 -1 ]
FEMStencilSetRow: 4 [-1 -1 0] 0 [ -1 0 0 0 4 -1 -1 0 ]
FEMStencilSetRow: 5 [ 0 -1 0] 0 [ 0 -1 0 0 -1 4 0 -1 ]
FEMStencilSetRow: 6 [-1 0 0] 0 [ 0 0 -1 0 -1 0 4 -1 ]
FEMStencilSetRow: 7 [ 0 0 0] 0 [ 0 0 0 -1 0 -1 -1 4 ]
###########################################################
# ProcessPoolCreate: num_pools
ProcessPoolCreate: 1
# ProcessPoolSetPart: pool part
ProcessPoolSetPart: 0 0
ProcessPoolSetPart: 0 1
ProcessPoolSetPart: 0 2
# ProcessPoolCreate: num_pools
ProcessPoolCreate: 3
# ProcessPoolSetPart: pool part
ProcessPoolSetPart: 0 0
ProcessPoolSetPart: 1 1
ProcessPoolSetPart: 2 2
###########################################################