mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
test_dilu: cosmetics
This commit is contained in:
committed by
Arne Morten Kvarving
parent
54b7f9c44f
commit
6ca84a16e1
@@ -52,27 +52,27 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUDiagIsCorrect2x2NoZeros, T, NumericTypes)
|
||||
row.insert(1);
|
||||
}
|
||||
|
||||
A[0][0][0][0]=3.0;
|
||||
A[0][0][0][1]=1.0;
|
||||
A[0][0][1][0]=2.0;
|
||||
A[0][0][1][1]=1.0;
|
||||
A[0][0][0][0] = 3.0;
|
||||
A[0][0][0][1] = 1.0;
|
||||
A[0][0][1][0] = 2.0;
|
||||
A[0][0][1][1] = 1.0;
|
||||
|
||||
A[0][1][0][0]=1.0;
|
||||
A[0][1][1][1]=1.0;
|
||||
A[0][1][0][0] = 1.0;
|
||||
A[0][1][1][1] = 1.0;
|
||||
|
||||
A[1][0][0][0]=2.0;
|
||||
A[1][0][1][1]=2.0;
|
||||
A[1][0][0][0] = 2.0;
|
||||
A[1][0][1][1] = 2.0;
|
||||
|
||||
|
||||
A[1][1][0][0]=-1.0;
|
||||
A[1][1][1][1]=-1.0;
|
||||
A[1][1][0][0] = -1.0;
|
||||
A[1][1][1][1] = -1.0;
|
||||
|
||||
|
||||
auto D_00 = A[0][0];
|
||||
auto D_00_inv = D_00;
|
||||
D_00_inv.invert();
|
||||
// D_11 = A_11 - L_10 D_00_inv U_01
|
||||
auto D_11 = A[1][1] - A[1][0]*D_00_inv*A[0][1];
|
||||
auto D_11 = A[1][1] - A[1][0] * D_00_inv * A[0][1];
|
||||
|
||||
Dune::SeqDilu<Matrix, Vector, Vector> seqdilu(A);
|
||||
|
||||
@@ -122,16 +122,16 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUDiagIsCorrect2x2, T, NumericTypes)
|
||||
}
|
||||
}
|
||||
|
||||
A[0][0][0][0]=3.0;
|
||||
A[0][0][0][1]=1.0;
|
||||
A[0][0][1][0]=2.0;
|
||||
A[0][0][1][1]=1.0;
|
||||
A[0][0][0][0] = 3.0;
|
||||
A[0][0][0][1] = 1.0;
|
||||
A[0][0][1][0] = 2.0;
|
||||
A[0][0][1][1] = 1.0;
|
||||
|
||||
A[0][1][0][0]=1.0;
|
||||
A[0][1][1][1]=1.0;
|
||||
A[0][1][0][0] = 1.0;
|
||||
A[0][1][1][1] = 1.0;
|
||||
|
||||
A[1][1][0][0]=-1.0;
|
||||
A[1][1][1][1]=-1.0;
|
||||
A[1][1][0][0] = -1.0;
|
||||
A[1][1][1][1] = -1.0;
|
||||
|
||||
|
||||
auto D_00 = A[0][0];
|
||||
@@ -188,20 +188,20 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUApplyIsCorrectNoZeros, T, NumericTypes)
|
||||
row.insert(1);
|
||||
}
|
||||
|
||||
A[0][0][0][0]=3.0;
|
||||
A[0][0][0][1]=1.0;
|
||||
A[0][0][1][0]=2.0;
|
||||
A[0][0][1][1]=1.0;
|
||||
A[0][0][0][0] = 3.0;
|
||||
A[0][0][0][1] = 1.0;
|
||||
A[0][0][1][0] = 2.0;
|
||||
A[0][0][1][1] = 1.0;
|
||||
|
||||
A[0][1][0][0]=1.0;
|
||||
A[0][1][1][1]=1.0;
|
||||
A[0][1][0][0] = 1.0;
|
||||
A[0][1][1][1] = 1.0;
|
||||
|
||||
A[1][0][0][0]=2.0;
|
||||
A[1][0][1][1]=2.0;
|
||||
A[1][0][0][0] = 2.0;
|
||||
A[1][0][1][1] = 2.0;
|
||||
|
||||
|
||||
A[1][1][0][0]=-1.0;
|
||||
A[1][1][1][1]=-1.0;
|
||||
A[1][1][0][0] = -1.0;
|
||||
A[1][1][1][1] = -1.0;
|
||||
|
||||
|
||||
Vector x(2);
|
||||
@@ -221,7 +221,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUApplyIsCorrectNoZeros, T, NumericTypes)
|
||||
auto D_00_inv = D_00;
|
||||
D_00_inv.invert();
|
||||
// D_11= A_11 - L_10 D_00_inv U_01
|
||||
auto D_11 = A[1][1] - A[1][0]*D_00_inv*A[0][1];
|
||||
auto D_11 = A[1][1] - A[1][0] * D_00_inv * A[0][1];
|
||||
auto D_11_inv = D_11;
|
||||
D_11_inv.invert();
|
||||
|
||||
@@ -251,7 +251,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUApplyIsCorrectNoZeros, T, NumericTypes)
|
||||
|
||||
// z_0 = y_0 - D_00_inv*A_01*z_1
|
||||
z[0] = y[0];
|
||||
auto temp = D_00_inv*A[0][1];
|
||||
auto temp = D_00_inv * A[0][1];
|
||||
temp.mmv(z[1], z[0]);
|
||||
|
||||
// x_k+1 = x_k + z
|
||||
@@ -299,16 +299,16 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUApplyIsCorrect1, T, NumericTypes)
|
||||
}
|
||||
}
|
||||
|
||||
A[0][0][0][0]=3.0;
|
||||
A[0][0][0][1]=1.0;
|
||||
A[0][0][1][0]=2.0;
|
||||
A[0][0][1][1]=1.0;
|
||||
A[0][0][0][0] = 3.0;
|
||||
A[0][0][0][1] = 1.0;
|
||||
A[0][0][1][0] = 2.0;
|
||||
A[0][0][1][1] = 1.0;
|
||||
|
||||
A[0][1][0][0]=1.0;
|
||||
A[0][1][1][1]=1.0;
|
||||
A[0][1][0][0] = 1.0;
|
||||
A[0][1][1][1] = 1.0;
|
||||
|
||||
A[1][1][0][0]=-1.0;
|
||||
A[1][1][1][1]=-1.0;
|
||||
A[1][1][0][0] = -1.0;
|
||||
A[1][1][1][1] = -1.0;
|
||||
|
||||
|
||||
Vector x(2);
|
||||
@@ -356,7 +356,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUApplyIsCorrect1, T, NumericTypes)
|
||||
|
||||
// z_0 = y_0 - D_00_inv*A_01*z_1
|
||||
z[0] = y[0];
|
||||
auto temp = D_00_inv*A[0][1];
|
||||
auto temp = D_00_inv * A[0][1];
|
||||
temp.mmv(z[1], z[0]);
|
||||
|
||||
// x_k+1 = x_k + z
|
||||
@@ -402,16 +402,16 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUApplyIsCorrect2, T, NumericTypes)
|
||||
}
|
||||
}
|
||||
|
||||
A[0][0][0][0]=3.0;
|
||||
A[0][0][0][1]=1.0;
|
||||
A[0][0][1][0]=2.0;
|
||||
A[0][0][1][1]=1.0;
|
||||
A[0][0][0][0] = 3.0;
|
||||
A[0][0][0][1] = 1.0;
|
||||
A[0][0][1][0] = 2.0;
|
||||
A[0][0][1][1] = 1.0;
|
||||
|
||||
A[1][1][0][0]=2.0;
|
||||
A[1][1][1][1]=2.0;
|
||||
A[1][1][0][0] = 2.0;
|
||||
A[1][1][1][1] = 2.0;
|
||||
|
||||
A[1][1][0][0]=-1.0;
|
||||
A[1][1][1][1]=-1.0;
|
||||
A[1][1][0][0] = -1.0;
|
||||
A[1][1][1][1] = -1.0;
|
||||
|
||||
Vector x(2);
|
||||
x[0][0] = 1.0;
|
||||
@@ -504,36 +504,61 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUDiagIsCorrect3x3, T, NumericTypes)
|
||||
for (auto row = A.createbegin(); row != A.createend(); ++row) {
|
||||
if (row.index() == 0) {
|
||||
row.insert(row.index());
|
||||
}
|
||||
else if (row.index() == 1) {
|
||||
} else if (row.index() == 1) {
|
||||
row.insert(row.index());
|
||||
row.insert(row.index() + 1);
|
||||
}
|
||||
else if (row.index() == 2) {
|
||||
} else if (row.index() == 2) {
|
||||
row.insert(row.index() - 1);
|
||||
row.insert(row.index());
|
||||
}
|
||||
}
|
||||
|
||||
A[0][0][0][0]=3.0; A[1][1][0][0]=1.0; A[1][2][0][0]=1.0;
|
||||
A[0][0][0][1]=1.0; A[1][1][0][1]=0.0; A[1][2][0][1]=0.0;
|
||||
A[0][0][0][2]=2.0; A[1][1][0][2]=1.0; A[1][2][0][2]=2.0;
|
||||
A[0][0][1][0]=2.0; A[1][1][1][0]=4.0; A[1][2][1][0]=0.0;
|
||||
A[0][0][1][1]=3.0; A[1][1][1][1]=1.0; A[1][2][1][1]=1.0;
|
||||
A[0][0][1][2]=1.0; A[1][1][1][2]=0.0; A[1][2][1][2]=1.0;
|
||||
A[0][0][2][0]=2.0; A[1][1][2][0]=3.0; A[1][2][2][0]=0.0;
|
||||
A[0][0][2][1]=1.0; A[1][1][2][1]=1.0; A[1][2][2][1]=1.0;
|
||||
A[0][0][2][2]=0.0; A[1][1][2][2]=3.0; A[1][2][2][2]=3.0;
|
||||
A[0][0][0][0] = 3.0;
|
||||
A[1][1][0][0] = 1.0;
|
||||
A[1][2][0][0] = 1.0;
|
||||
A[0][0][0][1] = 1.0;
|
||||
A[1][1][0][1] = 0.0;
|
||||
A[1][2][0][1] = 0.0;
|
||||
A[0][0][0][2] = 2.0;
|
||||
A[1][1][0][2] = 1.0;
|
||||
A[1][2][0][2] = 2.0;
|
||||
A[0][0][1][0] = 2.0;
|
||||
A[1][1][1][0] = 4.0;
|
||||
A[1][2][1][0] = 0.0;
|
||||
A[0][0][1][1] = 3.0;
|
||||
A[1][1][1][1] = 1.0;
|
||||
A[1][2][1][1] = 1.0;
|
||||
A[0][0][1][2] = 1.0;
|
||||
A[1][1][1][2] = 0.0;
|
||||
A[1][2][1][2] = 1.0;
|
||||
A[0][0][2][0] = 2.0;
|
||||
A[1][1][2][0] = 3.0;
|
||||
A[1][2][2][0] = 0.0;
|
||||
A[0][0][2][1] = 1.0;
|
||||
A[1][1][2][1] = 1.0;
|
||||
A[1][2][2][1] = 1.0;
|
||||
A[0][0][2][2] = 0.0;
|
||||
A[1][1][2][2] = 3.0;
|
||||
A[1][2][2][2] = 3.0;
|
||||
|
||||
A[2][1][0][0]=1.0; A[2][2][0][0]=1.0;
|
||||
A[2][1][0][1]=0.0; A[2][2][0][1]=3.0;
|
||||
A[2][1][0][2]=2.0; A[2][2][0][2]=2.0;
|
||||
A[2][1][1][0]=0.0; A[2][2][1][0]=2.0;
|
||||
A[2][1][1][1]=1.0; A[2][2][1][1]=1.0;
|
||||
A[2][1][1][2]=4.0; A[2][2][1][2]=3.0;
|
||||
A[2][1][2][0]=5.0; A[2][2][2][0]=3.0;
|
||||
A[2][1][2][1]=1.0; A[2][2][2][1]=1.0;
|
||||
A[2][1][2][2]=1.0; A[2][2][2][2]=2.0;
|
||||
A[2][1][0][0] = 1.0;
|
||||
A[2][2][0][0] = 1.0;
|
||||
A[2][1][0][1] = 0.0;
|
||||
A[2][2][0][1] = 3.0;
|
||||
A[2][1][0][2] = 2.0;
|
||||
A[2][2][0][2] = 2.0;
|
||||
A[2][1][1][0] = 0.0;
|
||||
A[2][2][1][0] = 2.0;
|
||||
A[2][1][1][1] = 1.0;
|
||||
A[2][2][1][1] = 1.0;
|
||||
A[2][1][1][2] = 4.0;
|
||||
A[2][2][1][2] = 3.0;
|
||||
A[2][1][2][0] = 5.0;
|
||||
A[2][2][2][0] = 3.0;
|
||||
A[2][1][2][1] = 1.0;
|
||||
A[2][2][2][1] = 1.0;
|
||||
A[2][1][2][2] = 1.0;
|
||||
A[2][2][2][2] = 2.0;
|
||||
|
||||
|
||||
auto D_00 = A[0][0];
|
||||
@@ -544,7 +569,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUDiagIsCorrect3x3, T, NumericTypes)
|
||||
auto D_11_inv = D_11;
|
||||
D_11_inv.invert();
|
||||
// D_22 = A_22 - A_20 D_00_inv A_02 - A_21 D_11_inv A_12 = A_22 - A_21 D_11_inv A_12
|
||||
auto D_22 = A[2][2] - A[2][1]*D_11_inv*A[1][2];
|
||||
auto D_22 = A[2][2] - A[2][1] * D_11_inv * A[1][2];
|
||||
auto D_22_inv = D_22;
|
||||
D_22_inv.invert();
|
||||
|
||||
@@ -602,46 +627,83 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUApplyIsCorrect3, T, NumericTypes)
|
||||
for (auto row = A.createbegin(); row != A.createend(); ++row) {
|
||||
if (row.index() == 0) {
|
||||
row.insert(row.index());
|
||||
}
|
||||
else if (row.index() == 1) {
|
||||
} else if (row.index() == 1) {
|
||||
row.insert(row.index());
|
||||
row.insert(row.index() + 1);
|
||||
}
|
||||
else if (row.index() == 2) {
|
||||
} else if (row.index() == 2) {
|
||||
row.insert(row.index() - 1);
|
||||
row.insert(row.index());
|
||||
}
|
||||
}
|
||||
|
||||
A[0][0][0][0]=3.0; A[1][1][0][0]=1.0; A[1][2][0][0]=1.0;
|
||||
A[0][0][0][1]=1.0; A[1][1][0][1]=0.0; A[1][2][0][1]=0.0;
|
||||
A[0][0][0][2]=2.0; A[1][1][0][2]=1.0; A[1][2][0][2]=2.0;
|
||||
A[0][0][1][0]=2.0; A[1][1][1][0]=4.0; A[1][2][1][0]=0.0;
|
||||
A[0][0][1][1]=3.0; A[1][1][1][1]=1.0; A[1][2][1][1]=1.0;
|
||||
A[0][0][1][2]=1.0; A[1][1][1][2]=0.0; A[1][2][1][2]=1.0;
|
||||
A[0][0][2][0]=2.0; A[1][1][2][0]=3.0; A[1][2][2][0]=0.0;
|
||||
A[0][0][2][1]=1.0; A[1][1][2][1]=1.0; A[1][2][2][1]=1.0;
|
||||
A[0][0][2][2]=0.0; A[1][1][2][2]=3.0; A[1][2][2][2]=3.0;
|
||||
A[0][0][0][0] = 3.0;
|
||||
A[1][1][0][0] = 1.0;
|
||||
A[1][2][0][0] = 1.0;
|
||||
A[0][0][0][1] = 1.0;
|
||||
A[1][1][0][1] = 0.0;
|
||||
A[1][2][0][1] = 0.0;
|
||||
A[0][0][0][2] = 2.0;
|
||||
A[1][1][0][2] = 1.0;
|
||||
A[1][2][0][2] = 2.0;
|
||||
A[0][0][1][0] = 2.0;
|
||||
A[1][1][1][0] = 4.0;
|
||||
A[1][2][1][0] = 0.0;
|
||||
A[0][0][1][1] = 3.0;
|
||||
A[1][1][1][1] = 1.0;
|
||||
A[1][2][1][1] = 1.0;
|
||||
A[0][0][1][2] = 1.0;
|
||||
A[1][1][1][2] = 0.0;
|
||||
A[1][2][1][2] = 1.0;
|
||||
A[0][0][2][0] = 2.0;
|
||||
A[1][1][2][0] = 3.0;
|
||||
A[1][2][2][0] = 0.0;
|
||||
A[0][0][2][1] = 1.0;
|
||||
A[1][1][2][1] = 1.0;
|
||||
A[1][2][2][1] = 1.0;
|
||||
A[0][0][2][2] = 0.0;
|
||||
A[1][1][2][2] = 3.0;
|
||||
A[1][2][2][2] = 3.0;
|
||||
|
||||
A[2][1][0][0]=1.0; A[2][2][0][0]=1.0;
|
||||
A[2][1][0][1]=0.0; A[2][2][0][1]=3.0;
|
||||
A[2][1][0][2]=2.0; A[2][2][0][2]=2.0;
|
||||
A[2][1][1][0]=0.0; A[2][2][1][0]=2.0;
|
||||
A[2][1][1][1]=1.0; A[2][2][1][1]=1.0;
|
||||
A[2][1][1][2]=4.0; A[2][2][1][2]=3.0;
|
||||
A[2][1][2][0]=5.0; A[2][2][2][0]=3.0;
|
||||
A[2][1][2][1]=1.0; A[2][2][2][1]=1.0;
|
||||
A[2][1][2][2]=1.0; A[2][2][2][2]=2.0;
|
||||
A[2][1][0][0] = 1.0;
|
||||
A[2][2][0][0] = 1.0;
|
||||
A[2][1][0][1] = 0.0;
|
||||
A[2][2][0][1] = 3.0;
|
||||
A[2][1][0][2] = 2.0;
|
||||
A[2][2][0][2] = 2.0;
|
||||
A[2][1][1][0] = 0.0;
|
||||
A[2][2][1][0] = 2.0;
|
||||
A[2][1][1][1] = 1.0;
|
||||
A[2][2][1][1] = 1.0;
|
||||
A[2][1][1][2] = 4.0;
|
||||
A[2][2][1][2] = 3.0;
|
||||
A[2][1][2][0] = 5.0;
|
||||
A[2][2][2][0] = 3.0;
|
||||
A[2][1][2][1] = 1.0;
|
||||
A[2][2][2][1] = 1.0;
|
||||
A[2][1][2][2] = 1.0;
|
||||
A[2][2][2][2] = 2.0;
|
||||
|
||||
Vector x(3);
|
||||
x[0][0] = 1.0; x[1][0] = 1.0; x[2][0] = 1.0;
|
||||
x[0][1] = 2.0; x[1][1] = 3.0; x[2][1] = 0.0;
|
||||
x[0][2] = 3.0; x[1][2] = 2.0; x[2][2] = 2.0;
|
||||
x[0][0] = 1.0;
|
||||
x[1][0] = 1.0;
|
||||
x[2][0] = 1.0;
|
||||
x[0][1] = 2.0;
|
||||
x[1][1] = 3.0;
|
||||
x[2][1] = 0.0;
|
||||
x[0][2] = 3.0;
|
||||
x[1][2] = 2.0;
|
||||
x[2][2] = 2.0;
|
||||
|
||||
Vector b(3);
|
||||
b[0][0] = 2.0; b[1][0] = 2.0; b[2][0] = 0.0;
|
||||
b[0][1] = 1.0; b[1][1] = 3.0; b[2][1] = 2.0;
|
||||
b[0][2] = 2.0; b[1][2] = 2.0; b[2][2] = 1.0;
|
||||
b[0][0] = 2.0;
|
||||
b[1][0] = 2.0;
|
||||
b[2][0] = 0.0;
|
||||
b[0][1] = 1.0;
|
||||
b[1][1] = 3.0;
|
||||
b[2][1] = 2.0;
|
||||
b[0][2] = 2.0;
|
||||
b[1][2] = 2.0;
|
||||
b[2][2] = 1.0;
|
||||
|
||||
|
||||
// D_00 = A_00
|
||||
@@ -655,7 +717,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUApplyIsCorrect3, T, NumericTypes)
|
||||
D_11_inv.invert();
|
||||
// D_22 = A_22 - A_20 D_00_inv A_02 - A_21 D_11_inv A_12
|
||||
// = A_22 - A_21 D_11_inv A_12
|
||||
auto D_22 = A[2][2] - A[2][1]*D_11_inv*A[1][2];
|
||||
auto D_22 = A[2][2] - A[2][1] * D_11_inv * A[1][2];
|
||||
auto D_22_inv = D_22;
|
||||
D_22_inv.invert();
|
||||
|
||||
@@ -693,7 +755,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUApplyIsCorrect3, T, NumericTypes)
|
||||
|
||||
// z_1 = y_1 - D_11_inv*A_12*z_2
|
||||
z[1] = y[1];
|
||||
auto temp = D_11_inv*A[1][2];
|
||||
auto temp = D_11_inv * A[1][2];
|
||||
temp.mmv(z[2], z[1]);
|
||||
|
||||
// z_0 = y_0 - D_00_inv(A_01*z_1 + A_02*z_2)
|
||||
@@ -741,13 +803,13 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(SeqDILUApplyIsEqualToDuneSeqILUApply, T, NumericTy
|
||||
row.insert(row.index());
|
||||
}
|
||||
|
||||
A[0][0][0][0]=3.0;
|
||||
A[0][0][0][1]=1.0;
|
||||
A[0][0][1][0]=2.0;
|
||||
A[0][0][1][1]=1.0;
|
||||
A[0][0][0][0] = 3.0;
|
||||
A[0][0][0][1] = 1.0;
|
||||
A[0][0][1][0] = 2.0;
|
||||
A[0][0][1][1] = 1.0;
|
||||
|
||||
A[1][1][0][0]=-1.0;
|
||||
A[1][1][1][1]=-1.0;
|
||||
A[1][1][0][0] = -1.0;
|
||||
A[1][1][1][1] = -1.0;
|
||||
|
||||
|
||||
Dune::SeqDilu<Matrix, Vector, Vector> seqdilu(A);
|
||||
|
||||
Reference in New Issue
Block a user