From 2d263c761bba76f97306ce81c8fdfb7033b211d1 Mon Sep 17 00:00:00 2001
From: Timo Koch <timo.koch@iws.uni-stuttgart.de>
Date: Mon, 12 Feb 2018 14:02:15 +0100
Subject: [PATCH] [test][1p] Add incompressible test with numeric
 differentiation

---
 .../1p/implicit/incompressible/CMakeLists.txt | 37 ++++++++++++++++---
 .../1p/implicit/incompressible/test_1pfv.cc   |  2 +-
 2 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/test/porousmediumflow/1p/implicit/incompressible/CMakeLists.txt b/test/porousmediumflow/1p/implicit/incompressible/CMakeLists.txt
index 259bf65e4f..457e1b1980 100644
--- a/test/porousmediumflow/1p/implicit/incompressible/CMakeLists.txt
+++ b/test/porousmediumflow/1p/implicit/incompressible/CMakeLists.txt
@@ -1,33 +1,58 @@
 dune_symlink_to_source_files(FILES "test_1p.input")
 
-# using tpfa
+# using tpfa and analytical Jacobian
 dune_add_test(NAME test_1p_incompressible_tpfa
               SOURCES test_1pfv.cc
-              COMPILE_DEFINITIONS TYPETAG=OnePIncompressibleTpfa
+              COMPILE_DEFINITIONS TYPETAG=OnePIncompressibleTpfa NUMDIFFMETHOD=DiffMethod::analytic
               COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
               CMD_ARGS  --script fuzzy
                         --files ${CMAKE_SOURCE_DIR}/test/references/1ptestcc-reference.vtu
                                 ${CMAKE_CURRENT_BINARY_DIR}/1ptestcctpfa-00001.vtu
                         --command "${CMAKE_CURRENT_BINARY_DIR}/test_1p_incompressible_tpfa test_1p.input -Problem.Name 1ptestcctpfa")
 
-# using mpfa
+# using mpfa and analytical Jacobian
 dune_add_test(NAME test_1p_incompressible_mpfa
               SOURCES test_1pfv.cc
-              COMPILE_DEFINITIONS TYPETAG=OnePIncompressibleMpfa
+              COMPILE_DEFINITIONS TYPETAG=OnePIncompressibleMpfa NUMDIFFMETHOD=DiffMethod::analytic
               COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
               CMD_ARGS  --script fuzzy
                         --files ${CMAKE_SOURCE_DIR}/test/references/1ptestcc-reference.vtu
                                 ${CMAKE_CURRENT_BINARY_DIR}/1ptestccmpfa-00001.vtu
                         --command "${CMAKE_CURRENT_BINARY_DIR}/test_1p_incompressible_mpfa test_1p.input -Problem.Name 1ptestccmpfa")
 
-# using box
+# using box and analytical Jacobian
 dune_add_test(NAME test_1p_incompressible_box
               SOURCES test_1pfv.cc
-              COMPILE_DEFINITIONS TYPETAG=OnePIncompressibleBox
+              COMPILE_DEFINITIONS TYPETAG=OnePIncompressibleBox NUMDIFFMETHOD=DiffMethod::analytic
               COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
               CMD_ARGS  --script fuzzy
                         --files ${CMAKE_SOURCE_DIR}/test/references/1ptestbox-reference.vtu
                                 ${CMAKE_CURRENT_BINARY_DIR}/1ptestbox-00001.vtu
                         --command "${CMAKE_CURRENT_BINARY_DIR}/test_1p_incompressible_box test_1p.input -Problem.Name 1ptestbox")
 
+
+# using tpfa and numeric differentiation
+dune_add_test(NAME test_1p_incompressible_tpfa_numdiff
+              SOURCES test_1pfv.cc
+              COMPILE_DEFINITIONS TYPETAG=OnePIncompressibleTpfa NUMDIFFMETHOD=DiffMethod::numeric
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS  --script fuzzy
+                        --files ${CMAKE_SOURCE_DIR}/test/references/1ptestcc-reference.vtu
+                                ${CMAKE_CURRENT_BINARY_DIR}/1ptestcctpfa_numdiff-00001.vtu
+                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_1p_incompressible_tpfa_numdiff test_1p.input
+                                                                                  -Problem.Name 1ptestcctpfa_numdiff
+                                                                                  -Assembly.NumericDifference.PriVarMagnitude 1e5")
+
+# using box and numeric differentiation
+dune_add_test(NAME test_1p_incompressible_box_numdiff
+              SOURCES test_1pfv.cc
+              COMPILE_DEFINITIONS TYPETAG=OnePIncompressibleBox NUMDIFFMETHOD=DiffMethod::numeric
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS  --script fuzzy
+                        --files ${CMAKE_SOURCE_DIR}/test/references/1ptestbox-reference.vtu
+                                ${CMAKE_CURRENT_BINARY_DIR}/1ptestbox_numdiff-00001.vtu
+                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_1p_incompressible_box_numdiff test_1p.input
+                                                                                  -Problem.Name 1ptestbox_numdiff
+                                                                                  -Assembly.NumericDifference.PriVarMagnitude 1e5")
+
 set(CMAKE_BUILD_TYPE Release)
diff --git a/test/porousmediumflow/1p/implicit/incompressible/test_1pfv.cc b/test/porousmediumflow/1p/implicit/incompressible/test_1pfv.cc
index 70d729ffad..3691b9f81d 100644
--- a/test/porousmediumflow/1p/implicit/incompressible/test_1pfv.cc
+++ b/test/porousmediumflow/1p/implicit/incompressible/test_1pfv.cc
@@ -100,7 +100,7 @@ int main(int argc, char** argv) try
     vtkWriter.write(0.0);
 
     // make assemble and attach linear system
-    using Assembler = FVAssembler<TypeTag, DiffMethod::analytic>;
+    using Assembler = FVAssembler<TypeTag, NUMDIFFMETHOD>;
     auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables);
     using JacobianMatrix = typename GET_PROP_TYPE(TypeTag, JacobianMatrix);
     auto A = std::make_shared<JacobianMatrix>();
-- 
GitLab