From 30d7cfa130250b01df72d66ca03f7006262df58a Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <github@naumov.de>
Date: Thu, 9 Jul 2020 00:11:28 +0200
Subject: [PATCH] [T] HeatConduction; Masslumping tests.

For both Newton and Picard non-linear solvers.
---
 ProcessLib/HeatConduction/Tests.cmake         |  32 ++++
 .../T/1D_neumann/newton_masslumping.prj       | 142 ++++++++++++++++++
 ...newton_masslumping_ts_1_t_78125.000000.vtu |  28 ++++
 ...ewton_masslumping_ts_3_t_234375.000000.vtu |  28 ++++
 ...n_masslumping_ts_405_t_31640625.000000.vtu |  28 ++++
 ...n_masslumping_ts_500_t_39062500.000000.vtu |  28 ++++
 ...ton_masslumping_ts_65_t_5078125.000000.vtu |  28 ++++
 .../T/1D_neumann/picard_masslumping.prj       | 142 ++++++++++++++++++
 ...picard_masslumping_ts_1_t_78125.000000.vtu |  28 ++++
 ...icard_masslumping_ts_3_t_234375.000000.vtu |  28 ++++
 ...d_masslumping_ts_405_t_31640625.000000.vtu |  28 ++++
 ...d_masslumping_ts_500_t_39062500.000000.vtu |  28 ++++
 ...ard_masslumping_ts_65_t_5078125.000000.vtu |  28 ++++
 13 files changed, 596 insertions(+)
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/newton_masslumping.prj
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_1_t_78125.000000.vtu
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_3_t_234375.000000.vtu
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_405_t_31640625.000000.vtu
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_500_t_39062500.000000.vtu
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_65_t_5078125.000000.vtu
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/picard_masslumping.prj
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_1_t_78125.000000.vtu
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_3_t_234375.000000.vtu
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_405_t_31640625.000000.vtu
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_500_t_39062500.000000.vtu
 create mode 100644 Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_65_t_5078125.000000.vtu

diff --git a/ProcessLib/HeatConduction/Tests.cmake b/ProcessLib/HeatConduction/Tests.cmake
index ac1df448b40..26ada8cf920 100644
--- a/ProcessLib/HeatConduction/Tests.cmake
+++ b/ProcessLib/HeatConduction/Tests.cmake
@@ -43,6 +43,38 @@ AddTest(
     temperature_analytical.vtu newton_ts_405_t_31640625.000000.vtu Temperature_Analytical_1year temperature 1e-4 1e-4
     REQUIREMENTS NOT OGS_USE_MPI
 )
+
+AddTest(
+    NAME 1D_HeatConduction_neumann_picard_masslumping
+    PATH Parabolic/T/1D_neumann
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS picard_masslumping.prj
+    TESTER vtkdiff
+    DIFF_DATA
+    picard_masslumping_ts_1_t_78125.000000.vtu picard_masslumping_ts_1_t_78125.000000.vtu temperature temperature 1e-12 1e-16
+    picard_masslumping_ts_3_t_234375.000000.vtu picard_masslumping_ts_3_t_234375.000000.vtu temperature temperature 1e-12 1e-16
+    picard_masslumping_ts_65_t_5078125.000000.vtu picard_masslumping_ts_65_t_5078125.000000.vtu temperature temperature 1e-12 1e-16
+    picard_masslumping_ts_405_t_31640625.000000.vtu picard_masslumping_ts_405_t_31640625.000000.vtu temperature temperature 1e-12 1e-16
+    picard_masslumping_ts_500_t_39062500.000000.vtu picard_masslumping_ts_500_t_39062500.000000.vtu temperature temperature 1e-12 1e-16
+    temperature_analytical.vtu picard_masslumping_ts_65_t_5078125.000000.vtu Temperature_Analytical_2months temperature 1e-4 1e-4
+    temperature_analytical.vtu picard_masslumping_ts_405_t_31640625.000000.vtu Temperature_Analytical_1year temperature 1e-4 1e-4
+    REQUIREMENTS NOT OGS_USE_MPI
+)
+
+AddTest(
+    NAME 1D_HeatConduction_neumann_newton_masslumping
+    PATH Parabolic/T/1D_neumann
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS newton_masslumping.prj
+    TESTER vtkdiff
+    DIFF_DATA
+    newton_masslumping_ts_1_t_78125.000000.vtu newton_masslumping_ts_1_t_78125.000000.vtu temperature temperature 1e-12 1e-16
+    newton_masslumping_ts_3_t_234375.000000.vtu newton_masslumping_ts_3_t_234375.000000.vtu temperature temperature 1e-12 1e-16
+    newton_masslumping_ts_65_t_5078125.000000.vtu newton_masslumping_ts_65_t_5078125.000000.vtu temperature temperature 1e-12 1e-16
+    newton_masslumping_ts_405_t_31640625.000000.vtu newton_masslumping_ts_405_t_31640625.000000.vtu temperature temperature 1e-12 1e-16
+    newton_masslumping_ts_500_t_39062500.000000.vtu newton_masslumping_ts_500_t_39062500.000000.vtu temperature temperature 1e-12 1e-16
+    temperature_analytical.vtu newton_masslumping_ts_65_t_5078125.000000.vtu Temperature_Analytical_2months temperature 1e-4 1e-4
+    temperature_analytical.vtu newton_masslumping_ts_405_t_31640625.000000.vtu Temperature_Analytical_1year temperature 1e-4 1e-4
     REQUIREMENTS NOT OGS_USE_MPI
 )
 
