Changed the rhs in several TEST_sstruct/periodic runs (#291)
The previous -rhsone option on tests 80-95 resulted in CG solving the problem exactly in 4 or 5 iterations. This required the code to be bitwise accurate to pass the tests, which is not reasonable here. The new cosine-based rhs produces more typical convergence for CG on a Laplacian problem.
This commit is contained in:
parent
5122196348
commit
7859aeee34
@ -8,95 +8,65 @@
|
||||
# Check SetNeighborBox for periodic problems (2D)
|
||||
#=============================================================================
|
||||
|
||||
mpirun -np 1 ./sstruct -in sstruct.in.periodic.2D -r 20 20 1 \
|
||||
-solver 11 > periodic.out.20
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.2D -r 20 10 1 -P 1 2 1 \
|
||||
-solver 11 > periodic.out.21
|
||||
mpirun -np 1 ./sstruct -in sstruct.in.periodic.2D -r 20 20 1 -solver 11 > periodic.out.20
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.2D -r 20 10 1 -P 1 2 1 -solver 11 > periodic.out.21
|
||||
|
||||
#=============================================================================
|
||||
# Check SetNeighborBox for periodic problems (3D)
|
||||
#=============================================================================
|
||||
|
||||
mpirun -np 1 ./sstruct -in sstruct.in.periodic -r 20 20 20 \
|
||||
-solver 11 > periodic.out.30
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic -r 20 20 10 -P 1 1 2 \
|
||||
-solver 11 > periodic.out.31
|
||||
mpirun -np 1 ./sstruct -in sstruct.in.periodic -r 20 20 20 -solver 11 > periodic.out.30
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic -r 20 20 10 -P 1 1 2 -solver 11 > periodic.out.31
|
||||
|
||||
#=============================================================================
|
||||
# Check SysPFMG for power-of-two and non-power-of-two systems
|
||||
#=============================================================================
|
||||
|
||||
# power-of-two
|
||||
mpirun -np 1 ./sstruct -in sstruct.in.laps.periodic -r 16 16 1 -P 1 1 1 -solver 3 \
|
||||
> periodic.out.40
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.laps.periodic -r 8 16 1 -P 2 1 1 -solver 3 \
|
||||
> periodic.out.41
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.laps.periodic -r 16 8 1 -P 1 2 1 -solver 3 \
|
||||
> periodic.out.42
|
||||
mpirun -np 1 ./sstruct -in sstruct.in.laps.periodic -r 16 16 1 -P 1 1 1 -solver 3 > periodic.out.40
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.laps.periodic -r 8 16 1 -P 2 1 1 -solver 3 > periodic.out.41
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.laps.periodic -r 16 8 1 -P 1 2 1 -solver 3 > periodic.out.42
|
||||
|
||||
# non-power-of-two
|
||||
mpirun -np 1 ./sstruct -in sstruct.in.laps.periodic -r 22 22 1 -P 1 1 1 -solver 3 \
|
||||
> periodic.out.50
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.laps.periodic -r 11 22 1 -P 2 1 1 -solver 3 \
|
||||
> periodic.out.51
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.laps.periodic -r 22 11 1 -P 1 2 1 -solver 3 \
|
||||
> periodic.out.52
|
||||
mpirun -np 1 ./sstruct -in sstruct.in.laps.periodic -r 22 22 1 -P 1 1 1 -solver 3 > periodic.out.50
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.laps.periodic -r 11 22 1 -P 2 1 1 -solver 3 > periodic.out.51
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.laps.periodic -r 22 11 1 -P 1 2 1 -solver 3 > periodic.out.52
|
||||
|
||||
#=============================================================================
|
||||
# Check PFMG, SMG, and SysPFMG for problems with period larger than the grid
|
||||
#=============================================================================
|
||||
|
||||
# First check that sstruct and struct are the same here
|
||||
mpirun -np 2 ./struct -d 2 -n 8 16 1 -P 2 1 1 -p 16 0 0 -istart 0 0 0 \
|
||||
-solver 0 > periodic.out.60
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.bigA -r 1 2 1 -P 2 1 1 -rhsone \
|
||||
-solver 200 > periodic.out.61
|
||||
mpirun -np 2 ./struct -d 2 -n 8 16 1 -P 2 1 1 -p 16 0 0 -istart 0 0 0 \
|
||||
-solver 1 > periodic.out.62
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.bigA -r 1 2 1 -P 2 1 1 -rhsone \
|
||||
-solver 201 > periodic.out.63
|
||||
mpirun -np 2 ./struct -d 2 -n 8 16 1 -P 2 1 1 -p 16 0 0 -istart 0 0 0 -solver 0 > periodic.out.60
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.bigA -r 1 2 1 -P 2 1 1 -rhsone -solver 200 > periodic.out.61
|
||||
mpirun -np 2 ./struct -d 2 -n 8 16 1 -P 2 1 1 -p 16 0 0 -istart 0 0 0 -solver 1 > periodic.out.62
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.bigA -r 1 2 1 -P 2 1 1 -rhsone -solver 201 > periodic.out.63
|
||||
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.bigB -r 3 6 1 -P 2 1 1 -rhsone \
|
||||
-solver 200 > periodic.out.65
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.bigB -r 3 6 1 -P 2 1 1 -rhsone \
|
||||
-solver 201 > periodic.out.66
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.bigB -r 3 6 1 -P 2 1 1 -rhsone \
|
||||
-solver 3 > periodic.out.67
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.bigB -r 3 6 1 -P 2 1 1 -rhsone -solver 200 > periodic.out.65
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.bigB -r 3 6 1 -P 2 1 1 -rhsone -solver 201 > periodic.out.66
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.bigB -r 3 6 1 -P 2 1 1 -rhsone -solver 3 > periodic.out.67
|
||||
|
||||
#=============================================================================
|
||||
# Check that reverse communication used to AddValues still works
|
||||
#=============================================================================
|
||||
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.add -solver 218 -P 1 1 2 \
|
||||
> periodic.out.70
|
||||
mpirun -np 2 ./sstruct -in sstruct.in.periodic.add -solver 218 -P 1 1 2 > periodic.out.70
|
||||
|
||||
#=============================================================================
|
||||
# Check SetPeriodic for node/cell problems and STRUCT, SSTRUCT, PARCSR types
|
||||
#=============================================================================
|
||||
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellA -P 1 6 1 -solver 218 -rhsone \
|
||||
> periodic.out.80
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellA -P 1 6 1 -solver 18 -rhsone \
|
||||
> periodic.out.81
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellA -P 1 6 1 -solver 28 -rhsone \
|
||||
> periodic.out.82
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellB -P 1 6 1 -solver 218 -rhsone \
|
||||
> periodic.out.83
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellB -P 1 6 1 -solver 18 -rhsone \
|
||||
> periodic.out.84
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellB -P 1 6 1 -solver 28 -rhsone \
|
||||
> periodic.out.85
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellA -P 1 6 1 -solver 218 > periodic.out.80
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellA -P 1 6 1 -solver 18 > periodic.out.81
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellA -P 1 6 1 -solver 28 > periodic.out.82
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellB -P 1 6 1 -solver 218 > periodic.out.83
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellB -P 1 6 1 -solver 18 > periodic.out.84
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.cellB -P 1 6 1 -solver 28 > periodic.out.85
|
||||
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeA -P 1 6 1 -solver 218 -rhsone \
|
||||
> periodic.out.90
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeA -P 1 6 1 -solver 18 -rhsone \
|
||||
> periodic.out.91
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeA -P 1 6 1 -solver 28 -rhsone \
|
||||
> periodic.out.92
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeB -P 1 6 1 -solver 218 -rhsone \
|
||||
> periodic.out.93
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeB -P 1 6 1 -solver 18 -rhsone \
|
||||
> periodic.out.94
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeB -P 1 6 1 -solver 28 -rhsone \
|
||||
> periodic.out.95
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeA -P 1 6 1 -solver 218 > periodic.out.90
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeA -P 1 6 1 -solver 18 > periodic.out.91
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeA -P 1 6 1 -solver 28 > periodic.out.92
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeB -P 1 6 1 -solver 218 > periodic.out.93
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeB -P 1 6 1 -solver 18 > periodic.out.94
|
||||
mpirun -np 6 ./sstruct -in sstruct.in.periodic.nodeB -P 1 6 1 -solver 28 > periodic.out.95
|
||||
|
||||
|
||||
@ -71,42 +71,50 @@ Iterations = 69
|
||||
Final Relative Residual Norm = 8.673863e-07
|
||||
|
||||
# Output file: periodic.out.80
|
||||
Iterations = 4
|
||||
Final Relative Residual Norm = 0.000000e+00
|
||||
Iterations = 46
|
||||
Final Relative Residual Norm = 7.750679e-07
|
||||
|
||||
# Output file: periodic.out.81
|
||||
Iterations = 4
|
||||
Final Relative Residual Norm = 0.000000e+00
|
||||
Iterations = 46
|
||||
Final Relative Residual Norm = 7.750679e-07
|
||||
|
||||
# Output file: periodic.out.82
|
||||
Iterations = 4
|
||||
Final Relative Residual Norm = 0.000000e+00
|
||||
Iterations = 46
|
||||
Final Relative Residual Norm = 7.750679e-07
|
||||
|
||||
# Output file: periodic.out.83
|
||||
Iterations = 4
|
||||
Final Relative Residual Norm = 0.000000e+00
|
||||
Iterations = 46
|
||||
Final Relative Residual Norm = 7.750679e-07
|
||||
|
||||
# Output file: periodic.out.84
|
||||
Iterations = 46
|
||||
Final Relative Residual Norm = 7.750679e-07
|
||||
|
||||
# Output file: periodic.out.85
|
||||
Iterations = 4
|
||||
Final Relative Residual Norm = 0.000000e+00
|
||||
Iterations = 46
|
||||
Final Relative Residual Norm = 7.750679e-07
|
||||
|
||||
# Output file: periodic.out.90
|
||||
Iterations = 5
|
||||
Final Relative Residual Norm = 0.000000e+00
|
||||
Iterations = 48
|
||||
Final Relative Residual Norm = 8.594333e-07
|
||||
|
||||
# Output file: periodic.out.91
|
||||
Iterations = 5
|
||||
Final Relative Residual Norm = 0.000000e+00
|
||||
Iterations = 48
|
||||
Final Relative Residual Norm = 8.594333e-07
|
||||
|
||||
# Output file: periodic.out.92
|
||||
Iterations = 5
|
||||
Final Relative Residual Norm = 0.000000e+00
|
||||
Iterations = 48
|
||||
Final Relative Residual Norm = 8.594333e-07
|
||||
|
||||
# Output file: periodic.out.93
|
||||
Iterations = 5
|
||||
Final Relative Residual Norm = 0.000000e+00
|
||||
Iterations = 48
|
||||
Final Relative Residual Norm = 8.594333e-07
|
||||
|
||||
# Output file: periodic.out.94
|
||||
Iterations = 48
|
||||
Final Relative Residual Norm = 8.594333e-07
|
||||
|
||||
# Output file: periodic.out.95
|
||||
Iterations = 5
|
||||
Final Relative Residual Norm = 0.000000e+00
|
||||
Iterations = 48
|
||||
Final Relative Residual Norm = 8.594333e-07
|
||||
|
||||
|
||||
@ -92,8 +92,8 @@ TNUM="\
|
||||
50 51 52\
|
||||
60 61 62 63 65 66 67\
|
||||
70\
|
||||
80 81 82 83 85\
|
||||
90 91 92 93 95\
|
||||
80 81 82 83 84 85\
|
||||
90 91 92 93 94 95\
|
||||
"
|
||||
|
||||
for i in $TNUM
|
||||
|
||||
Loading…
Reference in New Issue
Block a user