From 2b9f6a8f9c5b8ba698283cb1bde739c75ba01ab2 Mon Sep 17 00:00:00 2001
From: Thomas Fischer <thomas.fischer@ufz.de>
Date: Mon, 13 Jan 2020 17:48:23 +0100
Subject: [PATCH] [T/LF] 2D-test for flux computation.

---
 ProcessLib/LiquidFlow/Tests.cmake             |  17 +-
 ...aceflux_pcs_0_ts_1_t_0.432000_expected.vtu |   3 +
 ...aceflux_pcs_0_ts_2_t_0.864000_expected.vtu |   3 +
 .../2D/square_1e1_calculatesurfaceflux.prj    | 177 ++++++++++++++++++
 .../Flux/2D/square_1x1_quad_1e1.vtu           |   3 +
 .../square_1x1_quad_1e1_complete_surface.vtu  |   3 +
 ...hlet_specific_flux_t_0.432000_expected.vtu |   3 +
 ...hlet_specific_flux_t_0.864000_expected.vtu |   3 +
 .../Flux/2D/square_1x1_quad_1e1_left.vtu      |   3 +
 .../Flux/2D/square_1x1_quad_1e1_right.vtu     |   3 +
 10 files changed, 217 insertions(+), 1 deletion(-)
 create mode 100644 Tests/Data/Parabolic/LiquidFlow/Flux/2D/LF_square_1e1_surfaceflux_pcs_0_ts_1_t_0.432000_expected.vtu
 create mode 100644 Tests/Data/Parabolic/LiquidFlow/Flux/2D/LF_square_1e1_surfaceflux_pcs_0_ts_2_t_0.864000_expected.vtu
 create mode 100644 Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1e1_calculatesurfaceflux.prj
 create mode 100644 Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1.vtu
 create mode 100644 Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface.vtu
 create mode 100644 Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.432000_expected.vtu
 create mode 100644 Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.864000_expected.vtu
 create mode 100644 Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_left.vtu
 create mode 100644 Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_right.vtu

