diff --git a/ProcessLib/HeatConduction/Tests.cmake b/ProcessLib/HeatConduction/Tests.cmake
index 12a31f6febe77c88bf200125171f2c6107a4ed85..dceab95729aae1e8e42f2e3ffe78bf074e4dd460 100644
--- a/ProcessLib/HeatConduction/Tests.cmake
+++ b/ProcessLib/HeatConduction/Tests.cmake
@@ -134,6 +134,129 @@ AddTest(
     REQUIREMENTS NOT OGS_USE_MPI
 )
 
+# a variation with a varying time step size
+AddTest(
+        NAME 1D_HeatConduction_dirichlet_varying_dt
+        PATH Parabolic/T/1D_dirichlet/varying_dt
+        EXECUTABLE ogs
+        EXECUTABLE_ARGS line_60_heat.xml
+        TESTER vtkdiff
+        DIFF_DATA
+        # numerical solution – ts 130
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        temperature temperature 4.6e-13 0
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        heat_flux heat_flux 7.8e-13 0
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        HeatFlowRate HeatFlowRate 7.5e-12 0
+        # numerical solution – ts 505
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        temperature temperature 9.4e-12 0
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        heat_flux heat_flux 5.1e-12 0
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        HeatFlowRate HeatFlowRate 5.5e-12 0
+        # numerical solution – ts 600
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        temperature temperature 1.3e-11 0
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        heat_flux heat_flux 6.4e-12 0
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        HeatFlowRate HeatFlowRate 6.4e-12 0
+    REQUIREMENTS NOT OGS_USE_MPI
+)
+
+# a variation with a varying time step size and <linear> optimization
+AddTest(
+        NAME 1D_HeatConduction_dirichlet_varying_dt_linear
+        PATH Parabolic/T/1D_dirichlet/varying_dt_linear
+        EXECUTABLE ogs
+        EXECUTABLE_ARGS line_60_heat.xml
+        TESTER vtkdiff
+        DIFF_DATA
+        # numerical solution – ts 130
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        temperature temperature 8e-13 0
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        heat_flux heat_flux 8.3e-13 0
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        HeatFlowRate HeatFlowRate 8.5e-12 0
+        # numerical solution – ts 505
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        temperature temperature 9.8e-12 0
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        heat_flux heat_flux 5.0e-12 0
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        HeatFlowRate HeatFlowRate 5.2e-12 0
+        # numerical solution – ts 600
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        temperature temperature 1.2e-11 0
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        heat_flux heat_flux 5.9e-12 0
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        HeatFlowRate HeatFlowRate 6.2e-12 0
+    REQUIREMENTS NOT OGS_USE_MPI
+)
+
+# a variation with a varying time step size and more optimizations
+AddTest(
+        NAME 1D_HeatConduction_dirichlet_varying_dt_linear_compute_only_on_dt_change
+        PATH Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change
+        EXECUTABLE ogs
+        EXECUTABLE_ARGS line_60_heat.xml
+        TESTER vtkdiff
+        DIFF_DATA
+        # numerical solution – ts 130
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        temperature temperature 8e-13 0
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        heat_flux heat_flux 8.3e-13 0
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        line_60_heat_ts_130_t_5078125.000000.vtu
+        HeatFlowRate HeatFlowRate 8.5e-12 0
+        # numerical solution – ts 505
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        temperature temperature 9.8e-12 0
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        heat_flux heat_flux 5.0e-12 0
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        line_60_heat_ts_505_t_31640625.000000.vtu
+        HeatFlowRate HeatFlowRate 5.2e-12 0
+        # numerical solution – ts 600
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        temperature temperature 1.2e-11 0
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        heat_flux heat_flux 5.9e-12 0
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        line_60_heat_ts_600_t_39062500.000000.vtu
+        HeatFlowRate HeatFlowRate 6.2e-12 0
+    REQUIREMENTS NOT OGS_USE_MPI
+)
+
 AddTest(
         NAME 1D_HeatConduction_neumann_picard
         PATH Parabolic/T/1D_neumann
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.gml b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.gml
new file mode 120000
index 0000000000000000000000000000000000000000..c25e6617da567a81e61a6c8e9efc36c0d383edca
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.gml
@@ -0,0 +1 @@
+../line_60_heat.gml
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.pvd b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.pvd
new file mode 100644
index 0000000000000000000000000000000000000000..5b0cf36a1dd8f37f949f71f0d5d6556d93f4cac0
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.pvd
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<VTKFile type="Collection" version="0.1" byte_order="LittleEndian" compressor="vtkZLibDataCompressor">
+  <Collection>
+    <DataSet timestep="0" group="" part="0" file="line_60_heat_ts_0_t_0.000000.vtu"/>
+    <DataSet timestep="5078125" group="" part="0" file="line_60_heat_ts_130_t_5078125.000000.vtu"/>
+    <DataSet timestep="7812500" group="" part="0" file="line_60_heat_ts_200_t_7812500.000000.vtu"/>
+    <DataSet timestep="31640625" group="" part="0" file="line_60_heat_ts_505_t_31640625.000000.vtu"/>
+    <DataSet timestep="39062500" group="" part="0" file="line_60_heat_ts_600_t_39062500.000000.vtu"/>
+  </Collection>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..99389beadeacf36fbb9f9b1a14d0707883aa3aac
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.vtu
@@ -0,0 +1 @@
+../line_60_heat.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.xml b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bab27be155b5c592b1e51e21af2aecefad357c4c
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat.xml
@@ -0,0 +1,34 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<OpenGeoSysProjectDiff base_file="../line_60_heat.prj">
+    <remove sel="/*/time_loop/processes/process/time_stepping/timesteps"/>
+    <add sel="/*/time_loop/processes/process/time_stepping">
+        <timesteps>
+            <pair>
+                <repeat>200</repeat>
+                <delta_t>39062.5</delta_t>
+            </pair>
+            <pair>
+                <repeat>400</repeat>
+                <delta_t>78125</delta_t>
+            </pair>
+        </timesteps>
+    </add>
+
+    <remove sel="/*/time_loop/output/timesteps"/>
+    <add sel="/*/time_loop/output">
+        <timesteps>
+            <pair>
+                <repeat> 1 </repeat>
+                <each_steps> 130 </each_steps>
+            </pair>
+            <pair>
+                <repeat> 1 </repeat>
+                <each_steps> 70 </each_steps>
+            </pair>
+            <pair>
+                <repeat> 1 </repeat>
+                <each_steps> 305 </each_steps>
+            </pair>
+        </timesteps>
+    </add>
+</OpenGeoSysProjectDiff>
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_0_t_0.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_0_t_0.000000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..ef67d7b507fa3fba094a26be5e188ac62627886b
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_0_t_0.000000.vtu
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="HeatFlowRate" format="appended" RangeMin="0"                    RangeMax="0"                    offset="88"                  />
+        <DataArray type="Float64" Name="heat_flux" format="appended" RangeMin="-4.8521187068e-14"    RangeMax="-4.8521187068e-14"    offset="152"                 />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="273.15"               offset="228"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="300"                 />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="360"                 />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="612"                 />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="808"                 />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1012"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9A1NDbQTTdPNDAzN00x1kvJLCqpBABJiAaoAQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAADgAAAAAAAAA=eF5jYBgFIwEAAAHoAAE=AQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAAGAAAAAAAAAA=eF4rsOW6vjhAe2/BKD0s6UIoDQBx/9AHAQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAAEwAAAAAAAAA=eF5LSwMCoUKHtFF6WNMAs5Sn/g==AQAAAAAAAAAAgAAAAAAAAPAAAAAAAAAADAAAAAAAAAA=eF5jYBhZAAAA8AABAQAAAAAAAAAAgAAAAAAAALgFAAAAAAAAnAAAAAAAAAA=eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAAAAAAAAgAAAAAAAAMADAAAAAAAAcQAAAAAAAAA=eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAeAAAAAAAAAA=eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAAAAAAAAgAAAAAAAADwAAAAAAAAADAAAAAAAAAA=eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_130_t_5078125.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_130_t_5078125.000000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..0081cb8e49b6e92d418f61c7e6613c3e2050c2ef
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_130_t_5078125.000000.vtu
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="HeatFlowRate" format="appended" RangeMin="-3.1074402311e-12"    RangeMax="0.7078753811"         offset="88"                  />
+        <DataArray type="Float64" Name="heat_flux" format="appended" RangeMin="-6.679809621e-09"     RangeMax="0.69908906127"        offset="376"                 />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="274.15"               offset="840"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1140"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="1200"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="1452"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1648"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1852"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9A1NDbQTTdPNDAzN00x1kvJLCqpBABJiAaoAQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAAtgAAAAAAAAA=eF5jOJPn+mrZM3sGMEiwBZEODAF7QfSCVVV7IeINUH4WmE4ILQXTa1Y1gNUfWBUFphtCTaHqO2whdI0tWHoVWP+CVau6bCF0FlQ+YC+SupDQ0FAg/ef///+tQNonFMwH6l4FsncHiC6zZfgFlP6fvpchECRtujcGRIV2740C06F7w8BU895VYFAENT8Bal8ChXyYewOg/AwoPwNNfQaafAIB9cTaj86HAXRzYQCmPsAWAAPKYtU=AQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAAOwEAAAAAAAA=eF7bwPOE9UPcM/u6zQYbdvU9tRev9FA95fnYfqOHRHMxywN7vXeH5crW3LA/+fvNn2ezL9r/UNV/o+p03H7fiVVn3ybssV+n8ub9pFfr7cW8l/9UrV9g331/38WXNv32j7qP/Lr0rcp+wpPfJlvFU+3tJtmvkVzla78u3OjCki4j+6AfSfuZnUXsH1Wp3iy//snOjiv+i3TcGTv5Vu2w+cvm2e2Sa9XPS4myU2h97di+wWYf9/XFAberFfctKbDl2rr/5V6Rde4Pu0z32X7TiOl/dH2JbUz/oa8adYm2tlzXFxccdbJ9EbhDrlVbzPYJlKaULwq0r0rF3nY9kBLZZwG291Cuw96210AFpVZ7X6CpWwdV5wKk1rHL7sWlnlj70fk3FgMDIt4Hwx0wcZi91aCAMgvYCwBzWd4UAQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAAvgAAAAAAAAA=eF5LSwMCpUKHI1VPJzyXK3TQC+c/s1K60EHuys7GBxKFDtPjv6WvECt0aGR17WcVLXSYcOse9wvhQodLE/1STID0k4tTnM4IFTqYPso/PwVIz/947VglkGab4304F0g/EZn8JgNIl/9+pJ0OpPOFPWenAenQ7ooiEC3QtTADROc+2JgGoh/qZ4Hp+/apYNpAIA1MH4mD0LPTIfSFNAidC6Uz0Oh0GvFhdBoB9Wlo4oTUk8vHZW4aGh8AGZ+0rw==AQAAAAAAAAAAgAAAAAAAAPAAAAAAAAAADAAAAAAAAAA=eF5jYBhZAAAA8AABAQAAAAAAAAAAgAAAAAAAALgFAAAAAAAAnAAAAAAAAAA=eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAAAAAAAAgAAAAAAAAMADAAAAAAAAcQAAAAAAAAA=eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAeAAAAAAAAAA=eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAAAAAAAAgAAAAAAAADwAAAAAAAAADAAAAAAAAAA=eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_200_t_7812500.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_200_t_7812500.000000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..0e0fa720a9a024d547da22678de736ae0cb30a15
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_200_t_7812500.000000.vtu
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="HeatFlowRate" format="appended" RangeMin="-2.9558577808e-12"    RangeMax="0.57078848908"        offset="88"                  />
+        <DataArray type="Float64" Name="heat_flux" format="appended" RangeMin="-5.8806559622e-12"    RangeMax="0.56613190966"        offset="384"                 />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="274.15"               offset="892"                 />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1232"                />
+      </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="1544"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="1740"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="1944"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9A1NDbQTTdPNDAzN00x1kvJLCqpBABJiAaoAQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAAvAAAAAAAAAA=eF5brbXR4pnzI3sGIHAINbUF0QyhrhCaoWAvhM6A8lvA/AOroqDiBWDxgNBUML1gVRRUXQlMPRoNAaGhtSB+w///6WDx///9ofINIHrFqlVg9atWrSqCucMW5LrQ0ElQutQWrGxVly1I9///nbYg0/7/z7cFOgII6mwZGEH6uvZ+AAn/n2K7Cgwm2q4G0w1QcxOg/kggkh8A5QdA+Rlo4ZOAxs9A049LPbH2o/NhAN1cGICpD7AFAOOxXoQ=AQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAAWgEAAAAAAAA=eF57vH/ZqgOyj+w35JTxcK17aL9xgmnKgrwH9nrvpkcbid21n/pEsLu46Yb9Sf2e8wErLttrR/ampTCcs5+kLnr7+9Gj9p9OX6zj5dpnr7L+yduz6zbbb0hhqTWtXmF/NN/kXf39OfY6Ye/8WxUm2H84yiu8i6vR3uNTX3E+U6H9IfHifUsYE+yva3OGl4b72D/qMv27qNvcPmb9Es5UHyV7u677JRcbuOwfVamWVZ35aPc68E/SSvZrdo+qVPSzXu2wC9oRd/JH4Uw7sXXun3R4yoF8uZP7vwfaHfqqUWO4Q81OdJ37w+4Dn23lW18H/lCaYvuwSmQd+92Ze3fKAQWWF+19EbhDrlVbzPYJlCbEB5lXpWJvux5IieyzsP2mEdN/KNdhb9troIJSK7h5MHXroOpcwBbL7sWlnlj70fk3FhfYcsX7YLgDJg6zt1oE6BKzgL0AH3/ccg==AQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAA3gAAAAAAAAA=eF5LSwMCpUKHiD3eBybKFzqkNDoxP5ApdJidraOXL1XosNwwpTtEotDh/Aa5M7PECh32Hz5s5yRa6HBkrdsRJ5FCB4llacf7hAsdJu3cHy8GpDWjoz+fFCp0qPHY8n02kF7WPvtII5BewZC+rBhIX31vVJ4DpPMjHrJkAunAkvVl6UB6kS7PuTQgnStm3Q2ii0z6ikD0bAGpLBD9Ij0vHUQr31uRBqIP2ZeCaVPHTDCtdiMNTNcXQejeNAitDqWjoXQGlE4nkw+j0wioT0MTJ6SeXD4uc9PQ+ABnx7FNAQAAAAAAAAAAgAAAAAAAAPAAAAAAAAAADAAAAAAAAAA=eF5jYBhZAAAA8AABAQAAAAAAAAAAgAAAAAAAALgFAAAAAAAAnAAAAAAAAAA=eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAAAAAAAAgAAAAAAAAMADAAAAAAAAcQAAAAAAAAA=eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAeAAAAAAAAAA=eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAAAAAAAAgAAAAAAAADwAAAAAAAAADAAAAAAAAAA=eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_505_t_31640625.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_505_t_31640625.000000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..76cddba8836d7da7040aa1bb6eff4918a462ff66
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_505_t_31640625.000000.vtu
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="HeatFlowRate" format="appended" RangeMin="-2.576901655e-12"     RangeMax="0.28377610615"        offset="88"                  />
+        <DataArray type="Float64" Name="heat_flux" format="appended" RangeMin="3.0760611835e-11"     RangeMax="0.28319450254"        offset="440"                 />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="274.15"               offset="1152"                />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1712"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="1772"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="2024"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="2220"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="2424"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9A1NDbQTTdPNDAzN00x1kvJLCqpBABJiAaoAQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAA5QAAAAAAAAA=eF5VUEtqw1AQ83VyAC8faRbZe1EZ45VxCbiFQlLa0kAKpjQ5zMSLXGCgZ/CJOjNPgWQ2QvORnt55nldPi3lZWAG7VERVgR1KdbxIq7n/S97HfJLP4BU2vPu66xfFlvsv5J3meR/Y4JX998Aae/Y31C2pewj+CAQX+jdY6838T+gr0vJupG7WAe/rnKtD9re7yNcAR+oNKc9D32wjX2U8hXzOY7xMN2j1Y/3RbKBxjm/19CJv1K00bPBB7nW2+Un9FSL+3pr33m+vmPLcMOSvuQcNed9z8H+ZyJnjwdfxnP4BO46AcA==AQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAA8wEAAAAAAAA=eF4B6AEX/i3mstXbH9I/+h6MS3ID0j/6fsRSP6/RPy0SRclPJtE/+gpu5oRt0D+Olyb2lBbPP1zM375wDs0/kK9PQE3Tyj+Qf8JueXbIPyoZ7BQICcY/9wUPHAqbwz/ESjj66TrBP1ZSob7g6b0/vOiOMuyluT9WkqA5hri1P73YeyMuK7I/4lc78lMFrj/i9yY6J3+oP6/EG1cTvqM/KtYWHsltnz+RfOgM/7SYP17JMqanLpM/Ink+BpFqjT+8krnQYUaGP4pflBFJqIA/4IvkhziaeD8Uv5OIDPFxPyh+of8712k/whcbKSFgYj/qleiSMs5ZPx7JMxFC5FE/cMVySRJ/SD+k+DXItY5AP0bxCylWGTY/KHyxXLweLT/CFasf+PAiP4UrFpBqUxg/pPDFHSvXDj9wvRIJaUwDPxSuWFsq1/c+KlyxPv8R7T7D9Ur4Vn7hPlK4Yo2Wx9Q+pHDFAjpcyD5I4YqF2S68PuF6JJ+HFrA+wvVI/tcfoj6F65H8tSWUPqRwvZLlGIY+SOF6JUDpdz7D9Sh+k4ZpPrkehS9y4Vo+pHA9ki/sSz56FK5Xsps8PsL1KHzR5yw+HoXrkXzLHD4L16PwxUAMPkfhehS/K/s9kML1KH7/6D0fhetR/F7TPXA9Ctcr6cA919jm5A==AQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAAggEAAAAAAAA=eF4lxWkog2EcAHBHjfDJfYwtx0cpV0PyICRmRESSiXebOfaPaYwPypGjkKmliAiFYswVhaz4IEZKUY5IjiIrkpT/87y/Lz+OQ8FAalbjnn/FQNqNvdcjIiAbloJuSRCQtTCP2ychkK6DwerZACCml3phiz8Ql6u9zAo/ILoHblTuC+QyKs252QeIIMXyOOcNZN5B//rhBWTC3JaVi5cNrhxaPIG4bqeeynDfXO3wmweQ6OIm8Sj+brDqCnGINU2L8Mo7zb7NHYhEneBuxUXJtj8zvpllDJzE8352JEO4VTCe1okXTVVwrfj9cvyjFv893ooA3O7z21qLh8ASqHE3190jFd4QJJhR4rKxsxsFfvJyU0I3J1040O0S04843EchnqYbTdp+eiQMt9GlEYWN9M2vhTp6zwBR0/v0MSq6Y7m9kp2Ro6B39D1x9PWqRXb2Wz9b46Rnh0uBPedVwxblq9h19wr2fCh/8QHHDjXwl7byn2v45Wp+RxV/iZL/H8/evtc=AQAAAAAAAAAAgAAAAAAAAPAAAAAAAAAADAAAAAAAAAA=eF5jYBhZAAAA8AABAQAAAAAAAAAAgAAAAAAAALgFAAAAAAAAnAAAAAAAAAA=eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAAAAAAAAgAAAAAAAAMADAAAAAAAAcQAAAAAAAAA=eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAeAAAAAAAAAA=eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAAAAAAAAgAAAAAAAADwAAAAAAAAADAAAAAAAAAA=eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_600_t_39062500.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_600_t_39062500.000000.vtu
new file mode 100644
index 0000000000000000000000000000000000000000..284abd3b56b7349c7cfd581ac2ebb20c72f63015
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt/line_60_heat_ts_600_t_39062500.000000.vtu
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor">
+  <UnstructuredGrid>
+    <FieldData>
+      <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="25" format="appended" RangeMin="45"                   RangeMax="121"                  offset="0"                   />
+    </FieldData>
+    <Piece NumberOfPoints="61"                   NumberOfCells="60"                  >
+      <PointData>
+        <DataArray type="Float64" Name="HeatFlowRate" format="appended" RangeMin="-2.3495280157e-12"    RangeMax="0.2553887269"         offset="88"                  />
+        <DataArray type="Float64" Name="heat_flux" format="appended" RangeMin="1.9210089253e-09"     RangeMax="0.25496440743"        offset="428"                 />
+        <DataArray type="Float64" Name="temperature" format="appended" RangeMin="273.15"               RangeMax="274.15"               offset="1140"                />
+      </PointData>
+      <CellData>
+        <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0"                    RangeMax="0"                    offset="1732"                />
+      </CellData>
+      <Points>
+        <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0"                    RangeMax="60"                   offset="1792"                />
+      </Points>
+      <Cells>
+        <DataArray type="Int64" Name="connectivity" format="appended" RangeMin=""                     RangeMax=""                     offset="2044"                />
+        <DataArray type="Int64" Name="offsets" format="appended" RangeMin=""                     RangeMax=""                     offset="2240"                />
+        <DataArray type="UInt8" Name="types" format="appended" RangeMin=""                     RangeMax=""                     offset="2444"                />
+      </Cells>
+    </Piece>
+  </UnstructuredGrid>
+  <AppendedData encoding="base64">
+   _AQAAAAAAAAAAgAAAAAAAABkAAAAAAAAAIQAAAAAAAAA=eF4z0zPVM9A1NDbQTTdPNDAzN00x1kvJLCqpBABJiAaoAQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAA3gAAAAAAAAA=eF5VkDEKwkAQRXMEL2O5aGNhl8IJIohpAkEIaCCigpLCQ1hayiSFB3AhR/Ay1jozO2vWbR6zf+f/mY2u5Xs6f40iObF13AhjmAgTOAnnAMbpqde13queaf/4qe/+9BkUQsSLsIahsMW1DX0Rd+oPwkZr70OKcX6guW5OgMKEevKbH8K+GtycxIr50Hk6xJJ5o3wjtnDQvlqZM2msjPUW8ezzrIup9J38H/Q191EcbAO/gX8XMCe/O7p8GgMXpr9vubY9G+LRSozsTfH8n92HzsrwVrJPyvrSfgEdEHdoAQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAA8wEAAAAAAAA=eF4B6AEX/mBZ4jtWUdA/xrM1i5U80D8oGSYl4v3PP1r01blzNM8/j3dYVrsizj/2ZYiVhdDMP8KKl9gxR8s/xMJ3KUSRyT/Egs1Z7rnHP1wc86WXzMU/KhFu0mnUwz9eNAbn6dvBP7t47d9C2b8/VpKWW7cdvD+JNfP68JK4PyOfnVOqQ7U/JH9JzZM3sj9I/rke5uauPxTLmqTA8qk/SB5l/jOSpT+uZLFuzcChP8Rvzqz47Zw/xO/R1cdVlz8qVsRbQ6KSP4nf+lsAdo0/8EXGzj4Ohz/wRfDMjtyBP0fyjqqJZXs/eiVjApXMdD+O5LkiG0NvP47kb8q+QWc/j+SfMVcgYT+4Yrls0PdYPx/JA/fuA1I/1ivZjrO7ST/XK8HRCDFCPxS+aB83dTk/FL6I1JuhMT9cr0Q88ysoP8IVa0ExZiA/7JF8BPUFFj/WI/n3hUUNP9cj+UuDQAM/rUfyl/UP+T5H4YtR4iTwPvYofgcmleQ+hOuVGN/32T6G65Uc6TXQPgvXKznuBsQ+ehS+WIl7uD4qXK8kT52tPpDCFWvZuKE+uB7Fr2H8lD5wPYrfw5WIPq5H4Yt8fHw+FK5H8lZPcD5cj8IXw2hiPlG4Hsm3S1Q+Ctej+CUkRT56FK5XYvkxPihcj+JXgCA+07/wzw==AQAAAAAAAAAAgAAAAAAAAOgBAAAAAAAAmQEAAAAAAAA=eF5LSwMCpUKH7TtWcisoFjowLeN4f0e+0GHvxX+mC+QKHbwV/13NkS10uCIUU+8qU+iwuKivW0e60OGvWvl7ZalCBw9TayNdyUKH90o3MjwlCh287JLMKsULHcI2Tb6wR6zQ4ZyhDIcIkOb//C24TrTQ4c3cT/d+iRQ69Kv2TusA0kciva3UgPQGheNZl4QLHZQOnNneDaRXvWReGwCkNU6cuCMPpI0PMLz8LlTooCJxu/M6kF6m2TtpL5DeucnoywogvWYbz/4ZQNrRIEWpB0g3mEVlNwHpFarvmKqBNJNobXYpkD636qttIZDeX/pRLQ9I+2TfepwNpA89sXDIAtKbRWyFM4H0zLt9thlAOiAlY3k6kI7f9ssORDP7SXxPA9JG3+SOgeg94ZJLQfRyQYF+EO1W0NQAojty/5eB6ONlNwpAtGjCixwQ/fRWZhaItlx6MwNEV+Q9TAfRc6Q8wbTU7DdpIFqAYyuYvv1vMpiWmdgAppc5l4Jpv8N5EHVC2WB6IlMmmLZ+lg6m90VD6FojCA0AAyG/hg==AQAAAAAAAAAAgAAAAAAAAPAAAAAAAAAADAAAAAAAAAA=eF5jYBhZAAAA8AABAQAAAAAAAAAAgAAAAAAAALgFAAAAAAAAnAAAAAAAAAA=eF59yTkOAQAARNEplQqFQiEiIiJi3/d9P9Mc2REcwHy/fF/612cDY5u5AF4EL4GXwSvgVfAaeB28Ad4Eb4G3wTvgXfAeeB98AD4EH4GPwSfgU/AZ+Bx8Ab4EX4GvwTfg2+wG1y67wbXPbnAdshtcx+wG1ym7wXXObnBdshtc1+wG1y27wXXPbnA9shtcz+wG1yu7wfX+8S+zGCQEAQAAAAAAAAAAgAAAAAAAAMADAAAAAAAAcQAAAAAAAAA=eF5dxbMBAwAAALDatm3b/9/VoZ2SJYHAT5BDHOYIRznGcU5wklOc5gxnOcd5LnCRS1zmCle5xnVucJNb3OYOd7nHfR7wkEc85glPecZzXvCSV7zmDW95x3s+8JFPfOYLX/nGd37wk1/85s//L9CvDhE=AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAeAAAAAAAAAA=eF4txcEKQQEAADBJkiRJkiRJkiRJkvSSJEmSJEmSJEmSJJ/vYLssHPqLOOqY40446ZTTzjjrnPMuuOiSy6646prrbrjpltvuuOue+x448NAjjz3x1DPPvfDSK6+98dY7733w0SefffHVN9/98NMvv/3x1z8+Jw5NAQAAAAAAAAAAgAAAAAAAADwAAAAAAAAADAAAAAAAAAA=eF5jZiYfAAAVrgC1
+  </AppendedData>
+</VTKFile>
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.gml b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.gml
new file mode 120000
index 0000000000000000000000000000000000000000..c25e6617da567a81e61a6c8e9efc36c0d383edca
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.gml
@@ -0,0 +1 @@
+../line_60_heat.gml
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.pvd b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.pvd
new file mode 120000
index 0000000000000000000000000000000000000000..62834aa5c3828e55c23b29b571def12698815c3a
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.pvd
@@ -0,0 +1 @@
+../varying_dt/line_60_heat.pvd
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..99389beadeacf36fbb9f9b1a14d0707883aa3aac
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.vtu
@@ -0,0 +1 @@
+../line_60_heat.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.xml b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4f356a5f27828ced3a529c7649145c9d08e9e91c
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat.xml
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<OpenGeoSysProjectDiff base_file="../line_60_heat.prj">
+    <add sel="/*/processes/process">
+        <linear>true</linear>
+    </add>
+
+    <remove sel="/*/time_loop/processes/process/time_stepping/timesteps"/>
+    <add sel="/*/time_loop/processes/process/time_stepping">
+        <timesteps>
+            <pair>
+                <repeat>200</repeat>
+                <delta_t>39062.5</delta_t>
+            </pair>
+            <pair>
+                <repeat>400</repeat>
+                <delta_t>78125</delta_t>
+            </pair>
+        </timesteps>
+    </add>
+
+    <remove sel="/*/time_loop/output/timesteps"/>
+    <add sel="/*/time_loop/output">
+        <timesteps>
+            <pair>
+                <repeat> 1 </repeat>
+                <each_steps> 130 </each_steps>
+            </pair>
+            <pair>
+                <repeat> 1 </repeat>
+                <each_steps> 70 </each_steps>
+            </pair>
+            <pair>
+                <repeat> 1 </repeat>
+                <each_steps> 305 </each_steps>
+            </pair>
+        </timesteps>
+    </add>
+</OpenGeoSysProjectDiff>
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_0_t_0.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_0_t_0.000000.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..3431dbadd15eb17d28fffcaefcf69be87041056b
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_0_t_0.000000.vtu
@@ -0,0 +1 @@
+../varying_dt/line_60_heat_ts_0_t_0.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_130_t_5078125.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_130_t_5078125.000000.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..83f84aee6b49d35ff2d1b7261c103ad077249b7e
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_130_t_5078125.000000.vtu
@@ -0,0 +1 @@
+../varying_dt/line_60_heat_ts_130_t_5078125.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_200_t_7812500.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_200_t_7812500.000000.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..0244ac3e5a33dfdb04ac65beff5ee38ba2e8fbd8
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_200_t_7812500.000000.vtu
@@ -0,0 +1 @@
+../varying_dt/line_60_heat_ts_200_t_7812500.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_505_t_31640625.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_505_t_31640625.000000.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..7cafef93cd7488574c988ed90d76be991cd3e421
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_505_t_31640625.000000.vtu
@@ -0,0 +1 @@
+../varying_dt/line_60_heat_ts_505_t_31640625.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_600_t_39062500.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_600_t_39062500.000000.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..ce92db3dd46e66f957be0dca0512198bf6af637c
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear/line_60_heat_ts_600_t_39062500.000000.vtu
@@ -0,0 +1 @@
+../varying_dt/line_60_heat_ts_600_t_39062500.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.gml b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.gml
new file mode 120000
index 0000000000000000000000000000000000000000..c25e6617da567a81e61a6c8e9efc36c0d383edca
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.gml
@@ -0,0 +1 @@
+../line_60_heat.gml
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.pvd b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.pvd
new file mode 120000
index 0000000000000000000000000000000000000000..62834aa5c3828e55c23b29b571def12698815c3a
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.pvd
@@ -0,0 +1 @@
+../varying_dt/line_60_heat.pvd
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..99389beadeacf36fbb9f9b1a14d0707883aa3aac
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.vtu
@@ -0,0 +1 @@
+../line_60_heat.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.xml b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e1ec26c894bdd60e53c14687fd77ad7a83129596
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat.xml
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<OpenGeoSysProjectDiff base_file="../line_60_heat.prj">
+    <add sel="/*/processes/process">
+        <linear>true</linear>
+        <linear_solver_compute_only_upon_timestep_change>true</linear_solver_compute_only_upon_timestep_change>
+    </add>
+
+    <remove sel="/*/time_loop/processes/process/time_stepping/timesteps"/>
+    <add sel="/*/time_loop/processes/process/time_stepping">
+        <timesteps>
+            <pair>
+                <repeat>200</repeat>
+                <delta_t>39062.5</delta_t>
+            </pair>
+            <pair>
+                <repeat>400</repeat>
+                <delta_t>78125</delta_t>
+            </pair>
+        </timesteps>
+    </add>
+
+    <remove sel="/*/time_loop/output/timesteps"/>
+    <add sel="/*/time_loop/output">
+        <timesteps>
+            <pair>
+                <repeat> 1 </repeat>
+                <each_steps> 130 </each_steps>
+            </pair>
+            <pair>
+                <repeat> 1 </repeat>
+                <each_steps> 70 </each_steps>
+            </pair>
+            <pair>
+                <repeat> 1 </repeat>
+                <each_steps> 305 </each_steps>
+            </pair>
+        </timesteps>
+    </add>
+</OpenGeoSysProjectDiff>
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_0_t_0.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_0_t_0.000000.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..3431dbadd15eb17d28fffcaefcf69be87041056b
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_0_t_0.000000.vtu
@@ -0,0 +1 @@
+../varying_dt/line_60_heat_ts_0_t_0.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_130_t_5078125.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_130_t_5078125.000000.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..83f84aee6b49d35ff2d1b7261c103ad077249b7e
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_130_t_5078125.000000.vtu
@@ -0,0 +1 @@
+../varying_dt/line_60_heat_ts_130_t_5078125.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_200_t_7812500.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_200_t_7812500.000000.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..0244ac3e5a33dfdb04ac65beff5ee38ba2e8fbd8
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_200_t_7812500.000000.vtu
@@ -0,0 +1 @@
+../varying_dt/line_60_heat_ts_200_t_7812500.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_505_t_31640625.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_505_t_31640625.000000.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..7cafef93cd7488574c988ed90d76be991cd3e421
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_505_t_31640625.000000.vtu
@@ -0,0 +1 @@
+../varying_dt/line_60_heat_ts_505_t_31640625.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_600_t_39062500.000000.vtu b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_600_t_39062500.000000.vtu
new file mode 120000
index 0000000000000000000000000000000000000000..ce92db3dd46e66f957be0dca0512198bf6af637c
--- /dev/null
+++ b/Tests/Data/Parabolic/T/1D_dirichlet/varying_dt_linear_compute_only_on_dt_change/line_60_heat_ts_600_t_39062500.000000.vtu
@@ -0,0 +1 @@
+../varying_dt/line_60_heat_ts_600_t_39062500.000000.vtu
\ No newline at end of file