diff --git a/ProcessLib/GroundwaterFlow/Tests.cmake b/ProcessLib/GroundwaterFlow/Tests.cmake
index 1fe6320d2050430a132ef9f4266997577c78f97d..eb3ea94bbd977ccd74d1b75529818134b25f0c35 100644
--- a/ProcessLib/GroundwaterFlow/Tests.cmake
+++ b/ProcessLib/GroundwaterFlow/Tests.cmake
@@ -539,25 +539,37 @@ foreach(mesh_size 1e1)
 endforeach()
 
 AddTest(
-    NAME GroundWaterFlowProcess_Neumann_nonuniform
+    NAME GroundWaterFlowProcess_Inhomogeneous_permeability
+    PATH Elliptic/nonuniform_bc_Groundwaterflow
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS inhomogeneous_permeability.prj
+    TESTER vtkdiff
+    REQUIREMENTS NOT OGS_USE_MPI
+    DIFF_DATA
+    inhomogeneous_permeability.vtu inhomogeneous_permeability_pcs_0_ts_1_t_1.000000.vtu mass_flux_ref mass_flux 4e-2 1e-16
+)
+
+AddTest(
+    NAME GroundWaterFlowProcess_Neumann_nonuniform_cosY
     PATH Elliptic/nonuniform_bc_Groundwaterflow
     EXECUTABLE ogs
     EXECUTABLE_ARGS neumann_nonuniform.prj
     TESTER vtkdiff
     REQUIREMENTS NOT OGS_USE_MPI
     DIFF_DATA
-    inhomogeneous_permeability.vtu neumann_nonuniform_pcs_0_ts_1_t_1.000000.vtu mass_flux_ref mass_flux 4e-2 1e-16
+    expected_neumann_nonuniform_pcs_0_ts_1_t_1.000000.vtu neumann_nonuniform_pcs_0_ts_1_t_1.000000.vtu pressure pressure 1e-14 0
+    expected_neumann_nonuniform_pcs_0_ts_1_t_1.000000.vtu neumann_nonuniform_pcs_0_ts_1_t_1.000000.vtu darcy_velocity darcy_velocity 1e-12 0
 )
 
 AddTest(
-    NAME GroundWaterFlowProcess_Dirichlet_nonuniform
+    NAME GroundWaterFlowProcess_Dirichlet_nonuniform_linearY
     PATH Elliptic/nonuniform_bc_Groundwaterflow
     EXECUTABLE ogs
     EXECUTABLE_ARGS dirichlet_nonuniform.prj
     TESTER vtkdiff
     REQUIREMENTS NOT OGS_USE_MPI
     DIFF_DATA
-    expected_dirichlet_nonuniform_pcs_0_ts_1_t_1.000000.vtu dirichlet_nonuniform_pcs_0_ts_1_t_1.000000.vtu pressure pressure 1e-14 1e-16
+    expected_dirichlet_nonuniform_pcs_0_ts_1_t_1.000000.vtu dirichlet_nonuniform_pcs_0_ts_1_t_1.000000.vtu pressure pressure 1e-14 0
 )
 
 # tests for nodal source term implementation
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/dirichlet_nonuniform.prj b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/dirichlet_nonuniform.prj
index 12fdf592dd01260a190ad58e0276197f2a2e5243..ef90b48512160b76c0e3291cf6b26b96d09cdb69 100644
--- a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/dirichlet_nonuniform.prj
+++ b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/dirichlet_nonuniform.prj
@@ -1,7 +1,10 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <OpenGeoSysProject>
-    <mesh>dirichlet_nonuniform.vtu</mesh>
-    <geometry>square_1x1.gml</geometry>
+    <meshes>
+        <mesh>square_1x1_quad_1e3.vtu</mesh>
+        <mesh>square_1x1_left.vtu</mesh>
+        <mesh>square_1x1_right.vtu</mesh>
+    </meshes>
     <processes>
         <process>
             <name>GW23</name>
@@ -62,22 +65,18 @@
     <process_variables>
         <process_variable>
             <name>pressure</name>
+            <mesh>square_1x1_quad_1e3</mesh>
             <components>1</components>
             <order>1</order>
             <initial_condition>p0</initial_condition>
             <boundary_conditions>
                 <boundary_condition>
-                    <!-- dummy values -->
-                    <geometrical_set>square_1x1_geometry</geometrical_set>
-                    <geometry>left</geometry>
-                    <!-- end dummy values -->
                     <type>NonuniformDirichlet</type>
-                    <mesh>dirichlet_nonuniform_left_1e3.vtu</mesh>
-                    <field_name>value</field_name>
+                    <mesh>square_1x1_left</mesh>
+                    <field_name>linearY</field_name>
                 </boundary_condition>
                 <boundary_condition>
