[cig-commits] r4343 - in long/3D/Gale/trunk/src/StGermain: .
Discretisation/Geometry/tests
walter at geodynamics.org
walter at geodynamics.org
Thu Aug 17 17:17:48 PDT 2006
Author: walter
Date: 2006-08-17 17:17:47 -0700 (Thu, 17 Aug 2006)
New Revision: 4343
Modified:
long/3D/Gale/trunk/src/StGermain/
long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/tests/testTensorMath.0of1.expected
long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/tests/testTensorMath.c
Log:
r2716 at earth: boo | 2006-08-17 17:14:25 -0700
r2670 at earth (orig r3751): KathleenHumble | 2006-08-06 21:56:57 -0700
Added in a test for the iegenvector/eigenvalue sort function:
EigenvectorList_Sort
for 2 and 3D.
Property changes on: long/3D/Gale/trunk/src/StGermain
___________________________________________________________________
Name: svk:merge
- 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2715
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3750
+ 1ef209d2-b310-0410-a72d-e20c9eb0015c:/cig:2716
afb6c753-b9d0-0310-b4e7-dbd8d91cdd35:/trunk/StGermain:3751
Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/tests/testTensorMath.0of1.expected
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/tests/testTensorMath.0of1.expected 2006-08-18 00:17:45 UTC (rev 4342)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/tests/testTensorMath.0of1.expected 2006-08-18 00:17:47 UTC (rev 4343)
@@ -1,4 +1,4 @@
-StGermain Framework revision 3716. Copyright (C) 2003-2005 VPAC.
+StGermain Framework revision 3750. Copyright (C) 2003-2005 VPAC.
****************************************
Check StGermain_nSymmetricTensorVectorComponents function
@@ -243,6 +243,35 @@
(1,0): 3 = 3 (1,1): 1 = 1 (1,2): 5 = 5
(2,0): 4 = 4 (2,1): 5 = 5 (2,2): 2 = 2
+/*************************************/
+Test function EigenvectorList_Sort
+ 3-D
+Unsorted eigenvectorList
+eigenvectorList[0].eigenvalue = 4
+eigenvectorList[1].eigenvalue = -1
+eigenvectorList[2].eigenvalue = 1
+eigenvectorList[0].vector = { 0.577, 0.577, 0.577 }
+eigenvectorList[1].vector = { -0.707, 0, 0.707 }
+eigenvectorList[2].vector = { 0.408, -0.816, 0.408 }
+Sorted eigenvectorList
+eigenvectorList[0].eigenvalue = -1
+eigenvectorList[1].eigenvalue = 1
+eigenvectorList[2].eigenvalue = 4
+eigenvectorList[0].vector = { -0.707, 0, 0.707 }
+eigenvectorList[1].vector = { 0.408, -0.816, 0.408 }
+eigenvectorList[2].vector = { 0.577, 0.577, 0.577 }
+2-D
+Unsorted eigenvectorList
+eigenvectorList[0].eigenvalue = 6
+eigenvectorList[1].eigenvalue = 4
+eigenvectorList[0].vector = { 0.707, 0.707 }
+eigenvectorList[1].vector = { 0.707, -0.707 }
+Sorted eigenvectorList
+eigenvectorList[0].eigenvalue = 4
+eigenvectorList[1].eigenvalue = 6
+eigenvectorList[0].vector = { 0.707, -0.707 }
+eigenvectorList[1].vector = { 0.707, 0.707 }
+
/**************** Test Eigenvector 1 *********************/
2D Case from Kresig, p. 371f
Modified: long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/tests/testTensorMath.c
===================================================================
--- long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/tests/testTensorMath.c 2006-08-18 00:17:45 UTC (rev 4342)
+++ long/3D/Gale/trunk/src/StGermain/Discretisation/Geometry/tests/testTensorMath.c 2006-08-18 00:17:47 UTC (rev 4343)
@@ -409,6 +409,81 @@
Journal_Printf( stream, "(2,1): %d = %d ", ST3D_12, SymmetricTensor_TensorMap(2,1,3));
Journal_Printf( stream, "(2,2): %d = %d\n", ST3D_22, SymmetricTensor_TensorMap(2,2,3));
+ Journal_Printf(stream, "\n/*************************************/\n");
+ Journal_Printf( stream, "Test function EigenvectorList_Sort\n");
+ // Matrix that gives eigenvalues and vectors
+ //| 1.000 1.000 2.000 |
+ //| 1.000 2.000 1.000 |
+ //| 2.000 1.000 1.000 |
+ Journal_Printf( stream, " 3-D\n");
+ eigenvectorList[0].eigenvalue = 4;
+ eigenvectorList[1].eigenvalue = -1;
+ eigenvectorList[2].eigenvalue = 1;
+
+ eigenvectorList[0].vector[0] = 0.577;
+ eigenvectorList[0].vector[1] = 0.577;
+ eigenvectorList[0].vector[2] = 0.577;
+
+ eigenvectorList[1].vector[0] = -0.707;
+ eigenvectorList[1].vector[1] = 0;
+ eigenvectorList[1].vector[2] = 0.707;
+
+ eigenvectorList[2].vector[0] = 0.408;
+ eigenvectorList[2].vector[1] = -0.816;
+ eigenvectorList[2].vector[2] = 0.408;
+
+ Journal_Printf( stream, "Unsorted eigenvectorList\n");
+ Journal_PrintValue( stream, eigenvectorList[0].eigenvalue );
+ Journal_PrintValue( stream, eigenvectorList[1].eigenvalue );
+ Journal_PrintValue( stream, eigenvectorList[2].eigenvalue );
+
+ Journal_PrintArray( stream, eigenvectorList[0].vector, 3 );
+ Journal_PrintArray( stream, eigenvectorList[1].vector, 3 );
+ Journal_PrintArray( stream, eigenvectorList[2].vector, 3 );
+
+ EigenvectorList_Sort( eigenvectorList, 3);
+
+ Journal_Printf( stream, "Sorted eigenvectorList\n");
+
+ Journal_PrintValue( stream, eigenvectorList[0].eigenvalue );
+ Journal_PrintValue( stream, eigenvectorList[1].eigenvalue );
+ Journal_PrintValue( stream, eigenvectorList[2].eigenvalue );
+
+ Journal_PrintArray( stream, eigenvectorList[0].vector, 3 );
+ Journal_PrintArray( stream, eigenvectorList[1].vector, 3 );
+ Journal_PrintArray( stream, eigenvectorList[2].vector, 3 );
+
+ Journal_Printf( stream, "2-D\n");
+
+ // Matrix that gives eigenvalues and vectors
+ //| 5.000 1.000 |
+ //| 1.000 5.000 |
+
+ eigenvectorList[0].eigenvalue = 6;
+ eigenvectorList[1].eigenvalue = 4;
+
+ eigenvectorList[0].vector[0] = 0.707;
+ eigenvectorList[0].vector[1] = 0.707;
+
+ eigenvectorList[1].vector[0] = 0.707;
+ eigenvectorList[1].vector[1] = -0.707;
+
+ Journal_Printf( stream, "Unsorted eigenvectorList\n");
+ Journal_PrintValue( stream, eigenvectorList[0].eigenvalue );
+ Journal_PrintValue( stream, eigenvectorList[1].eigenvalue );
+
+ Journal_PrintArray( stream, eigenvectorList[0].vector, 2 );
+ Journal_PrintArray( stream, eigenvectorList[1].vector, 2 );
+
+ EigenvectorList_Sort( eigenvectorList, 2);
+
+ Journal_Printf( stream, "Sorted eigenvectorList\n");
+ Journal_PrintValue( stream, eigenvectorList[0].eigenvalue );
+ Journal_PrintValue( stream, eigenvectorList[1].eigenvalue );
+
+ Journal_PrintArray( stream, eigenvectorList[0].vector, 2 );
+ Journal_PrintArray( stream, eigenvectorList[1].vector, 2 );
+
Journal_Printf(stream, "\n/**************** Test Eigenvector 1 *********************/\n");
Journal_Printf( stream, "2D Case from Kresig, p. 371f\n\n");
symmTensor[0] = -5;
@@ -473,10 +548,10 @@
/* Test Matrix Solve */
dim = 2;
- tensorArray[ MAP_TENSOR( 0, 0, dim ) ] = 10;
- tensorArray[ MAP_TENSOR( 0, 1, dim ) ] = 11;
- tensorArray[ MAP_TENSOR( 1, 0, dim ) ] = 12;
- tensorArray[ MAP_TENSOR( 1, 1, dim ) ] = 13;
+ tensorArray[ FT2D_00 ] = 10;
+ tensorArray[ FT2D_01 ] = 11;
+ tensorArray[ FT2D_10 ] = 12;
+ tensorArray[ FT2D_11 ] = 13;
Journal_PrintTensorArray( stream, tensorArray, dim );
rightHandSide[0] = 24;
@@ -487,15 +562,15 @@
Journal_PrintArray( stream, solution, dim );
dim = 3;
- tensorArray[ MAP_TENSOR( 0, 0, dim ) ] = 10;
- tensorArray[ MAP_TENSOR( 0, 1, dim ) ] = 11;
- tensorArray[ MAP_TENSOR( 0, 2, dim ) ] = 12;
- tensorArray[ MAP_TENSOR( 1, 0, dim ) ] = 13;
- tensorArray[ MAP_TENSOR( 1, 1, dim ) ] = 14;
- tensorArray[ MAP_TENSOR( 1, 2, dim ) ] = 15;
- tensorArray[ MAP_TENSOR( 2, 0, dim ) ] = 16;
- tensorArray[ MAP_TENSOR( 2, 1, dim ) ] = 17;
- tensorArray[ MAP_TENSOR( 2, 2, dim ) ] = 19;
+ tensorArray[ FT3D_00 ] = 10;
+ tensorArray[ FT3D_01 ] = 11;
+ tensorArray[ FT3D_02 ] = 12;
+ tensorArray[ FT3D_10 ] = 13;
+ tensorArray[ FT3D_11 ] = 14;
+ tensorArray[ FT3D_12 ] = 15;
+ tensorArray[ FT3D_20 ] = 16;
+ tensorArray[ FT3D_21 ] = 17;
+ tensorArray[ FT3D_22 ] = 19;
Journal_PrintTensorArray( stream, tensorArray, dim );
rightHandSide[0] = 24;
More information about the cig-commits
mailing list