diff --git a/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping.prj b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping.prj
new file mode 100644
index 00000000000..083f8a4c91a
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping.prj
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <mesh>mesh.vtu</mesh>
+    <geometry>line_60_geometry.gml</geometry>
+    <processes>
+        <process>
+            <name>HeatConduction</name>
+            <type>HEAT_CONDUCTION</type>
+            <integration_order>2</integration_order>
+            <thermal_conductivity>K</thermal_conductivity>
+            <heat_capacity>Cp</heat_capacity>
+            <density>rho</density>
+            <process_variables>
+                <process_variable>temperature</process_variable>
+            </process_variables>
+            <secondary_variables>
+                <secondary_variable internal_name="heat_flux_x" output_name="heat_flux_x"/>
+            </secondary_variables>
+            <mass_lumping>true</mass_lumping>
+        </process>
+    </processes>
+    <time_loop>
+        <processes>
+            <process ref="HeatConduction">
+                <nonlinear_solver>nonlinear_solver</nonlinear_solver>
+                <convergence_criterion>
+                    <type>DeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <abstol>1e-16</abstol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial> 0.0 </t_initial>
+                    <t_end> 39062500 </t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>500</repeat>
+                            <delta_t>78125</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>newton_masslumping</prefix>
+            <timesteps>
+                <pair>
+                    <repeat> 1 </repeat>
+                    <each_steps> 1 </each_steps>
+                </pair>
+                <pair>
+                    <repeat> 1 </repeat>
+                    <each_steps> 2 </each_steps>
+                </pair>
+                <pair>
+                    <repeat> 1 </repeat>
+                    <each_steps> 62 </each_steps>
+                </pair>
+                <pair>
+                    <repeat> 1 </repeat>
+                    <each_steps> 340 </each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable> temperature </variable>
+                <variable> heat_flux_x </variable>
+            </variables>
+            <suffix>_ts_{:timestep}_t_{:time}</suffix>
+        </output>
+    </time_loop>
+    <parameters>
+        <parameter>
+            <name>K</name>
+            <type>Constant</type>
+            <value>3.2</value>
+        </parameter>
+        <parameter>
+            <name>Cp</name>
+            <type>Constant</type>
+            <value>1000</value>
+        </parameter>
+        <parameter>
+            <name>rho</name>
+            <type>Constant</type>
+            <value>2500</value>
+        </parameter>
+        <parameter>
+            <name>T0</name>
+            <type>Constant</type>
+            <value>273.15</value>
+        </parameter>
+        <parameter>
+            <name>T_neumann</name>
+            <type>Constant</type>
+            <value>2</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>temperature</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>T0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>line_60_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Neumann</type>
+                    <parameter>T_neumann</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+    </process_variables>
+    <nonlinear_solvers>
+        <nonlinear_solver>
+            <name>nonlinear_solver</name>
+            <type>Newton</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/Parabolic/T/1D_neumann/newton_masslumping_ts_1_t_78125.000000.vtu b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_1_t_78125.000000.vtu
new file mode 100644
index 00000000000..2d90c3581e4
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_1_t_78125.000000.vtu
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="22" format="appended" RangeMin="45"                   RangeMax="103"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="heat_flux_x" format="appended" RangeMin="0"                    RangeMax="0.30969149054"        offset="64"                  />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="273.25564428"         offset="216"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="344"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="384"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="616"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="792"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="976"                 />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAACAAAAWAAAAHgAAAA==eF4z0zPWM9A1NDAz1k23NE8yTTRLTEo2BAA32AV2AQAAAACAAADoAQAAXwAAAA==eF5jePDO8c/Fy/YMFfyzT1cftf//f5r3lhs99gwMChfPxQYD6Qau7wxSQJrBy7r0oR2QVvhYsNyOEciYUZkP4jM0KJqCaYaEP7ZgWuAwhGbogtIhUHoUDBQAAP1/HWw=AQAAAACAAADoAQAATgAAAA==eF5bHVcqJy5S6MBkcWBbl1ChQ5ljb1EmkG69eW95GpA++eFJNoh+nX8nDUQ7+RWAaVPrdAi/Ig1MP0uH0G1pEDoTSqeN0oOCBgB7nKvWAQAAAACAAADwAAAADAAAAA==eF5jYBhZAAAA8AABAQAAAACAAAC4BQAAnAAAAA==eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAACAAADAAwAAcQAAAA==eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAACAAADgAQAAeAAAAA==eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAACAAAA8AAAADAAAAA==eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_3_t_234375.000000.vtu b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_3_t_234375.000000.vtu
new file mode 100644
index 00000000000..d9f68a4d87e
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_3_t_234375.000000.vtu
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="22" format="appended" RangeMin="45"                   RangeMax="103"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="heat_flux_x" format="appended" RangeMin="0"                    RangeMax="0.74089264091"        offset="64"                  />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="273.42489073"         offset="232"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="380"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="420"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="652"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="828"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1012"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAACAAAAWAAAAHgAAAA==eF4z0zPWM9A1NDAz1k23NE8yTTRLTEo2BAA32AV2AQAAAACAAADoAQAAagAAAA==eF5jyLlUnbL1uT3Dm2USij237Rkm/Ao8VbbRnoGh4HT6jyYgvcDiyaEgEG05IVvR/j8Q2Lx6Z8fAwGCQ3rQLRDfcVmwD0QxvRIPsGIH0AS5ZMJ/h1zNbMM2wCUrXQmkHKD0K6AUAOg8lrA==AQAAAACAAADoAQAAWwAAAA==eF6bc8gy6oxYocPuzDYmCeFCh/YXvKV1QoUOH03nx2UCaWutnn1pQFqiV7sAREtHFqWDaI6opjQQLeyYCaa3rU8D08tyIbR0OoSuSIPQ6VA6bZQeEBoAaM+o4Q==AQAAAACAAADwAAAADAAAAA==eF5jYBhZAAAA8AABAQAAAACAAAC4BQAAnAAAAA==eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAACAAADAAwAAcQAAAA==eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAACAAADgAQAAeAAAAA==eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAACAAAA8AAAADAAAAA==eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_405_t_31640625.000000.vtu b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_405_t_31640625.000000.vtu
new file mode 100644
index 00000000000..3ec7d96b78a
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_405_t_31640625.000000.vtu
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="22" format="appended" RangeMin="45"                   RangeMax="103"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="heat_flux_x" format="appended" RangeMin="1.2812506611e-10"     RangeMax="1.9111255468"         offset="64"                  />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="277.62976692"         offset="652"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1216"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="1256"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1488"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1664"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1848"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAACAAAAWAAAAHgAAAA==eF4z0zPWM9A1NDAz1k23NE8yTTRLTEo2BAA32AV2AQAAAACAAADoAQAApwEAAA==eF5jDFuY+GPyP3uGyI8/jbX+2jOskFSPj/1lz7D+VZnyou/2DKdF59QyfLVnkFM0rq//ZM+Q2vtPTPWDPYNI/P/Lr1/bM8yKW1X76rk9g5b2vm+eT+wZTiluSON+aM/QIP9KNPqOPYPByw/8UdftGVIEHk7ivGzP8OKo0aqd5+wZAhw2V3edsGe4UcgTmXbYniGBq2pd1D57hgVTbys1bLdnYDDgN2fcZM9w4MKnqz6rgeKnNrFXLwGam/bLMGMekN6w5UnoNCC9+AKHzQQg7WjqEtUO1GfRu3leA5BeG3gkoxxIp56OCygA0jwyuQ1pQPqPz6ltcUD6RtrqfSFA+kDGld3eQDpAUDLSCUgnOCSyWwBph40XVPVB8q+X/VYG0g3s6xMlgTTDUZ1X/CBaxvEuM4iellz9ww5IszA+eAuiV3TyPALRC6pnXAXRHCunnQTRDgzs+0B0AEfxRhDdECy2BEQzHHk+DUyvut8JpoO+1IBpft4CMH1jYaIdI5AWMQwG8wM2uYDpA1JmYJohXB1CG0pA6OfsEHryZ1swPeehLQAlJ562AQAAAACAAADoAQAAkwEAAA==eF6LsqtsE44qdHi/+5ZHa0ChQxP7X9Wb7oUOz7yT3nI5FDpc3XLpvLBloYP7vgfzXhkVOigdCFJo0S10eLG0seCyRqFDziehvFMqhQ4RGTaaUYpAc1q+BxTLFTqcjFWdySZT6MD8oUuUVarQIXLn8rYEiUKH4qPTp3GLFzo8PhjN+ku00CH3yNsjCkD634k0tjKRQgdWBlmrj8KFDmqmXKzdQFo145uuLZAWKr/TwgSkDV6dP3ZNCMhvjW/YBqTL1UQ+zAPSldWer3qB9NPHdvsbgfRnrpfKlUD6psER2WIgfeX02o95QFpUYpFoDpA+qy+nmgWkmQOuX88A0vOmF/5KB9Irox5mgGip0+pcINrYXeVsGpCu77BdBqIXCG7oBdGdFyLqQLRtw+0SEO29iTsfRL+pb80G0e7H0zNB9Ow1qhkgWogpIx1Ez0j7mQai9zfvBNPfv00B06EODWA6aX4JmF6kngemLadngWm+pRlgum96OphWYIfQTbvSwHTuJAjNUQehe0og9JlCCA0Azcy/Mg==AQAAAACAAADwAAAADAAAAA==eF5jYBhZAAAA8AABAQAAAACAAAC4BQAAnAAAAA==eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAACAAADAAwAAcQAAAA==eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAACAAADgAQAAeAAAAA==eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAACAAAA8AAAADAAAAA==eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_500_t_39062500.000000.vtu b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_500_t_39062500.000000.vtu
new file mode 100644
index 00000000000..44e09b60acc
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_500_t_39062500.000000.vtu
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="22" format="appended" RangeMin="45"                   RangeMax="103"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="heat_flux_x" format="appended" RangeMin="4.6012473831e-09"     RangeMax="1.9200509574"         offset="64"                  />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15000001"         RangeMax="278.12928201"         offset="676"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1264"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="1304"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1536"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1712"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1896"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAACAAAAWAAAAHgAAAA==eF4z0zPWM9A1NDAz1k23NE8yTTRLTEo2BAA32AV2AQAAAACAAADoAQAAtwEAAA==eF5jOOUd1b7jnz3Dit1GW4r+2jPYRC/4+PqXPUP3TkP+oh/2DCozNjFyf7NniHvzzGDPZ3uGZc+bgrs+2jNseCy3/NM7e4Yw76wKidf2DBp8s5O6ntsz2C1mfuj1xJ7hWXTGtqiH9gwOq7/IF921Z/jCdCbj+A17hh+HfpStu2LPMGHy/qlyF+0ZClj+BEifAerfy+7x8Jg9Q0WDwf/yQ/YMHxYsSJuw157BYPts07LtQPsKN9wv3WTPcKCPOeXsGnuGBVJyx9yW2TM0SKy/ILLQnoHhl1Tyj5lA+UXBkydNBvKTg3Pte4HyCiVKq1qB/ISoSRfrgXTWBj2tciBdttZgRwGQ5tKue5sOpOu+Tf6ZAKSfRLx9EA6klyw4uSwASK941cHmDqQXaE2ZaA+kA+z5Sk2BNMM7hTc6IHrLr2BlIO0QvmyuJIhfI3tVAET3vHnPCqJX2Uf9sQPSagu0P4HoMknJ5yDahFX+LohuUTK9BKIFLKceA9EF+Sd2g+gHZz5vANEHIluXgOiGlsUzwHR6aC+Y/ujdCKIZapRLwLTR8zQwPacjAkw3eLiCaYXDxnYASdmu/Q==AQAAAACAAADoAQAApwEAAA==eF471MLUJZhU6CDsu+1+eUShQ+X5pJsr/QsdeEU2ZSxxL3Ro2v24P8mh0OF7yaL2u5aFDsfTgz/ymBQ66C8pEH6uV+iw4ICkbKJWocOSnPO5+WqFDiY+nvdYlQsdFnrWsUsoFDrUrPdonSlb6HCfr8GoTrrQge38i5hdkoUOGQYv3ztJAM293zSVV7zQgb9h6lkBsUIHA9dHv51Fgeq2Lc2dL1Lo8Pzf/XAZIH1vQe/5LcKFDmVSynuTgbRI/8wzKkD6Y7NL9BehQodZym0p54F0wwGfvM1AuvmSaNk8IO0iwXK/D0hHHcxKbAbSJ+Zz/KkC0hKTeZ+XAOk441cdBUB6qeq1nFwgHf7ttVU2kD7Iv3FjJpC2Lb2zIANI58TqPU0H0pNX66SC6M/nZvOB6LdsE66kAen8l9/Xgmjh561TQPRO+cfNIDrlv2QliH6/XasIRPvs3pcLon/d/5QFomseGWaC6KmTpDJANLtVXjqItt7HAqbZthxJA9FVyvPAtLV0O5jeWVEJpn1rCsF096McMM0bkgWmjXkzwXTyqgwwDQAtIMSpAQAAAACAAADwAAAADAAAAA==eF5jYBhZAAAA8AABAQAAAACAAAC4BQAAnAAAAA==eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAACAAADAAwAAcQAAAA==eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAACAAADgAQAAeAAAAA==eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAACAAAA8AAAADAAAAA==eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_65_t_5078125.000000.vtu b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_65_t_5078125.000000.vtu
new file mode 100644
index 00000000000..7b41c1facd0
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/newton_masslumping_ts_65_t_5078125.000000.vtu
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="22" format="appended" RangeMin="45"                   RangeMax="103"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="heat_flux_x" format="appended" RangeMin="0"                    RangeMax="1.7751206582"         offset="64"                  />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="274.92689423"         offset="380"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="676"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="716"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="948"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1124"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1308"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAACAAAAWAAAAHgAAAA==eF4z0zPWM9A1NDAz1k23NE8yTTRLTEo2BAA32AV2AQAAAACAAADoAQAA2gAAAA==eF5jqAl//STtjz1DlL3zrU8/7Bn8Q11uFXyyZ7CZf4D15Et7hqqz0cwcD+0ZLPjygx2u2jNs+CB0iP+kPcOBzE9O33fbMzCIrc6avNaeoYFT5femuUD6JfP1+B6guK3Y1BuVQPqbfnJdGpAuiZbYFwSkHTZc+2YLpBUOv2ZVB9IHVjFwCgJphr2zAn/YAeltT44+ANEHUlOOgenQn2tANMMkw0lgeqpJGZjmiI8C0wFNdmCawUwRQn9lgtBpT2zBdMdRCK2wDEI3tEFohgwo7QClhy8AALTLTXM=AQAAAACAAADoAQAAywAAAA==eF5r28zVf0Wv0EFfozH9i2qhw7vVC47ZyBc63CsSu58rVeigXXXli654ocOKQ5xx0qKFDp/kTz+/LVzocMv9gZIakL64XNf+iFChQ86HU46TgPTOszv/VwLpDu1/J/OA9OX5MTcygXS3Tv2hdCDdeXHFqzQgvfLkrWkgeqdZdzmI/ufukgOimc0iMkB0awFbOogWiJuRBqJvTCwF08qPssD07w3pYNrrcBqYflIPoW1yIbRRBoS+kwahm6F0LpROh9JpI4QGAIjTuIM=AQAAAACAAADwAAAADAAAAA==eF5jYBhZAAAA8AABAQAAAACAAAC4BQAAnAAAAA==eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAACAAADAAwAAcQAAAA==eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAACAAADgAQAAeAAAAA==eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAACAAAA8AAAADAAAAA==eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping.prj b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping.prj
new file mode 100644
index 00000000000..1b6275d6ddf
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping.prj
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <mesh>mesh.vtu</mesh>
+    <geometry>line_60_geometry.gml</geometry>
+    <processes>
+        <process>
+            <name>HeatConduction</name>
+            <type>HEAT_CONDUCTION</type>
+            <integration_order>2</integration_order>
+            <thermal_conductivity>K</thermal_conductivity>
+            <heat_capacity>Cp</heat_capacity>
+            <density>rho</density>
+            <process_variables>
+                <process_variable>temperature</process_variable>
+            </process_variables>
+            <secondary_variables>
+                <secondary_variable internal_name="heat_flux_x" output_name="heat_flux_x"/>
+            </secondary_variables>
+            <mass_lumping>true</mass_lumping>
+        </process>
+    </processes>
+    <time_loop>
+        <processes>
+            <process ref="HeatConduction">
+                <nonlinear_solver>nonlinear_solver</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>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial> 0.0 </t_initial>
+                    <t_end> 39062500 </t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>500</repeat>
+                            <delta_t>78125</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>picard_masslumping</prefix>
+            <timesteps>
+                <pair>
+                    <repeat> 1 </repeat>
+                    <each_steps> 1 </each_steps>
+                </pair>
+                <pair>
+                    <repeat> 1 </repeat>
+                    <each_steps> 2 </each_steps>
+                </pair>
+                <pair>
+                    <repeat> 1 </repeat>
+                    <each_steps> 62 </each_steps>
+                </pair>
+                <pair>
+                    <repeat> 1 </repeat>
+                    <each_steps> 340 </each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable> temperature </variable>
+                <variable> heat_flux_x </variable>
+            </variables>
+            <suffix>_ts_{:timestep}_t_{:time}</suffix>
+        </output>
+    </time_loop>
+    <parameters>
+        <parameter>
+            <name>K</name>
+            <type>Constant</type>
+            <value>3.2</value>
+        </parameter>
+        <parameter>
+            <name>Cp</name>
+            <type>Constant</type>
+            <value>1000</value>
+        </parameter>
+        <parameter>
+            <name>rho</name>
+            <type>Constant</type>
+            <value>2500</value>
+        </parameter>
+        <parameter>
+            <name>T0</name>
+            <type>Constant</type>
+            <value>273.15</value>
+        </parameter>
+        <parameter>
+            <name>T_neumann</name>
+            <type>Constant</type>
+            <value>2</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>temperature</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>T0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>line_60_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Neumann</type>
+                    <parameter>T_neumann</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+    </process_variables>
+    <nonlinear_solvers>
+        <nonlinear_solver>
+            <name>nonlinear_solver</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/Parabolic/T/1D_neumann/picard_masslumping_ts_1_t_78125.000000.vtu b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_1_t_78125.000000.vtu
new file mode 100644
index 00000000000..c5b9679db1f
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_1_t_78125.000000.vtu
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="22" format="appended" RangeMin="45"                   RangeMax="103"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="heat_flux_x" format="appended" RangeMin="0"                    RangeMax="0.30969149054"        offset="64"                  />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="273.25564428"         offset="208"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="332"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="372"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="604"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="780"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="964"                 />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAACAAAAWAAAAHgAAAA==eF4z0zPWM9A1NDAz1k23NE8yTTRLTEo2BAA32AV2AQAAAACAAADoAQAAWAAAAA==eF5jWPDO8c/Fy/YMCfyzT1cftWdgmOG95UYPkJa5eC42GEg3cH1nkALSDF7WpQ/tgLTDx4LlIJphRmU+mJ6gaAqmGRL+2IJpi8MQmqELSo+CgQYAW4Ea2g==AQAAAACAAADoAQAASwAAAA==eF5bGVcqJy5S6MBicWBbl1ChQ6ljb1EmkG67eW95GpA++eFJNoh+k38nDUQ7+RWAaTPrdAi/Ig1MP0uH0G1pEDptlB5UNAB6RKvVAQAAAACAAADwAAAADAAAAA==eF5jYBhZAAAA8AABAQAAAACAAAC4BQAAnAAAAA==eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAACAAADAAwAAcQAAAA==eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAACAAADgAQAAeAAAAA==eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAACAAAA8AAAADAAAAA==eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_3_t_234375.000000.vtu b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_3_t_234375.000000.vtu
new file mode 100644
index 00000000000..6fbaef2f4f2
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_3_t_234375.000000.vtu
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="22" format="appended" RangeMin="45"                   RangeMax="103"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="heat_flux_x" format="appended" RangeMin="0"                    RangeMax="0.74089264091"        offset="64"                  />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="273.42489073"         offset="220"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="364"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="404"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="636"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="812"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="996"                 />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAACAAAAWAAAAHgAAAA==eF4z0zPWM9A1NDAz1k23NE8yTTRLTEo2BAA32AV2AQAAAACAAADoAQAAYwAAAA==eF5jSLhUnbL1uT3Dm2USij237Rkm/Ao8VbbRnoGh4HT6jyYgvcbiyaEgIM1gOSFbEURz2L56ZwekG9KbdoHpO4ptIJrhi2gQmGbgkYXQTM9twXTBRgjNUA6lRwG9AQAx7B+oAQAAAACAAADoAQAAWAAAAA==eF6bc8gy6oxYocPezDYmCeFCh/YXvKV1QoUOn03nx2UCaWutnn1pQFqiV7sARMtFFqWDaLaopjQQLeyYCaY3rU8D00tzIbRIOoQuSYPQaaP0gNIAV0+o1Q==AQAAAACAAADwAAAADAAAAA==eF5jYBhZAAAA8AABAQAAAACAAAC4BQAAnAAAAA==eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAACAAADAAwAAcQAAAA==eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAACAAADgAQAAeAAAAA==eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAACAAAA8AAAADAAAAA==eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_405_t_31640625.000000.vtu b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_405_t_31640625.000000.vtu
new file mode 100644
index 00000000000..3f2d14f8a67
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_405_t_31640625.000000.vtu
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="22" format="appended" RangeMin="45"                   RangeMax="103"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="heat_flux_x" format="appended" RangeMin="1.2823875295e-10"     RangeMax="1.9111255468"         offset="64"                  />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="277.62976692"         offset="656"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1208"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="1248"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1480"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1656"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1840"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAACAAAAWAAAAHgAAAA==eF4z0zPWM9A1NDAz1k23NE8yTTRLTEo2BAA32AV2AQAAAACAAADoAQAAqQEAAA==eF5jzFqY+GPyP3uGtI8/jbX+2jNskFSPj/1lz7DpVZnyou/2DCdF59QyfLVnUFA0rq//ZM+Q0/tPTPWDPYNY/P/Lr1/bM0yIW1X76rk9g5r2vm+eT+wZjiluSON+aM8wR/6VaPQdewaflx/4o64D9Qk8nMR52Z7B4JjRqp3n7BlWOGyu7jphz6BRxBOZdtiegYG7al3UPqD8tNtKDduB7jDgN2fcZM/QcOnTVZ/V9gwLTm9ir15iz3Ag7Zdhxjyg+k1bnoROs2dwWH6Bw2YCkO9i6hLVDlRv2rt5XgOQvzXwSEY5kC4+HRdQAKTFZHIb0oC0hu+pbXFAWiR99b4QIH0i48pubyCtICgZ6QSkP9gnslsA6QUbLqjqA+mEN8t+KwPpBo71iZJAmuGAzit+EC3heJcZRM9Orv5hB6S1GB+8BdFnOnkegeg11TOugmiNldNOgugNDOz7QHQDR/FGEM0QIrYEzD/yfBqYv+J+J5gO/lIDpqV4C8D0q4WJYFrBMBhMZ2xysfsPBP1SZmA+Q7g6mD5gKAHhv2CH0DM+24LpBQ9tAZG0og8=AQAAAACAAADoAQAAjAEAAA==eF4lzlsog2EYAGCtRm25YFskRDbjQkQSjV5uUC6WKybHi3+/Q+PNIilNTA5JOS03FJmUScpyCjHkLIocLigpK2USEeX9vv/quX0Ws1q6VCaE7PXbPLsR4SLgT3eTi5BSUPWqAISYpYszVTrCyMbDuDcZoX6rMKozASHZ2d5wGYew/B5sOdQiTIuGeFM0gsH+ZWyMRAgp0435hyMUvPVq5GEIUyszXRWhCGu7jlFlCIJ+u0T+o0GY97x6okjDgeDfpEYAv4gMnwqhLFUh7yOLxc+ETDKn+b5TRpZ7z/augulrL7e5yclY9ds4OdGa7+0nA5+yNtvJcOVLTAv5m+SJaCQ/jlw+C5kaOqmpI58TI3U1ZJjx+lok3Q78MZM7pkeRmXakVzCNudoTgRzrznQy14IW+pmz50VtzFLbnZUpLirrmX42ey2zaN9czXTN6URmtEw0M53Ct8A87ljhyr6GuZVg4zZMWLkuvYULjhquelrkDjnMXG2AZM+qwMVBycA2yQGr5ClK/gMqC7yuAQAAAACAAADwAAAADAAAAA==eF5jYBhZAAAA8AABAQAAAACAAAC4BQAAnAAAAA==eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAACAAADAAwAAcQAAAA==eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAACAAADgAQAAeAAAAA==eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAACAAAA8AAAADAAAAA==eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_500_t_39062500.000000.vtu b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_500_t_39062500.000000.vtu
new file mode 100644
index 00000000000..e86f57e7971
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_500_t_39062500.000000.vtu
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="22" format="appended" RangeMin="45"                   RangeMax="103"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="heat_flux_x" format="appended" RangeMin="4.6009063226e-09"     RangeMax="1.9200509574"         offset="64"                  />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15000001"         RangeMax="278.12928201"         offset="672"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1252"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="1292"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1524"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1700"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1884"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAACAAAAWAAAAHgAAAA==eF4z0zPWM9A1NDAz1k23NE8yTTRLTEo2BAA32AV2AQAAAACAAADoAQAAtAEAAA==eF5juOId1b7jnz3D6t1GW4r+2jNYRi/4+PqXPUPrTkP+oh/2DPIzNjFyf7NniHvzzGDPZ6C6503BXR/tGQ48llv+6Z09Q4x3VoXEa3sGPb7ZSV3P7RlcFjM/9Hpiz/AtOmNb1EN7hobVX+SL7tozKDCfyTh+w56B4fCPsnVX7BmmTN4/Ve6iPcMMlj8B0mfsGSL2sns8PAZU32Dwv/yQPYPBwgVpE/baMyzYPtu0bDtQf9GG+6Wb7BkSJjCnnF0DpKXljrktA7pDYv0FkYX2DA6/pZJ/zATSS4MnT5oMNCcjONe+F0irliitagXaWxA16WI9kC7foKdVDqRr1xrsKADSQtp1b9OBdN+3yT8TgLRI5NsH4UD6wIKTywKA9IZXHWzuQFpAa8pEeyDNYM9Xagqi3ym80QHSDVt+BSuD1EctmysJ4tfLXhUAyU98854VRK+zj/pjB6TVFmh/AtEVkpLPQbQNq/xdED1DyfQSiOawnHoMRCvkn9gNoj+c+bwBzI9qXQKiHVoWzwDRDemhvWD6m3cjiGZoUy4B0ybP08D0lI4IMF3g4QqmDxwytgMAYges7w==AQAAAACAAADoAQAAoQEAAA==eF4dykkohGEYAOCyxMHYxjKDiRokJNuF05slFEmEspSx/TP8wyv7ljBIGfthUrYoS5Il2ZdyxF+SIoxmYiwHkTiQ8X3f6bk8vhqLXicFQlXKhr4uG+FKUFzNpyKoXVa5mQSExx1jvwIQcmqmu2+jEIK49He7SISBmUqxKQTBfCiVFQQiWPICX+GPMJicdGctR/hLarWR+CBcLCdqdDKEcIe28FZPhCzhKXdbirAd+vwWI0FIvG8fFbkj5LeNnjq6IbTEG35iXREyNmb5CReEMLM+y4sYMNUnrIsRdj3ke4XEzH7diS8xojMu59MZ4VreVSQQDw6T1WvEvXPX2nFis8RKryVqj1QFHcSvCdvfRmLcsMhUTeyJeOmpJJ75XZbz9H+9RpcRjQ4rK0pifs3NJEfsywt5KCVuLQYXU92FMXuq2GbgooQ4+Py9RA01aUao597GDmqTWdpAtd4MrKIW7uzzVMf7DxV1yBCmpM4NeXBUWbS6lJq2b8X0Wj8uoWrl48w0z27maX0DM68ZmTpDOVOWoWLGiJTM6gWO+Q+sc8SYAQAAAACAAADwAAAADAAAAA==eF5jYBhZAAAA8AABAQAAAACAAAC4BQAAnAAAAA==eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAACAAADAAwAAcQAAAA==eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAACAAADgAQAAeAAAAA==eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAACAAAA8AAAADAAAAA==eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_65_t_5078125.000000.vtu b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_65_t_5078125.000000.vtu
new file mode 100644
index 00000000000..10a69637925
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_neumann/picard_masslumping_ts_65_t_5078125.000000.vtu
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="22" format="appended" RangeMin="45"                   RangeMax="103"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="heat_flux_x" format="appended" RangeMin="0"                    RangeMax="1.7751206582"         offset="64"                  />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="274.92689423"         offset="384"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="680"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="720"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="952"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1128"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1312"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAACAAAAWAAAAHgAAAA==eF4z0zPWM9A1NDAz1k23NE8yTTRLTEo2BAA32AV2AQAAAACAAADoAQAA3QAAAA==eF77Xx/++knaH3uGOHvnW59+2DMEhrrcKvhkz2A1/wDryZf2DHVno5k5HtozePDlBztctWc48EHoEP9JewaBrE9O33fbMyiIr86avBYozq3ye9Nce4aGV8zX43vsGRisxabeqATSDAbJdWlAekG0xL4gIK2w8do3W5D40des6kDaYQ0DpyCIv2NW4A87ID3vydEHIDoiNeUYiE4I/bkGRDdMNZwEohnmmpSB6S9xUWA6oMkOTC8wVQTTDF+YIHTKE1swHXEUQh9YCqEbWiE0QwqUdoDSwxcAAM9LTmM=AQAAAACAAADoAQAAygAAAA==eF6bvpmr/4peoYO9RmP6F9VChz+rFxyzkS90eFMkdj9XqtDBqurKF13xQoethzjjpEULHf7Ln35+W7jQ4Zn7AyU1IH1rua79EaFCh6IPpxwnAem9Z3f+rwTSvdr/TuYB6RvzY25kgvg69YfSgXT7xRWv0oD0opO3poHodWbd5SD6s7tLDoj+bRqRAaKbCtjSQbRA3Iw0EH19YimYlnqUBaa/bkgH0y6H08D0vXoIbZELoXUzIPTNNAjdBKVzoHQ6lE4bITQAdLK5vw==AQAAAACAAADwAAAADAAAAA==eF5jYBhZAAAA8AABAQAAAACAAAC4BQAAnAAAAA==eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAACAAADAAwAAcQAAAA==eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAACAAADgAQAAeAAAAA==eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAACAAAA8AAAADAAAAA==eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
-- 
GitLab