diff --git a/ProcessLib/LiquidFlow/Tests.cmake b/ProcessLib/LiquidFlow/Tests.cmake
index 8b394628e14..bc1354b31c7 100644
--- a/ProcessLib/LiquidFlow/Tests.cmake
+++ b/ProcessLib/LiquidFlow/Tests.cmake
@@ -366,7 +366,7 @@ AddTest(
 )
 
 AddTest(
-    NAME LiquidFlow_Flux
+    NAME LiquidFlow_Flux_3D
     PATH Parabolic/LiquidFlow/Flux
     EXECUTABLE ogs
     EXECUTABLE_ARGS cube_1e3_calculatesurfaceflux.prj
@@ -379,3 +379,18 @@ AddTest(
     LF_cube_1e3_calculatesurfaceflux_pcs_0_ts_1_t_0.432000_expected.vtu LF_cube_1e3_calculatesurfaceflux_pcs_0_ts_1_t_0.432000.vtu pressure pressure 1e-7 1e-13
     LF_cube_1e3_calculatesurfaceflux_pcs_0_ts_2_t_0.864000_expected.vtu LF_cube_1e3_calculatesurfaceflux_pcs_0_ts_2_t_0.864000.vtu pressure pressure 1e-7 1e-13
 )
+
+AddTest(
+    NAME LiquidFlow_Flux_2D
+    PATH Parabolic/LiquidFlow/Flux/2D
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS square_1e1_calculatesurfaceflux.prj
+    WRAPPER time
+    TESTER vtkdiff
+    REQUIREMENTS NOT OGS_USE_MPI
+    DIFF_DATA
+    square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.432000_expected.vtu square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.432000.vtu specific_flux specific_flux 1e-7 1e-13
+    square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.864000_expected.vtu square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.864000.vtu specific_flux specific_flux 1e-7 1e-13
+    LF_square_1e1_surfaceflux_pcs_0_ts_1_t_0.432000_expected.vtu LF_square_1e1_surfaceflux_pcs_0_ts_1_t_0.432000.vtu pressure pressure 1e-7 1e-13
+    LF_square_1e1_surfaceflux_pcs_0_ts_2_t_0.864000_expected.vtu LF_square_1e1_surfaceflux_pcs_0_ts_2_t_0.864000.vtu pressure pressure 1e-7 1e-13
+)
diff --git a/Tests/Data/Parabolic/LiquidFlow/Flux/2D/LF_square_1e1_surfaceflux_pcs_0_ts_1_t_0.432000_expected.vtu b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/LF_square_1e1_surfaceflux_pcs_0_ts_1_t_0.432000_expected.vtu
new file mode 100644
index 00000000000..7e3987acfb3
--- /dev/null
+++ b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/LF_square_1e1_surfaceflux_pcs_0_ts_1_t_0.432000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a09fca3e1cf6cc900db49ed46c6bb874a291a41cead6e334b24f35504003510b
+size 3284
diff --git a/Tests/Data/Parabolic/LiquidFlow/Flux/2D/LF_square_1e1_surfaceflux_pcs_0_ts_2_t_0.864000_expected.vtu b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/LF_square_1e1_surfaceflux_pcs_0_ts_2_t_0.864000_expected.vtu
new file mode 100644
index 00000000000..92c9ace5027
--- /dev/null
+++ b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/LF_square_1e1_surfaceflux_pcs_0_ts_2_t_0.864000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:960089f24280fbce95e7f376a4fb9a1caa3da98457fcc83ed4b3736e19c3df54
+size 3256
diff --git a/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1e1_calculatesurfaceflux.prj b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1e1_calculatesurfaceflux.prj
new file mode 100644
index 00000000000..4cf7d704cad
--- /dev/null
+++ b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1e1_calculatesurfaceflux.prj
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <meshes>
+        <mesh>square_1x1_quad_1e1.vtu</mesh>
+        <mesh>square_1x1_quad_1e1_complete_surface.vtu</mesh>
+        <mesh>square_1x1_quad_1e1_left.vtu</mesh>
+        <mesh>square_1x1_quad_1e1_right.vtu</mesh>
+    </meshes>
+    <processes>
+        <process>
+            <name>LiquidFlow</name>
+            <type>LIQUID_FLOW</type>
+            <integration_order>2</integration_order>
+            <darcy_gravity>
+                <!-- axis_id: 0, 1, or the dimension of space minus one -->
+                <axis_id>0</axis_id>
+                <!-- g>=0. g=0: non gravity term -->
+                <g>0.</g>
+            </darcy_gravity>
+            <process_variables>
+                <process_variable>pressure</process_variable>
+            </process_variables>
+            <secondary_variables>
+                <secondary_variable internal_name="darcy_velocity" output_name="v"/>
+            </secondary_variables>
+            <calculatesurfaceflux>
+                <mesh>square_1x1_quad_1e1_complete_surface</mesh>
+                <property_name>specific_flux</property_name>
+                <output_mesh>square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux.vtu</output_mesh>
+            </calculatesurfaceflux>
+            <material_property>
+                <fluid>
+                    <density>
+                        <type>Constant</type>
+                        <value> 78.68 </value>
+                    </density>
+                    <viscosity>
+                        <type>Constant</type>
+                        <value> 1.295e-4 </value>
+                    </viscosity>
+                </fluid>
+                <porous_medium>
+                    <porous_medium id="0">
+                        <permeability>
+                            <permeability_tensor_entries>kappa1</permeability_tensor_entries>
+                            <type>Constant</type>
+                        </permeability>
+                        <porosity>
+                            <type>Constant</type>
+                            <porosity_parameter>constant_porosity_parameter</porosity_parameter>
+                        </porosity>
+                        <storage>
+                            <type>Constant</type>
+                            <value> 8.05e-10 </value>
+                        </storage>
+                    </porous_medium>
+                </porous_medium>
+            </material_property>
+        </process>
+    </processes>
+    <time_loop>
+        <processes>
+            <process ref="LiquidFlow">
+                <nonlinear_solver>basic_picard</nonlinear_solver>
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <abstol>1.e-10</abstol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial> 0.0 </t_initial>
+                    <t_end> 0.864 </t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>2</repeat>
+                            <delta_t>0.432</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>LF_square_1e1_surfaceflux</prefix>
+            <timesteps>
+                <pair>
+                    <repeat> 1 </repeat>
+                    <each_steps> 1 </each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable> pressure </variable>
+                <variable> v </variable>
+            </variables>
+        </output>
+    </time_loop>
+    <parameters>
+        <parameter>
+            <name>p0</name>
+            <type>Constant</type>
+            <value>5e6</value>
+        </parameter>
+        <parameter>
+            <name>p_Dirichlet_left</name>
+            <type>Constant</type>
+            <value>1e7</value>
+        </parameter>
+        <parameter>
+            <name>p_Dirichlet_right</name>
+            <type>Constant</type>
+            <value>1e6</value>
+        </parameter>
+        <parameter>
+            <name>constant_porosity_parameter</name>
+            <type>Constant</type>
+            <value>1</value>
+        </parameter>
+        <parameter>
+            <name>kappa1</name>
+            <type>Constant</type>
+            <values>9.2e-12 0 0 9.2e-12</values>
+        </parameter>
+        <parameter>
+            <name>p_spatial</name>
+            <type>Constant</type>
+            <value>1</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>pressure</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>p0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <mesh>square_1x1_quad_1e1_left</mesh>
+                    <type>Dirichlet</type>
+                    <parameter>p_Dirichlet_left</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <mesh>square_1x1_quad_1e1_right</mesh>
+                    <type>Dirichlet</type>
+                    <parameter>p_Dirichlet_right</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+    </process_variables>
+    <nonlinear_solvers>
+        <nonlinear_solver>
+            <name>basic_picard</name>
+            <type>Picard</type>
+            <max_iter>10</max_iter>
+            <linear_solver>general_linear_solver</linear_solver>
+        </nonlinear_solver>
+    </nonlinear_solvers>
+    <linear_solvers>
+        <linear_solver>
+            <name>general_linear_solver</name>
+            <lis>-i cg -p jacobi -tol 1e-16 -maxiter 10000</lis>
+            <eigen>
+                <solver_type>CG</solver_type>
+                <precon_type>DIAGONAL</precon_type>
+                <max_iteration_step>10000</max_iteration_step>
+                <error_tolerance>1e-16</error_tolerance>
+            </eigen>
+            <petsc>
+                <prefix>lf</prefix>
+                <parameters>-lf_ksp_type cg -lf_pc_type bjacobi -lf_ksp_rtol 1e-16 -lf_ksp_max_it 10000</parameters>
+            </petsc>
+        </linear_solver>
+    </linear_solvers>
+</OpenGeoSysProject>
diff --git a/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1.vtu b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1.vtu
new file mode 100644
index 00000000000..830ecc4b558
--- /dev/null
+++ b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:16b826f3e01dafe34f447332b39a2a01cfa9e330c9ff7706190d0f420570c364
+size 2276
diff --git a/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface.vtu b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface.vtu
new file mode 100644
index 00000000000..2098258b30e
--- /dev/null
+++ b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:17da3e834d5c3aa33c7bcd5f69eeffe45226d10070ec1efde9d0b1d515f6c892
+size 3535
diff --git a/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.432000_expected.vtu b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.432000_expected.vtu
new file mode 100644
index 00000000000..f80be5ffeb5
--- /dev/null
+++ b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.432000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf38c54df6739ac7ab831bf2605ed356f0519e3d382a31dfb49d08bddffea466
+size 4030
diff --git a/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.864000_expected.vtu b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.864000_expected.vtu
new file mode 100644
index 00000000000..b271da6628e
--- /dev/null
+++ b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_complete_surface_left_right_dirichlet_specific_flux_t_0.864000_expected.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2c2583ec787a3ee56c18217b09b34bdda1de66008c9f4ecd9e0c653dd187cb8a
+size 4030
diff --git a/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_left.vtu b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_left.vtu
new file mode 100644
index 00000000000..5bb68bcde16
--- /dev/null
+++ b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_left.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eb3a7aa685ad561fdf455dd462467cab1e124fedc44e6c0f14befe33d83e6cd5
+size 3637
diff --git a/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_right.vtu b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_right.vtu
new file mode 100644
index 00000000000..4dacd3f1682
--- /dev/null
+++ b/Tests/Data/Parabolic/LiquidFlow/Flux/2D/square_1x1_quad_1e1_right.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5e39f78e2cabffd2f4f1313b774ca9464b8ffdf7fc97aa94b66bae80d162c850
+size 3659
-- 
GitLab