-                    <geometrical_set>square_1x1_geometry</geometrical_set>
-                    <geometry>right</geometry>
+                    <mesh>square_1x1_right</mesh>
                     <type>Dirichlet</type>
                     <parameter>p_Dirichlet_right</parameter>
                 </boundary_condition>
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/dirichlet_nonuniform_left_1e3.vtu b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/dirichlet_nonuniform_left_1e3.vtu
deleted file mode 100644
index 57150b1c7ee7d76d2ed23e4486b8cc428d17ea5c..0000000000000000000000000000000000000000
--- a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/dirichlet_nonuniform_left_1e3.vtu
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8e9b5a867cb85422e323eb3f8d38c230e2464a499c71a96980cad1d3ceeea642
-size 2061
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/expected_neumann_nonuniform_pcs_0_ts_1_t_1.000000.vtu b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/expected_neumann_nonuniform_pcs_0_ts_1_t_1.000000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..8f08cc4d30d909639633c8dfc791c057ec5a52d1
--- /dev/null
+++ b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/expected_neumann_nonuniform_pcs_0_ts_1_t_1.000000.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4501531f6c090c5e749223e6c57e87a3bea98b6aef4a64b9b7b28f278136d266
+size 37063
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/inhomogeneous_permeability.prj b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/inhomogeneous_permeability.prj
new file mode 100644
index 0000000000000000000000000000000000000000..04e79dfbbf0435a1673cfd388c0497cf6c2e6182
--- /dev/null
+++ b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/inhomogeneous_permeability.prj
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <meshes>
+        <mesh axially_symmetric="true">inhomogeneous_permeability.vtu</mesh>
+        <mesh axially_symmetric="true">inhomogeneous_permeability_top.vtu</mesh>
+        <mesh axially_symmetric="true">inhomogeneous_permeability_bottom.vtu</mesh>
+    </meshes>
+    <processes>
+        <process>
+            <name>GW23</name>
+            <type>GROUNDWATER_FLOW</type>
+            <integration_order>2</integration_order>
+            <hydraulic_conductivity>K_rho_over_mu__eff</hydraulic_conductivity>
+            <process_variables>
+                <process_variable>pressure</process_variable>
+            </process_variables>
+            <secondary_variables>
+                <secondary_variable type="static" internal_name="darcy_velocity" output_name="mass_flux"/>
+            </secondary_variables>
+        </process>
+    </processes>
+    <time_loop>
+        <processes>
+            <process ref="GW23">
+                <nonlinear_solver>basic_picard</nonlinear_solver>
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <abstol>1.e-6</abstol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <output>
+                    <variables>
+                        <variable> pressure  </variable>
+                        <variable> mass_flux </variable>
+                    </variables>
+                </output>
+                <time_stepping>
+                    <type>SingleStep</type>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>inhomogeneous_permeability</prefix>
+        </output>
+    </time_loop>
+    <parameters>
+        <parameter>
+            <name>K_rho_over_mu__eff</name>
+            <type>MeshElement</type>
+            <field_name>K_rho_over_mu__eff</field_name>
+        </parameter>
+        <parameter>
+            <name>p_initial</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>p_outlet</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>pressure</name>
+            <mesh>inhomogeneous_permeability</mesh>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>p_initial</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <mesh>inhomogeneous_permeability_top</mesh>
+                    <type>NonuniformNeumann</type>
+                    <field_name>mass_flux</field_name>
+                </boundary_condition>
+                <boundary_condition>
+                    <mesh>inhomogeneous_permeability_bottom</mesh>
+                    <type>Dirichlet</type>
+                    <parameter>p_outlet</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>gw</prefix>
+                <parameters>-gw_ksp_type cg -gw_pc_type bjacobi -gw_ksp_rtol 1e-16 -gw_ksp_max_it 10000</parameters>
+            </petsc>
+        </linear_solver>
+    </linear_solvers>
+</OpenGeoSysProject>
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/inhomogeneous_permeability_bottom.vtu b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/inhomogeneous_permeability_bottom.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..606226937dda317208c598998989f71a9620b116
--- /dev/null
+++ b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/inhomogeneous_permeability_bottom.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:823cb86a9e81ef2dbfc4375992851ca12e7ab919799ff1025916716d72105d02
+size 4700
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/inhomogeneous_permeability_top.vtu b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/inhomogeneous_permeability_top.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..5cd28e7a067802e6780e8bae40916f768fe7e53f
--- /dev/null
+++ b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/inhomogeneous_permeability_top.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cfd58a1ab229148d34850aa90ec608a2e9272f7708dd1261e03c8274d90c2184
+size 5518
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/neumann_nonuniform.prj b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/neumann_nonuniform.prj
index 55ed460a2460ac3383ac0315a07e45d2f01a9253..945eae1676e40eb8f5c06acbb4487a0030b9bd4c 100644
--- a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/neumann_nonuniform.prj
+++ b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/neumann_nonuniform.prj
@@ -1,18 +1,21 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <OpenGeoSysProject>
-    <mesh axially_symmetric="true"> inhomogeneous_permeability.vtu </mesh>
-    <geometry>inhomogeneous_permeability.gml</geometry>
+    <meshes>
+        <mesh>square_1x1_quad_1e3.vtu</mesh>
+        <mesh>square_1x1_left.vtu</mesh>
+        <mesh>square_1x1_right.vtu</mesh>
+    </meshes>
     <processes>
         <process>
             <name>GW23</name>
             <type>GROUNDWATER_FLOW</type>
             <integration_order>2</integration_order>
