From b68a2ef830bc93b2414d2b9f1a19291c12ff963c Mon Sep 17 00:00:00 2001
From: Christoph Lehmann <christoph.lehmann@ufz.de>
Date: Tue, 6 Feb 2024 13:29:54 +0100
Subject: [PATCH] [T/TRM] Added restart test case: Mockup2D

---
 .../ThermoRichardsMechanics/Tests.cmake       |   1 +
 .../Mockup2D/mockup_restart.xml               | 124 ++++++++++++++++++
 .../Mockup2D/mockup_results_restart.pvd       |   6 +
 ...mockup_results_restart_51840000.000000.vtu |   1 +
 ...mockup_results_restart_69120000.000000.vtu |   1 +
 ...mockup_results_restart_86400000.000000.vtu |   1 +
 6 files changed, 134 insertions(+)
 create mode 100644 Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_restart.xml
 create mode 100644 Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart.pvd
 create mode 120000 Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_51840000.000000.vtu
 create mode 120000 Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_69120000.000000.vtu
 create mode 120000 Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_86400000.000000.vtu

diff --git a/ProcessLib/ThermoRichardsMechanics/Tests.cmake b/ProcessLib/ThermoRichardsMechanics/Tests.cmake
index 65a99634521..54c39047d50 100644
--- a/ProcessLib/ThermoRichardsMechanics/Tests.cmake
+++ b/ProcessLib/ThermoRichardsMechanics/Tests.cmake
@@ -461,4 +461,5 @@ endif()
 
 if (NOT OGS_USE_MPI)
     OgsTest(PROJECTFILE ThermoRichardsMechanics/Mockup2D/mockup.prj RUNTIME 60)
+    OgsTest(PROJECTFILE ThermoRichardsMechanics/Mockup2D/mockup_restart.xml RUNTIME 30)
 endif()
diff --git a/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_restart.xml b/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_restart.xml
new file mode 100644
index 00000000000..4d2e098158f
--- /dev/null
+++ b/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_restart.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProjectDiff base_file="mockup.prj">
+    <replace sel="/*/meshes/mesh[1]/text()">mockup_results_51840000.000000.vtu</replace>
+
+    <add sel="/*/processes/process">
+        <initialize_porosity_from_medium_property>false</initialize_porosity_from_medium_property>
+    </add>
+
+    <replace sel="/*/time_loop/processes/process/time_stepping/t_initial/text()">51840000.000000</replace>
+
+    <!-- This is the step size from the non-restart version (see base_file) **after** t = 51840000.000000 s.
+         It's exact value is crucial to meet the tight tolerances set in this test. -->
+    <replace sel="/*/time_loop/processes/process/time_stepping/initial_dt/text()">4696576.89244747</replace>
+
+    <replace sel="/*/time_loop/output/prefix/text()">mockup_results_restart</replace>
+
+    <remove sel="/*/parameters/parameter[name='displacement0']" />
+    <add sel="/*/parameters">
+        <parameter>
+            <name>displacement0</name>
+            <type>MeshNode</type>
+            <mesh>mockup_results_51840000.000000</mesh>
+            <field_name>displacement</field_name>
+        </parameter>
+    </add>
+
+    <remove sel="/*/parameters/parameter[name='p0']" />
+    <add sel="/*/parameters">
+        <parameter>
+            <name>p0</name>
+            <type>MeshNode</type>
+            <mesh>mockup_results_51840000.000000</mesh>
+            <field_name>pressure</field_name>
+        </parameter>
+    </add>
+
+    <remove sel="/*/parameters/parameter[name='T_ref']" />
+    <add sel="/*/parameters">
+        <parameter>
+            <name>T_ref</name>
+            <type>MeshNode</type>
+            <mesh>mockup_results_51840000.000000</mesh>
+            <field_name>temperature</field_name>
+        </parameter>
+    </add>
+
+    <remove sel="/*/test_definition"/>
+    <add sel="/*">
+        <test_definition>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>displacement</field>
+                <absolute_tolerance>1e-15</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>epsilon</field>
+                <absolute_tolerance>2e-15</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>porosity</field>
+                <absolute_tolerance>2e-15</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>pressure</field>
+                <absolute_tolerance>6e-6</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>saturation</field>
+                <absolute_tolerance>4e-14</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>sigma</field>
+                <absolute_tolerance>8e-7</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>swelling_stress</field>
+                <absolute_tolerance>2e-7</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>temperature</field>
+                <absolute_tolerance>4e-12</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>intrinsic_permeability</field>
+                <absolute_tolerance>1e-15</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>relative_permeability</field>
+                <absolute_tolerance>6e-14</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>intrinsic_permeability_ip</field>
+                <absolute_tolerance>1e-15</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+            <vtkdiff>
+                <regex>mockup_results_restart_.*[.]vtu</regex>
+                <field>relative_permeability_ip</field>
+                <absolute_tolerance>5e-14</absolute_tolerance>
+                <relative_tolerance>0</relative_tolerance>
+            </vtkdiff>
+        </test_definition>
+    </add>
+</OpenGeoSysProjectDiff>
diff --git a/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart.pvd b/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart.pvd
new file mode 100644
index 00000000000..d9badb76474
--- /dev/null
+++ b/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart.pvd
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<VTKFile type="Collection" version="0.1" byte_order="LittleEndian" compressor="vtkZLibDataCompressor">
+  <Collection>
+    <DataSet timestep="51840000" group="" part="0" file="mockup_results_restart_51840000.000000.vtu"/>
+  </Collection>
+</VTKFile>
diff --git a/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_51840000.000000.vtu b/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_51840000.000000.vtu
new file mode 120000
index 00000000000..789f8320d65
--- /dev/null
+++ b/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_51840000.000000.vtu
@@ -0,0 +1 @@
+mockup_results_51840000.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_69120000.000000.vtu b/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_69120000.000000.vtu
new file mode 120000
index 00000000000..795be219169
--- /dev/null
+++ b/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_69120000.000000.vtu
@@ -0,0 +1 @@
+mockup_results_69120000.000000.vtu
\ No newline at end of file
diff --git a/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_86400000.000000.vtu b/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_86400000.000000.vtu
new file mode 120000
index 00000000000..3f8e386eed6
--- /dev/null
+++ b/Tests/Data/ThermoRichardsMechanics/Mockup2D/mockup_results_restart_86400000.000000.vtu
@@ -0,0 +1 @@
+mockup_results_86400000.000000.vtu
\ No newline at end of file
-- 
GitLab