added: regression tests using CTest

git-svn-id: http://svn.sintef.no/trondheim/IFEM/trunk@934 e10b68d5-8a6e-419e-a041-bce267b0401d
This commit is contained in:
akva
2011-05-12 13:18:58 +00:00
committed by Knut Morten Okstad
parent ba4429b1d4
commit 181a29ae85
15 changed files with 266 additions and 57 deletions

View File

@@ -0,0 +1,11 @@
Cylinder-Axisymm.inp -2Daxisymm -nviz 5
Number of elements 8
Number of nodes 35
Number of dofs 70
Number of unknowns 56
L2-norm : 5.20881e-06
Max X-displacement : 9.21008e-06 node 22
Max Y-displacement : 7.37456e-20 node 22
Energy norm |u^h| = a(u^h,u^h)^0.5 : 17.0101
External energy ((f,u^h)+(t,u^h)^0.5 : 17.0101

View File

@@ -0,0 +1,13 @@
Cylinder-Lagrange.inp -checkRHS -lagrange
Number of elements 64
Number of nodes 5049
Number of dofs 15147
Number of constraints 425
Number of unknowns 13597
L2-norm : 0.00051814
Max X-displacement : 0.00146856 node 425
Max Y-displacement : 0.00329493 node 4652
Max Z-displacement : 0.00644642 node 4200
Energy norm |u^h| = a(u^h,u^h)^0.5 : 17.0665
External energy ((f,u^h)+(t,u^h)^0.5 : 17.3112

View File

@@ -0,0 +1,13 @@
Cylinder-NURBS.inp -checkRHS -nviz 5
Number of elements 64
Number of nodes 1260
Number of dofs 3780
Number of constraints 160
Number of unknowns 3197
L2-norm : 6.74404e-06
Max X-displacement : 1.85428e-05 node 222
Max Y-displacement : 9.27156e-06 node 645
Max Z-displacement : 2.17282e-18 node 580
Energy norm |u^h| = a(u^h,u^h)^0.5 : 17.0665
External energy ((f,u^h)+(t,u^h)^0.5 : 17.0665

View File

@@ -0,0 +1,13 @@
Cylinder-Spectral.inp -checkRHS -spectral
Number of elements 64
Number of nodes 5049
Number of dofs 15147
Number of constraints 425
Number of unknowns 13597
L2-norm : 6.68966e-06
Max X-displacement : 1.85424e-05 node 3383
Max Y-displacement : 9.27122e-06 node 570
Max Z-displacement : 1.33734e-18 node 3926
Energy norm |u^h| = a(u^h,u^h)^0.5 : 17.0665
External energy ((f,u^h)+(t,u^h)^0.5 : 17.0665

View File

@@ -0,0 +1,14 @@
Hole2D-Lagrange.inp -2D -lagrange
Number of elements 32
Number of nodes 325
Number of dofs 650
Number of unknowns 624
L2-norm : 0.019797
Max X-displacement : 0.0465164 node 325
Max Y-displacement : 0.0152664 node 301
Energy norm |u^h| = a(u^h,u^h)^0.5 : 1.29956
External energy ((f,u^h)+(t,u^h)^0.5 : 1.29956
Exact norm |u| = a(u,u)^0.5 : 1.29959
Exact error a(e,e)^0.5, e=u-u^h : 0.0112431
Exact relative error (%) : 0.865124

View File

@@ -0,0 +1,14 @@
Hole2D-NURBS.inp -2D -nviz 4
Number of elements 32
Number of nodes 77
Number of dofs 154
Number of unknowns 140
L2-norm : 0.0204072
Max X-displacement : 0.0465281 node 77
Max Y-displacement : 0.0152723 node 67
Energy norm |u^h| = a(u^h,u^h)^0.5 : 1.29947
External energy ((f,u^h)+(t,u^h)^0.5 : 1.29947
Exact norm |u| = a(u,u)^0.5 : 1.29959
Exact error a(e,e)^0.5, e=u-u^h : 0.0185057
Exact relative error (%) : 1.42396

View File

@@ -0,0 +1,14 @@
Hole2D-Spectral.inp -2D -spectral
Number of elements 32
Number of nodes 325
Number of dofs 650
Number of unknowns 624
L2-norm : 0.0198122
Max X-displacement : 0.0465176 node 325
Max Y-displacement : 0.0152633 node 301
Energy norm |u^h| = a(u^h,u^h)^0.5 : 1.29954
External energy ((f,u^h)+(t,u^h)^0.5 : 1.29954
Exact norm |u| = a(u,u)^0.5 : 1.29989
Exact error a(e,e)^0.5, e=u-u^h : 0.0264407
Exact relative error (%) : 2.03407

View File

@@ -0,0 +1,12 @@
PipeJoint-Lagrange.inp -lagrange
Number of elements 12
Number of nodes 166
Number of dofs 498
Number of unknowns 402
L2-norm : 0.0672723
Max X-displacement : 0.297278 node 152
Max Y-displacement : 0.0947172 node 125
Max Z-displacement : 0.0110647 node 78
Energy norm |u^h| = a(u^h,u^h)^0.5 : 41532.7
External energy ((f,u^h)+(t,u^h)^0.5 : 41532.7

View File

@@ -0,0 +1,12 @@
PipeJoint-NURBS.inp -nu 7 -nv 7
Number of elements 12
Number of nodes 166
Number of dofs 498
Number of unknowns 402
L2-norm : 0.0707423
Max X-displacement : 0.295694 node 152
Max Y-displacement : 0.100096 node 3
Max Z-displacement : 0.0302177 node 78
Energy norm |u^h| = a(u^h,u^h)^0.5 : 41649
External energy ((f,u^h)+(t,u^h)^0.5 : 41649

View File

@@ -0,0 +1,38 @@
PipeJoint-vibration.inp -nu 7 -nv 7 -free -eig 4 -nev 16 -ncv 32
Number of elements 12
Number of nodes 166
Number of dofs 498
Number of unknowns 498
1 -6.24427e-06
2 -4.26166e-06
3 -3.90673e-06
4 -2.26004e-06
5 4.29228e-07
6 4.98672e-06
7 7.45855
8 7.80118
9 11.7379
10 13.5283
11 15.9218
12 16.62
13 21.4777
14 23.4314
15 27.2659
16 29.3211
Row 1: -1.53930D-09 2.89397D+04
Row 2: -7.16996D-10 1.41223D+04
Row 3: -6.02542D-10 3.29836D+04
Row 4: -2.01646D-10 7.22619D+04
Row 5: 7.27336D-12 1.09739D+06
Row 6: 9.81725D-10 1.57573D+04
Row 7: 2.19619D+03 1.84106D-07
Row 8: 2.40260D+03 4.90235D-07
Row 9: 5.43926D+03 2.56335D-08
Row 10: 7.22517D+03 2.05575D-07
Row 11: 1.00079D+04 1.32816D-08
Row 12: 1.09048D+04 2.90698D-07
Row 13: 1.82111D+04 1.72809D-08
Row 14: 2.16749D+04 3.25351D-09
Row 15: 2.93495D+04 8.51679D-08
Row 16: 3.39407D+04 4.22339D-08

View File

@@ -0,0 +1,33 @@
SquarePlate-Lagrange.inp -eig 5 -nev 20 -ncv 40 -shift 2.0e-4 -nGauss 3 -lagrange
Number of elements 49
Number of nodes 675
Number of dofs 2025
Number of unknowns 1966
L2-norm : 3.24332
Max X-displacement : 9.15751 node 585
Max Y-displacement : 2.74725 node 436
Max Z-displacement : 0.0137363 node 83
Energy norm |u^h| = a(u^h,u^h)^0.5 : 9.56949
External energy ((f,u^h)+(t,u^h)^0.5 : 9.56949
Mode Eigenvalue
1 0.000397498
2 0.000643834
3 0.00123561
4 0.0016299
5 0.00199837
6 0.00221839
7 0.00257798
8 0.00289996
9 0.00365368
10 0.00382284
11 0.00429388
12 0.00434341
13 0.00451961
14 0.00529737
15 0.00555164
16 0.00591268
17 0.00615693
18 0.00676318
19 0.00706523
20 0.00719485

View File

@@ -0,0 +1,33 @@
SquarePlate-Spectral.inp -eig 5 -nev 20 -ncv 40 -shift 2.0e-4 -nGauss 3 -spectral
Number of elements 49
Number of nodes 675
Number of dofs 2025
Number of unknowns 1966
L2-norm : 3.24332
Max X-displacement : 9.15751 node 15
Max Y-displacement : 2.74725 node 675
Max Z-displacement : 0.0137363 node 141
Energy norm |u^h| = a(u^h,u^h)^0.5 : 9.56949
External energy ((f,u^h)+(t,u^h)^0.5 : 9.56949
Mode Eigenvalue
1 0.000397885
2 0.000646211
3 0.00124808
4 0.00163378
5 0.00201232
6 0.00225966
7 0.00258407
8 0.00294378
9 0.0037461
10 0.0038357
11 0.00439048
12 0.00439077
13 0.00452341
14 0.00543184
15 0.00566056
16 0.00605423
17 0.00633285
18 0.00694727
19 0.00720034
20 0.00723013

View File

@@ -0,0 +1,33 @@
SquarePlate-Splines.inp -eig 5 -nev 20 -ncv 40 -shift 2.0e-4 -nGauss 3 -nviz 3
Number of elements 49
Number of nodes 243
Number of dofs 729
Number of unknowns 694
L2-norm : 3.3533
Max X-displacement : 9.15751 node 198
Max Y-displacement : 2.74725 node 154
Max Z-displacement : 0.0137363 node 51
Energy norm |u^h| = a(u^h,u^h)^0.5 : 9.56949
External energy ((f,u^h)+(t,u^h)^0.5 : 9.56949
Mode Eigenvalue
1 0.000417151
2 0.000845558
3 0.00203991
4 0.00270478
5 0.00335392
6 0.0036516
7 0.00678568
8 0.00809802
9 0.00942794
10 0.0101638
11 0.0125943
12 0.0211415
13 0.0219982
14 0.0254907
15 0.0320796
16 0.032728
17 0.0345402
18 0.0417065
19 0.0436573
20 0.0618522

View File

@@ -1,57 +0,0 @@
#!/bin/sh
# $Id$
##################################################################
# This script defines a set of sample simulation cases that
# is used to verify the integrity of an IFEM-based simulator.
# Copy this file to a sub-folder Test in your App-directory and
# insert the simulations that you want to use as regression tests.
##################################################################
# Define the name of the executable here
mysim=LinEl
run () {
# This function runs a simulation with the specified options,
# pipes the terminal output to a log-file, and compares it
# with a previous simulation stored in the Reference folder.
inp=$1
log=`basename $1 .inp`.log
echo Running $inp ...
shift
time -f "real time %E, user time %U, system time %S" \
../../../Release/bin/$mysim $inp $* > $log
if [ ! -e Reference/$log ]; then
mv $log Reference
elif cmp -s $log Reference/$log; then
echo Ok
else
echo "Warning: Discrepancies between current run and reference."
diff $log Reference
fi
}
if [ ! -d Reference ]; then mkdir Reference; fi
#####################################
# Enter the various cases below:
# Format: run <inputfile> [<options>]
#####################################
run Hole2D-NURBS.inp -2D -vtf 1 -nviz 4
run Hole2D-Lagrange.inp -2D -vtf 1 -lagrange
run Hole2D-Spectral.inp -2D -vtf 1 -spectral
run Cylinder-NURBS.inp -checkRHS -vtf 1 -nviz 5
run Cylinder-Lagrange.inp -checkRHS -vtf 1 -lagrange
run Cylinder-Spectral.inp -checkRHS -vtf 1 -spectral
run Cylinder-Axisymm.inp -2Daxisymm -vtf 1 -nviz 5
eigOpt="-eig 5 -nev 20 -ncv 40 -shift 2.0e-4"
run SquarePlate-Splines.inp $eigOpt -nGauss 3 -vtf 1 -nviz 3
run SquarePlate-Lagrange.inp $eigOpt -nGauss 3 -vtf 1 -lagrange
run SquarePlate-Spectral.inp $eigOpt -nGauss 3 -vtf 1 -spectral
run PipeJoint-vibration.inp -vtf 1 -nu 7 -nv 7 -free -eig 4 -nev 16 -ncv 32
run PipeJoint-NURBS.inp -vtf 1 -nu 7 -nv 7
run PipeJoint-Lagrange.inp -vtf 1 -lagrange

View File

@@ -21,6 +21,8 @@ ELSE(CMAKE_CXX_COMPILER MATCHES icpc)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_CBLAS")
ENDIF(CMAKE_CXX_COMPILER MATCHES icpc)
ENABLE_TESTING()
# Add local modules
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
${CMAKE_SOURCE_DIR}/cmake/Modules)
@@ -141,6 +143,17 @@ FILE(GLOB_RECURSE LinEl_SRCS
ADD_EXECUTABLE(LinEl ${LinEl_SRCS})
TARGET_LINK_LIBRARIES(LinEl IFEM ${DEPLIBS})
# Tests
FILE(GLOB_RECURSE LINEL_TESTFILES "${PROJECT_SOURCE_DIR}/Apps/LinearElasticity/Test/*.reg")
FOREACH(TESTFILE ${LINEL_TESTFILES})
ADD_TEST(${TESTFILE} ${PROJECT_SOURCE_DIR}/test/regtest.sh "${CMAKE_BINARY_DIR}/${EXECUTABLE_OUTPUT_PATH}/LinEl" "${TESTFILE}")
ENDFOREACH()
FILE(GLOB_RECURSE POISSON_TESTFILES "${PROJECT_SOURCE_DIR}/Apps/Poisson/Test/*.reg")
FOREACH(TESTFILE ${POISSON_TESTFILES})
ADD_TEST(${TESTFILE} ${PROJECT_SOURCE_DIR}/test/regtest.sh "${CMAKE_BINARY_DIR}/${EXECUTABLE_OUTPUT_PATH}/Poisson" "${TESTFILE}")
ENDFOREACH()
IF(NOT IFEM_INSTALL_PREFIX)
SET(IFEM_INSTALL_PREFIX $ENV{HOME})
ENDIF(NOT IFEM_INSTALL_PREFIX)