-            <hydraulic_conductivity>K_rho_over_mu__eff</hydraulic_conductivity>
+            <hydraulic_conductivity>K</hydraulic_conductivity>
             <process_variables>
                 <process_variable>pressure</process_variable>
             </process_variables>
             <secondary_variables>
-                <secondary_variable type="static" internal_name="darcy_velocity" output_name="mass_flux"/>
+                <secondary_variable type="static" internal_name="darcy_velocity" output_name="darcy_velocity"/>
             </secondary_variables>
         </process>
     </processes>
@@ -23,15 +26,15 @@
                 <convergence_criterion>
                     <type>DeltaX</type>
                     <norm_type>NORM2</norm_type>
-                    <abstol>1.e-6</abstol>
+                    <abstol>1e-15</abstol>
                 </convergence_criterion>
                 <time_discretization>
                     <type>BackwardEuler</type>
                 </time_discretization>
                 <output>
                     <variables>
-                        <variable> pressure  </variable>
-                        <variable> mass_flux </variable>
+                        <variable> pressure </variable>
+                        <variable> darcy_velocity </variable>
                     </variables>
                 </output>
                 <time_stepping>
@@ -46,44 +49,38 @@
     </time_loop>
     <parameters>
         <parameter>
-            <name>K_rho_over_mu__eff</name>
-            <type>MeshElement</type>
-            <field_name>K_rho_over_mu__eff</field_name>
+            <name>K</name>
+            <type>Constant</type>
+            <value>1</value>
         </parameter>
         <parameter>
-            <name>p_initial</name>
+            <name>p0</name>
             <type>Constant</type>
             <value>0</value>
         </parameter>
         <parameter>
-            <name>p_outlet</name>
+            <name>p_Dirichlet_right</name>
             <type>Constant</type>
-            <value>0</value>
+            <value>-1</value>
         </parameter>
     </parameters>
     <process_variables>
         <process_variable>
             <name>pressure</name>
+            <mesh>square_1x1_quad_1e3</mesh>
             <components>1</components>
             <order>1</order>
-            <initial_condition>p_initial</initial_condition>
+            <initial_condition>p0</initial_condition>
             <boundary_conditions>
                 <boundary_condition>
-                    <!-- dummy values -->
-                    <geometrical_set>square_1x1_geometry</geometrical_set>
-                    <geometry>left</geometry>
-                    <!-- end dummy values -->
-
                     <type>NonuniformNeumann</type>
-                    <field_name>mass_flux</field_name>
-                    <mesh>inhomogeneous_mass_flux.vtu</mesh>
+                    <mesh>square_1x1_left</mesh>
+                    <field_name>cosY</field_name>
                 </boundary_condition>
-
                 <boundary_condition>
-                    <geometrical_set>square_1x1_geometry</geometrical_set>
-                    <geometry>bottom</geometry>
                     <type>Dirichlet</type>
-                    <parameter>p_outlet</parameter>
+                    <mesh>square_1x1_right</mesh>
+                    <parameter>p_Dirichlet_right</parameter>
                 </boundary_condition>
             </boundary_conditions>
         </process_variable>
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1.gml b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1.gml
deleted file mode 100644
index bf8563395b993b70f8ddf273c8c52261db22b6b4..0000000000000000000000000000000000000000
--- a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1.gml
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3887f04905f231e957c74111daca69b0f2aa855cc6250cf2b4fec33debf73b72
-size 1018
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1_left.vtu b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1_left.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..05cd36dfcfa02fd63791bdeba7ff9d9de170c2fe
--- /dev/null
+++ b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1_left.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9112c83e759182f1b899167d24a57db352ab86a1e674327fd64e2780584a5f8d
+size 2847
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/dirichlet_nonuniform.vtu b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1_quad_1e3.vtu
similarity index 100%
rename from Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/dirichlet_nonuniform.vtu
rename to Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1_quad_1e3.vtu
diff --git a/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1_right.vtu b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1_right.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..b64752e83bacc5ca315d43f5f768ce67276c2c92
--- /dev/null
+++ b/Tests/Data/Elliptic/nonuniform_bc_Groundwaterflow/square_1x1_right.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1970f4f475e343831edcf65e8920230c7314dec208698a2897e6e426925fc022
+size 4020