From 88d6e7f539c0c5d520ce7aabbd29c33f40d3c55d Mon Sep 17 00:00:00 2001
From: zty <ichbinzty@gmail.com>
Date: Sun, 31 Mar 2019 23:27:13 +0200
Subject: [PATCH] [T] THM ctests with reference data.

---
 .../ThermoHydroMechanics/CMakeLists.txt       |   2 +
 ProcessLib/ThermoHydroMechanics/Tests.cmake   |  70 ++++
 .../Beam_sealed_bimaterial/beam_2nd.vtu       |   3 +
 ...ed_square_1e2_pcs_0_ts_10_t_100.000000.vtu |   3 +
 .../Beam_sealed_bimaterial/square_1e2.prj     | 323 +++++++++++++++++
 .../Beam_sealed_bimaterial/square_1x1.gml     |   3 +
 .../Beam_unsealed_bimaterial/beam_2nd.vtu     |   3 +
 ...d_square_1e2_pcs_0_ts_10_t_1000.000000.vtu |   3 +
 .../Beam_unsealed_bimaterial/square_1e2.prj   | 328 ++++++++++++++++++
 .../Beam_unsealed_bimaterial/square_1x1.gml   |   3 +
 ...d_square_1e0_pcs_0_ts_10_t_1000.000000.vtu |   3 +
 ..._square_1e0_pcs_0_ts_10_t_50000.000000.vtu |   3 +
 .../Point_injection/quarter_002_2nd.vtu       |   3 +
 .../Linear/Point_injection/square_1e2.prj     | 293 ++++++++++++++++
 .../Linear/Point_injection/square_1x1.gml     |   3 +
 ...d_square_1e0_pcs_0_ts_10_t_1000.000000.vtu |   3 +
 .../Square_sealed_homogeneous/square_1e0.prj  | 263 ++++++++++++++
 .../Square_sealed_homogeneous/square_1x1.gml  |   3 +
 .../square_1x1_quad2_1e0.vtu                  |   3 +
 19 files changed, 1318 insertions(+)
 create mode 100644 ProcessLib/ThermoHydroMechanics/Tests.cmake
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/beam_2nd.vtu
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/expected_square_1e2_pcs_0_ts_10_t_100.000000.vtu
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/square_1e2.prj
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/square_1x1.gml
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/beam_2nd.vtu
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/expected_square_1e2_pcs_0_ts_10_t_1000.000000.vtu
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/square_1e2.prj
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/square_1x1.gml
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Point_injection/expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Point_injection/expected_square_1e0_pcs_0_ts_10_t_50000.000000.vtu
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Point_injection/quarter_002_2nd.vtu
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Point_injection/square_1e2.prj
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Point_injection/square_1x1.gml
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1e0.prj
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1x1.gml
 create mode 100644 Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1x1_quad2_1e0.vtu

diff --git a/ProcessLib/ThermoHydroMechanics/CMakeLists.txt b/ProcessLib/ThermoHydroMechanics/CMakeLists.txt
index 5102404cc99..4abb37657ef 100644
--- a/ProcessLib/ThermoHydroMechanics/CMakeLists.txt
+++ b/ProcessLib/ThermoHydroMechanics/CMakeLists.txt
@@ -8,3 +8,5 @@ target_link_libraries(ThermoHydroMechanics
     PUBLIC ProcessLib
     PRIVATE ParameterLib
 )
+
+include(Tests.cmake)
diff --git a/ProcessLib/ThermoHydroMechanics/Tests.cmake b/ProcessLib/ThermoHydroMechanics/Tests.cmake
new file mode 100644
index 00000000000..d68df291ac1
--- /dev/null
+++ b/ProcessLib/ThermoHydroMechanics/Tests.cmake
@@ -0,0 +1,70 @@
+# ThermoHydroMechanics; Small deformation, linear poroelastic, homogeneous
+AddTest(
+    NAME ThermoHydroMechanics_square_1e0
+    PATH ThermoHydroMechanics/Linear/Square_sealed_homogeneous
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS square_1e0.prj
+    WRAPPER time
+    TESTER vtkdiff
+    REQUIREMENTS NOT OGS_USE_MPI
+    DIFF_DATA
+    expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu square_1e0_pcs_0_ts_10_t_1000.000000.vtu displacement displacement 1e-8 1e-8
+    expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu square_1e0_pcs_0_ts_10_t_1000.000000.vtu pressure pressure 1e-8 1e-8
+    expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu square_1e0_pcs_0_ts_10_t_1000.000000.vtu temperature temperature 1e-8 1e-8
+    expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu square_1e0_pcs_0_ts_10_t_1000.000000.vtu epsilon epsilon 1e-8 1e-8
+    expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu square_1e0_pcs_0_ts_10_t_1000.000000.vtu sigma sigma 1e-8 1e-8
+)
+
+# ThermoHydroMechanics; Small deformation, linear poroelastic, sealed, bimaterial
+AddTest(
+    NAME ThermoHydroMechanics_square_1e2_sealed_bimaterial
+    PATH ThermoHydroMechanics/Linear/Beam_sealed_bimaterial
+    RUNTIME 5
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS square_1e2.prj
+    WRAPPER time
+    TESTER vtkdiff
+    REQUIREMENTS NOT OGS_USE_MPI
+    DIFF_DATA
+    expected_square_1e2_pcs_0_ts_10_t_100.000000.vtu square_1e2_pcs_0_ts_10_t_100.000000.vtu displacement displacement 1e-8 1e-8
+    expected_square_1e2_pcs_0_ts_10_t_100.000000.vtu square_1e2_pcs_0_ts_10_t_100.000000.vtu pressure pressure 1e-8 1e-8
+    expected_square_1e2_pcs_0_ts_10_t_100.000000.vtu square_1e2_pcs_0_ts_10_t_100.000000.vtu temperature temperature 1e-8 1e-8
+    expected_square_1e2_pcs_0_ts_10_t_100.000000.vtu square_1e2_pcs_0_ts_10_t_100.000000.vtu epsilon epsilon 1e-8 1e-8
+    expected_square_1e2_pcs_0_ts_10_t_100.000000.vtu square_1e2_pcs_0_ts_10_t_100.000000.vtu sigma sigma 1e-8 1e-8
+)
+
+# ThermoHydroMechanics; Small deformation, linear poroelastic, unsealed, bimaterial
+AddTest(
+    NAME ThermoHydroMechanics_square_1e2_unsealed_bimaterial
+    PATH ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial
+    RUNTIME 5
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS square_1e2.prj
+    WRAPPER time
+    TESTER vtkdiff
+    REQUIREMENTS NOT OGS_USE_MPI
+    DIFF_DATA
+    expected_square_1e2_pcs_0_ts_10_t_1000.000000.vtu square_1e2_pcs_0_ts_10_t_1000.000000.vtu displacement displacement 1e-8 1e-8
+    expected_square_1e2_pcs_0_ts_10_t_1000.000000.vtu square_1e2_pcs_0_ts_10_t_1000.000000.vtu pressure pressure 1e-8 1e-8
+    expected_square_1e2_pcs_0_ts_10_t_1000.000000.vtu square_1e2_pcs_0_ts_10_t_1000.000000.vtu temperature temperature 1e-8 1e-8
+    expected_square_1e2_pcs_0_ts_10_t_1000.000000.vtu square_1e2_pcs_0_ts_10_t_1000.000000.vtu epsilon epsilon 1e-8 1e-8
+    expected_square_1e2_pcs_0_ts_10_t_1000.000000.vtu square_1e2_pcs_0_ts_10_t_1000.000000.vtu sigma sigma 1e-8 1e-8
+)
+
+# ThermoHydroMechanics; Small deformation, linear poroelastic, point heat source consolidation
+AddTest(
+    NAME LARGE_ThermoHydroMechanics_square_1e2_point_heat_injection
+    PATH ThermoHydroMechanics/Linear/Point_injection
+    RUNTIME 400
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS square_1e2.prj
+    WRAPPER time
+    TESTER vtkdiff
+    REQUIREMENTS NOT OGS_USE_MPI
+    DIFF_DATA
+    expected_square_1e0_pcs_0_ts_10_t_50000.000000.vtu square_1e0_pcs_0_ts_10_t_50000.000000.vtu displacement displacement 1e-5 1e-5
+    expected_square_1e0_pcs_0_ts_10_t_50000.000000.vtu square_1e0_pcs_0_ts_10_t_50000.000000.vtu pressure pressure 1e-5 1e-5
+    expected_square_1e0_pcs_0_ts_10_t_50000.000000.vtu square_1e0_pcs_0_ts_10_t_50000.000000.vtu temperature temperature 1e-5 1e-5
+    expected_square_1e0_pcs_0_ts_10_t_50000.000000.vtu square_1e0_pcs_0_ts_10_t_50000.000000.vtu epsilon epsilon 1e-5 1e-5
+    expected_square_1e0_pcs_0_ts_10_t_50000.000000.vtu square_1e0_pcs_0_ts_10_t_50000.000000.vtu sigma sigma 1e-5 1e-5
+)
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/beam_2nd.vtu b/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/beam_2nd.vtu
new file mode 100644
index 00000000000..97046413c5b
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/beam_2nd.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d56b531eb0a81888fe525e17fd08b087bde80b4c15d3b54d58616e6cf771cc05
+size 192434
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/expected_square_1e2_pcs_0_ts_10_t_100.000000.vtu b/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/expected_square_1e2_pcs_0_ts_10_t_100.000000.vtu
new file mode 100644
index 00000000000..fdd10da3b3a
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/expected_square_1e2_pcs_0_ts_10_t_100.000000.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ae640efd0d16acc0cfd7175e9d692690fc9b151fecb869a21a83881f2c3842c4
+size 356872
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/square_1e2.prj b/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/square_1e2.prj
new file mode 100644
index 00000000000..8f84cb29607
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/square_1e2.prj
@@ -0,0 +1,323 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <mesh axially_symmetric="true">beam_2nd.vtu</mesh>
+    <geometry>square_1x1.gml</geometry>
+    <processes>
+        <process>
+            <name>THERMO_HYDRO_MECHANICS</name>
+            <type>THERMO_HYDRO_MECHANICS</type>
+            <integration_order>3</integration_order>
+            <dimension>2</dimension>
+            <constitutive_relation>
+                <type>LinearElasticIsotropic</type>
+                <youngs_modulus>E</youngs_modulus>
+                <poissons_ratio>nu</poissons_ratio>
+            </constitutive_relation>
+            <intrinsic_permeability>k</intrinsic_permeability>
+            <specific_storage>S</specific_storage>
+            <biot_coefficient>alpha</biot_coefficient>
+            <porosity>phi</porosity>
+            <solid_density>rho_sr</solid_density>
+            <fluid_density>rho_fr</fluid_density>
+            <fluid_viscosity>mu</fluid_viscosity>
+            <fluid_volumetric_thermal_expansion_coefficient>beta_f</fluid_volumetric_thermal_expansion_coefficient>
+            <solid_linear_thermal_expansion_coefficient>alpha_s</solid_linear_thermal_expansion_coefficient>
+            <solid_specific_heat_capacity>C_s</solid_specific_heat_capacity>
+            <solid_thermal_conductivity>lambda_s</solid_thermal_conductivity>
+            <fluid_specific_heat_capacity>C_f</fluid_specific_heat_capacity>
+            <fluid_thermal_conductivity>lambda_f</fluid_thermal_conductivity>
+            <reference_temperature>T0</reference_temperature>
+            <process_variables>
+                <displacement>displacement</displacement>
+                <pressure>pressure</pressure>
+                <temperature>temperature</temperature>
+            </process_variables>
+            <secondary_variables>
+                <secondary_variable type="static" internal_name="sigma" output_name="sigma"/>
+                <secondary_variable type="static" internal_name="epsilon" output_name="epsilon"/>
+            </secondary_variables>
+            <specific_body_force>0 0</specific_body_force>
+        </process>
+    </processes>
+    <time_loop>
+        <processes>
+            <process ref="THERMO_HYDRO_MECHANICS">
+                <nonlinear_solver>basic_newton</nonlinear_solver>
+                <convergence_criterion>
+                    <type>Residual</type>
+                    <norm_type>NORM2</norm_type>
+                    <abstol>1e-5</abstol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0</t_initial>
+                    <t_end>100</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>100</repeat>
+                            <delta_t>10</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>square_1e2</prefix>
+            <timesteps>
+                <pair>
+                    <repeat>1</repeat>
+                    <each_steps>10</each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable>displacement</variable>
+                <variable>pressure</variable>
+                <variable>temperature</variable>
+                <variable>sigma</variable>
+                <variable>epsilon</variable>
+            </variables>
+        </output>
+    </time_loop>
+    <parameters>
+        <parameter>
+            <name>E</name>
+            <type>Group</type>
+            <group_id_property>MaterialIDs</group_id_property>
+            <index_values>
+                <index>0</index>
+                <value>19</value>
+            </index_values>
+            <index_values>
+                <index>1</index>
+                <value>0.95</value>
+            </index_values>
+            <index_values>
+                <index>2</index>
+                <value>9.5</value>
+            </index_values>
+        </parameter>
+        <parameter>
+            <name>alpha_s</name>
+            <type>Group</type>
+            <group_id_property>MaterialIDs</group_id_property>
+            <index_values>
+                <index>0</index>
+                <value>0.23333e-5</value>
+            </index_values>
+            <index_values>
+                <index>1</index>
+                <value>0.23333e-5</value>
+            </index_values>
+            <index_values>
+                <index>2</index>
+                <value>0.46667e-5</value>
+            </index_values>
+        </parameter>
+        <parameter>
+            <name>phi</name>
+            <type>Group</type>
+            <group_id_property>MaterialIDs</group_id_property>
+            <index_values>
+                <index>0</index>
+                <value>0.1</value>
+            </index_values>
+            <index_values>
+                <index>1</index>
+                <value>0</value>
+            </index_values>
+            <index_values>
+                <index>2</index>
+                <value>0.1</value>
+            </index_values>
+        </parameter>
+        <parameter>
+            <name>k</name>
+            <type>Group</type>
+            <group_id_property>MaterialIDs</group_id_property>
+            <index_values>
+                <index>0</index>
+                <value>1e-6</value>
+            </index_values>
+            <index_values>
+                <index>1</index>
+                <value>1e-16</value>
+            </index_values>
+            <index_values>
+                <index>2</index>
+                <value>1e-6</value>
+            </index_values>
+        </parameter>
+        <parameter>
+            <name>alpha</name>
+            <type>Group</type>
+            <group_id_property>MaterialIDs</group_id_property>
+            <index_values>
+                <index>0</index>
+                <value>1</value>
+            </index_values>
+            <index_values>
+                <index>1</index>
+                <value>0</value>
+            </index_values>
+            <index_values>
+                <index>2</index>
+                <value>1</value>
+            </index_values>
+        </parameter>
+        <parameter>
+            <name>nu</name>
+            <type>Constant</type>
+            <value>0.3</value>
+        </parameter>
+        <parameter>
+            <name>S</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>rho_sr</name>
+            <type>Constant</type>
+            <value>1.75e-6</value>
+        </parameter>
+        <parameter>
+            <name>beta_f</name>
+            <type>Constant</type>
+            <value>2.07e-4</value>
+        </parameter>
+        <parameter>
+            <name>lambda_s</name>
+            <type>Constant</type>
+            <value>2.5e-3</value>
+        </parameter>
+        <parameter>
+            <name>C_s</name>
+            <type>Constant</type>
+            <value>1714.0</value>
+        </parameter>
+        <parameter>
+            <name>T0</name>
+            <type>Constant</type>
+            <value>283.15</value>
+        </parameter>
+        <parameter>
+            <name>displacement0</name>
+            <type>Constant</type>
+            <values>0 0</values>
+        </parameter>
+        <parameter>
+            <name>pressure_ic</name>
+            <type>Constant</type>
+            <values>0</values>
+        </parameter>
+        <parameter>
+            <name>dirichlet0</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>temperature_ic</name>
+            <type>Constant</type>
+            <value>283.15</value>
+        </parameter>
+        <parameter>
+            <name>temperature_bc_left</name>
+            <type>Constant</type>
+            <value>363.15</value>
+        </parameter>
+        <parameter>
+            <name>rho_fr</name>
+            <type>Constant</type>
+            <value>1e-6</value>
+        </parameter>
+        <parameter>
+            <name>mu</name>
+            <type>Constant</type>
+            <value>1.278e-9</value>
+        </parameter>
+        <parameter>
+            <name>C_f</name>
+            <type>Constant</type>
+            <value>4186</value>
+        </parameter>
+        <parameter>
+            <name>lambda_f</name>
+            <type>Constant</type>
+            <value>0.56e-3</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>displacement</name>
+            <components>2</components>
+            <order>2</order>
+            <initial_condition>displacement0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <component>0</component>
+                    <parameter>dirichlet0</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>bottom</geometry>
+                    <type>Dirichlet</type>
+                    <component>1</component>
+                    <parameter>dirichlet0</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>pressure</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>pressure_ic</initial_condition>
+            <boundary_conditions>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>temperature</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>temperature_ic</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <component>0</component>
+                    <parameter>temperature_bc_left</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+    </process_variables>
+    <nonlinear_solvers>
+        <nonlinear_solver>
+            <name>basic_newton</name>
+            <type>Newton</type>
+            <max_iter>50</max_iter>
+            <linear_solver>general_linear_solver</linear_solver>
+        </nonlinear_solver>
+    </nonlinear_solvers>
+    <linear_solvers>
+        <linear_solver>
+            <name>general_linear_solver</name>
+            <lis>-i bicgstab -p ilu -tol 1e-16 -maxiter 10000</lis>
+            <eigen>
+                <solver_type>BiCGSTAB</solver_type>
+                <precon_type>ILUT</precon_type>
+                <max_iteration_step>10000</max_iteration_step>
+                <error_tolerance>1e-16</error_tolerance>
+            </eigen>
+            <petsc>
+                <prefix>sd</prefix>
+                <parameters>-sd_ksp_type cg -sd_pc_type bjacobi -sd_ksp_rtol 1e-16 -sd_ksp_max_it 10000</parameters>
+            </petsc>
+        </linear_solver>
+    </linear_solvers>
+</OpenGeoSysProject>
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/square_1x1.gml b/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/square_1x1.gml
new file mode 100644
index 00000000000..472140a5202
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Beam_sealed_bimaterial/square_1x1.gml
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cc39b7e701db9413add64e21ebdca8d5192de5996d4b00b43848fcedad979b0e
+size 1133
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/beam_2nd.vtu b/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/beam_2nd.vtu
new file mode 100644
index 00000000000..97046413c5b
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/beam_2nd.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d56b531eb0a81888fe525e17fd08b087bde80b4c15d3b54d58616e6cf771cc05
+size 192434
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/expected_square_1e2_pcs_0_ts_10_t_1000.000000.vtu b/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/expected_square_1e2_pcs_0_ts_10_t_1000.000000.vtu
new file mode 100644
index 00000000000..e01d0d066e5
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/expected_square_1e2_pcs_0_ts_10_t_1000.000000.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0e79fa4019cf033b3f93f65cb56b37a0666e7a89ceaf510b9e9f17159c28a82a
+size 335560
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/square_1e2.prj b/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/square_1e2.prj
new file mode 100644
index 00000000000..e5ae4709a99
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/square_1e2.prj
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <mesh axially_symmetric="true">beam_2nd.vtu</mesh>
+    <geometry>square_1x1.gml</geometry>
+    <processes>
+        <process>
+            <name>THERMO_HYDRO_MECHANICS</name>
+            <type>THERMO_HYDRO_MECHANICS</type>
+            <integration_order>3</integration_order>
+            <dimension>2</dimension>
+            <constitutive_relation>
+                <type>LinearElasticIsotropic</type>
+                <youngs_modulus>E</youngs_modulus>
+                <poissons_ratio>nu</poissons_ratio>
+            </constitutive_relation>
+            <intrinsic_permeability>k</intrinsic_permeability>
+            <specific_storage>S</specific_storage>
+            <biot_coefficient>alpha</biot_coefficient>
+            <porosity>phi</porosity>
+            <solid_density>rho_sr</solid_density>
+            <fluid_density>rho_fr</fluid_density>
+            <fluid_viscosity>mu</fluid_viscosity>
+            <fluid_volumetric_thermal_expansion_coefficient>beta_f</fluid_volumetric_thermal_expansion_coefficient>
+            <solid_linear_thermal_expansion_coefficient>alpha_s</solid_linear_thermal_expansion_coefficient>
+            <solid_specific_heat_capacity>C_s</solid_specific_heat_capacity>
+            <solid_thermal_conductivity>lambda_s</solid_thermal_conductivity>
+            <fluid_specific_heat_capacity>C_f</fluid_specific_heat_capacity>
+            <fluid_thermal_conductivity>lambda_f</fluid_thermal_conductivity>
+            <reference_temperature>T0</reference_temperature>
+            <process_variables>
+                <displacement>displacement</displacement>
+                <pressure>pressure</pressure>
+                <temperature>temperature</temperature>
+            </process_variables>
+            <secondary_variables>
+                <secondary_variable type="static" internal_name="sigma" output_name="sigma"/>
+                <secondary_variable type="static" internal_name="epsilon" output_name="epsilon"/>
+            </secondary_variables>
+            <specific_body_force>0 0</specific_body_force>
+        </process>
+    </processes>
+    <time_loop>
+        <processes>
+            <process ref="THERMO_HYDRO_MECHANICS">
+                <nonlinear_solver>basic_newton</nonlinear_solver>
+                <convergence_criterion>
+                    <type>Residual</type>
+                    <norm_type>NORM2</norm_type>
+                    <abstol>1e-5</abstol>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0</t_initial>
+                    <t_end>1000</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>10</repeat>
+                            <delta_t>100</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>square_1e2</prefix>
+            <timesteps>
+                <pair>
+                    <repeat>1</repeat>
+                    <each_steps>10</each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable>displacement</variable>
+                <variable>pressure</variable>
+                <variable>temperature</variable>
+                <variable>sigma</variable>
+                <variable>epsilon</variable>
+            </variables>
+        </output>
+    </time_loop>
+    <parameters>
+        <parameter>
+            <name>E</name>
+            <type>Group</type>
+            <group_id_property>MaterialIDs</group_id_property>
+            <index_values>
+                <index>0</index>
+                <value>20</value>
+            </index_values>
+            <index_values>
+                <index>1</index>
+                <value>0.1</value>
+            </index_values>
+            <index_values>
+                <index>2</index>
+                <value>10</value>
+            </index_values>
+        </parameter>
+        <parameter>
+            <name>alpha_s</name>
+            <type>Group</type>
+            <group_id_property>MaterialIDs</group_id_property>
+            <index_values>
+                <index>0</index>
+                <value>0.2333333333e-5</value>
+            </index_values>
+            <index_values>
+                <index>1</index>
+                <value>0.2333333333e-5</value>
+            </index_values>
+            <index_values>
+                <index>2</index>
+                <value>0.4666666667e-5</value>
+            </index_values>
+        </parameter>
+        <parameter>
+            <name>phi</name>
+            <type>Group</type>
+            <group_id_property>MaterialIDs</group_id_property>
+            <index_values>
+                <index>0</index>
+                <value>0.1</value>
+            </index_values>
+            <index_values>
+                <index>1</index>
+                <value>0</value>
+            </index_values>
+            <index_values>
+                <index>2</index>
+                <value>0.1</value>
+            </index_values>
+        </parameter>
+        <parameter>
+            <name>k</name>
+            <type>Group</type>
+            <group_id_property>MaterialIDs</group_id_property>
+            <index_values>
+                <index>0</index>
+                <value>1e-6</value>
+            </index_values>
+            <index_values>
+                <index>1</index>
+                <value>1e-6</value>
+            </index_values>
+            <index_values>
+                <index>2</index>
+                <value>1e-6</value>
+            </index_values>
+        </parameter>
+        <parameter>
+            <name>alpha</name>
+            <type>Group</type>
+            <group_id_property>MaterialIDs</group_id_property>
+            <index_values>
+                <index>0</index>
+                <value>1</value>
+            </index_values>
+            <index_values>
+                <index>1</index>
+                <value>0</value>
+            </index_values>
+            <index_values>
+                <index>2</index>
+                <value>1</value>
+            </index_values>
+        </parameter>
+        <parameter>
+            <name>nu</name>
+            <type>Constant</type>
+            <value>0.3</value>
+        </parameter>
+        <parameter>
+            <name>S</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>rho_sr</name>
+            <type>Constant</type>
+            <value>1.75e-6</value>
+        </parameter>
+        <parameter>
+            <name>beta_f</name>
+            <type>Constant</type>
+            <value>2.07e-4</value>
+        </parameter>
+        <parameter>
+            <name>lambda_s</name>
+            <type>Constant</type>
+            <value>2.5e-3</value>
+        </parameter>
+        <parameter>
+            <name>C_s</name>
+            <type>Constant</type>
+            <value>1714.0</value>
+        </parameter>
+        <parameter>
+            <name>T0</name>
+            <type>Constant</type>
+            <value>283.15</value>
+        </parameter>
+        <parameter>
+            <name>displacement0</name>
+            <type>Constant</type>
+            <values>0 0</values>
+        </parameter>
+        <parameter>
+            <name>pressure_ic</name>
+            <type>Constant</type>
+            <values>0</values>
+        </parameter>
+        <parameter>
+            <name>dirichlet0</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>Neumann0</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>temperature_ic</name>
+            <type>Constant</type>
+            <value>283.15</value>
+        </parameter>
+        <parameter>
+            <name>temperature_bc_left</name>
+            <type>Constant</type>
+            <value>363.15</value>
+        </parameter>
+        <parameter>
+            <name>rho_fr</name>
+            <type>Constant</type>
+            <value>1e-6</value>
+        </parameter>
+        <parameter>
+            <name>mu</name>
+            <type>Constant</type>
+            <value>1.278e-9</value>
+        </parameter>
+        <parameter>
+            <name>C_f</name>
+            <type>Constant</type>
+            <value>4186</value>
+        </parameter>
+        <parameter>
+            <name>lambda_f</name>
+            <type>Constant</type>
+            <value>0.56</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>displacement</name>
+            <components>2</components>
+            <order>2</order>
+            <initial_condition>displacement0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <component>0</component>
+                    <parameter>dirichlet0</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>bottom</geometry>
+                    <type>Dirichlet</type>
+                    <component>1</component>
+                    <parameter>dirichlet0</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>pressure</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>pressure_ic</initial_condition>
+            <boundary_conditions>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>temperature</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>temperature_ic</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <component>0</component>
+                    <parameter>temperature_bc_left</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+    </process_variables>
+    <nonlinear_solvers>
+        <nonlinear_solver>
+            <name>basic_newton</name>
+            <type>Newton</type>
+            <max_iter>50</max_iter>
+            <linear_solver>general_linear_solver</linear_solver>
+        </nonlinear_solver>
+    </nonlinear_solvers>
+    <linear_solvers>
+        <linear_solver>
+            <name>general_linear_solver</name>
+            <lis>-i bicgstab -p ilu -tol 1e-16 -maxiter 10000</lis>
+            <eigen>
+                <solver_type>BiCGSTAB</solver_type>
+                <precon_type>ILUT</precon_type>
+                <max_iteration_step>10000</max_iteration_step>
+                <error_tolerance>1e-16</error_tolerance>
+            </eigen>
+            <petsc>
+                <prefix>sd</prefix>
+                <parameters>-sd_ksp_type cg -sd_pc_type bjacobi -sd_ksp_rtol 1e-16 -sd_ksp_max_it 10000</parameters>
+            </petsc>
+        </linear_solver>
+    </linear_solvers>
+</OpenGeoSysProject>
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/square_1x1.gml b/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/square_1x1.gml
new file mode 100644
index 00000000000..472140a5202
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Beam_unsealed_bimaterial/square_1x1.gml
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cc39b7e701db9413add64e21ebdca8d5192de5996d4b00b43848fcedad979b0e
+size 1133
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu b/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu
new file mode 100644
index 00000000000..04d4e90ea83
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:04bb17ef4747b70c8f3df046cbba73bd16c02077dc271973fb9bcc43616cf3e9
+size 457220
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/expected_square_1e0_pcs_0_ts_10_t_50000.000000.vtu b/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/expected_square_1e0_pcs_0_ts_10_t_50000.000000.vtu
new file mode 100644
index 00000000000..405dda331fd
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/expected_square_1e0_pcs_0_ts_10_t_50000.000000.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:56ed62cdfe5f19514b193eac3919f66c94647d9a0c354d9b31d0ac61253ce164
+size 460562
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/quarter_002_2nd.vtu b/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/quarter_002_2nd.vtu
new file mode 100644
index 00000000000..b2f12bf3f2d
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/quarter_002_2nd.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:875fd6c188f4a5b59b9b341c7cc908d105c2d8155c35ffe0cd1985e68eb0de04
+size 185692
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/square_1e2.prj b/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/square_1e2.prj
new file mode 100644
index 00000000000..159678752a1
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/square_1e2.prj
@@ -0,0 +1,293 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <mesh axially_symmetric="true">quarter_002_2nd.vtu</mesh>
+    <geometry>square_1x1.gml</geometry>
+    <processes>
+        <process>
+            <name>THERMO_HYDRO_MECHANICS</name>
+            <type>THERMO_HYDRO_MECHANICS</type>
+            <integration_order>4</integration_order>
+            <dimension>2</dimension>
+            <constitutive_relation>
+                <type>LinearElasticIsotropic</type>
+                <youngs_modulus>E</youngs_modulus>
+                <poissons_ratio>nu</poissons_ratio>
+            </constitutive_relation>
+            <intrinsic_permeability>k</intrinsic_permeability>
+            <specific_storage>S</specific_storage>
+            <biot_coefficient>alpha</biot_coefficient>
+            <porosity>phi</porosity>
+            <solid_density>rho_sr</solid_density>
+            <fluid_density>rho_fr</fluid_density>
+            <fluid_viscosity>mu</fluid_viscosity>
+            <fluid_volumetric_thermal_expansion_coefficient>beta_f</fluid_volumetric_thermal_expansion_coefficient>
+            <solid_linear_thermal_expansion_coefficient>alpha_s</solid_linear_thermal_expansion_coefficient>
+            <solid_specific_heat_capacity>C_s</solid_specific_heat_capacity>
+            <solid_thermal_conductivity>lambda_s</solid_thermal_conductivity>
+            <fluid_specific_heat_capacity>C_f</fluid_specific_heat_capacity>
+            <fluid_thermal_conductivity>lambda_f</fluid_thermal_conductivity>
+            <reference_temperature>T0</reference_temperature>
+            <process_variables>
+                <displacement>displacement</displacement>
+                <pressure>pressure</pressure>
+                <temperature>temperature</temperature>
+            </process_variables>
+            <secondary_variables>
+                <secondary_variable type="static" internal_name="sigma" output_name="sigma"/>
+                <secondary_variable type="static" internal_name="epsilon" output_name="epsilon"/>
+            </secondary_variables>
+            <specific_body_force>0 0</specific_body_force>
+        </process>
+    </processes>
+    <time_loop>
+        <processes>
+            <process ref="THERMO_HYDRO_MECHANICS">
+                <nonlinear_solver>basic_newton</nonlinear_solver>
+                <convergence_criterion>
+                    <type>PerComponentDeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <abstols>1e-5 1e-5 1e-5 1e-5</abstols>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0</t_initial>
+                    <t_end>50000</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>10</repeat>
+                            <delta_t>5000</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>square_1e0</prefix>
+            <timesteps>
+                <pair>
+                    <repeat>1</repeat>
+                    <each_steps>10</each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable>displacement</variable>
+                <variable>pressure</variable>
+                <variable>temperature</variable>
+                <variable>sigma</variable>
+                <variable>epsilon</variable>
+            </variables>
+        </output>
+    </time_loop>
+    <parameters>
+        <parameter>
+            <name>E</name>
+            <type>Constant</type>
+            <value>5000000000</value>
+        </parameter>
+        <parameter>
+            <name>nu</name>
+            <type>Constant</type>
+            <value>0.3</value>
+        </parameter>
+        <parameter>
+            <name>k</name>
+            <type>Constant</type>
+            <value>2e-20</value>
+        </parameter>
+        <parameter>
+            <name>S</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>alpha</name>
+            <type>Constant</type>
+            <value>1</value>
+        </parameter>
+        <parameter>
+            <name>phi</name>
+            <type>Constant</type>
+            <value>0.16</value>
+        </parameter>
+        <parameter>
+            <name>rho_sr</name>
+            <type>Constant</type>
+            <value>2290</value>
+        </parameter>
+        <parameter>
+            <name>alpha_s</name>
+            <type>Constant</type>
+            <value>1.5e-5</value>
+        </parameter>
+        <parameter>
+            <name>beta_f</name>
+            <type>Constant</type>
+            <value>4e-4</value>
+        </parameter>
+        <parameter>
+            <name>lambda_s</name>
+            <type>Constant</type>
+            <value>1.838</value>
+        </parameter>
+        <parameter>
+            <name>C_s</name>
+            <type>Constant</type>
+            <value>917.654</value>
+        </parameter>
+        <parameter>
+            <name>T0</name>
+            <type>Constant</type>
+            <value>273.15</value>
+        </parameter>
+        <parameter>
+            <name>displacement0</name>
+            <type>Constant</type>
+            <values>0 0</values>
+        </parameter>
+        <parameter>
+            <name>pressure_ic</name>
+            <type>Constant</type>
+            <values>0</values>
+        </parameter>
+        <parameter>
+            <name>dirichlet0</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>Neumann0</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>temperature_ic</name>
+            <type>Constant</type>
+            <value>273.15</value>
+        </parameter>
+        <parameter>
+            <name>pressure_bc_left</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>temperature_bc_left</name>
+            <type>Constant</type>
+            <value>273.15</value>
+        </parameter>
+        <parameter>
+            <name>temperature_source_term</name>
+            <type>Constant</type>
+            <value>150</value>
+        </parameter>
+        <parameter>
+            <name>rho_fr</name>
+            <type>Constant</type>
+            <value>999.1</value>
+        </parameter>
+        <parameter>
+            <name>mu</name>
+            <type>Constant</type>
+            <value>1e-3</value>
+        </parameter>
+        <parameter>
+            <name>C_f</name>
+            <type>Constant</type>
+            <value>4280</value>
+        </parameter>
+        <parameter>
+            <name>lambda_f</name>
+            <type>Constant</type>
+            <value>0.6</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>displacement</name>
+            <components>2</components>
+            <order>2</order>
+            <initial_condition>displacement0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>bottom</geometry>
+                    <type>Dirichlet</type>
+                    <component>1</component>
+                    <parameter>dirichlet0</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <component>0</component>
+                    <parameter>dirichlet0</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>pressure</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>pressure_ic</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>out</geometry>
+                    <type>Dirichlet</type>
+                    <component>0</component>
+                    <parameter>pressure_bc_left</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>temperature</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>temperature_ic</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>out</geometry>
+                    <type>Dirichlet</type>
+                    <component>0</component>
+                    <parameter>temperature_bc_left</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+            <source_terms>
+                <source_term>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>center</geometry>
+                    <type>Nodal</type>
+                    <parameter>temperature_source_term</parameter>
+                </source_term>
+            </source_terms>
+        </process_variable>
+    </process_variables>
+    <nonlinear_solvers>
+        <nonlinear_solver>
+            <name>basic_newton</name>
+            <type>Newton</type>
+            <max_iter>50</max_iter>
+            <linear_solver>general_linear_solver</linear_solver>
+        </nonlinear_solver>
+    </nonlinear_solvers>
+    <linear_solvers>
+        <linear_solver>
+            <name>general_linear_solver</name>
+            <lis>-i bicgstab -p ilu -tol 1e-16 -maxiter 10000</lis>
+            <eigen>
+                <solver_type>BiCGSTAB</solver_type>
+                <precon_type>ILUT</precon_type>
+                <max_iteration_step>10000</max_iteration_step>
+                <error_tolerance>1e-8</error_tolerance>
+            </eigen>
+            <petsc>
+                <prefix>sd</prefix>
+                <parameters>-sd_ksp_type cg -sd_pc_type bjacobi -sd_ksp_rtol 1e-16 -sd_ksp_max_it 10000</parameters>
+            </petsc>
+        </linear_solver>
+    </linear_solvers>
+</OpenGeoSysProject>
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/square_1x1.gml b/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/square_1x1.gml
new file mode 100644
index 00000000000..e06ad003f98
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Point_injection/square_1x1.gml
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fe58d69d8a678f35e866f0dcadec37aad6c42cbfa12cacc4ec5473494f822e38
+size 2598
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu b/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu
new file mode 100644
index 00000000000..a862716ac7a
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/expected_square_1e0_pcs_0_ts_10_t_1000.000000.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dcd83e50c02cceec44c7447cf98973fd03eb0faded7a7136670e526bb6466efa
+size 3775
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1e0.prj b/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1e0.prj
new file mode 100644
index 00000000000..727f1e8b899
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1e0.prj
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <mesh axially_symmetric="true">square_1x1_quad2_1e0.vtu</mesh>
+    <geometry>square_1x1.gml</geometry>
+    <processes>
+        <process>
+            <name>THERMO_HYDRO_MECHANICS</name>
+            <type>THERMO_HYDRO_MECHANICS</type>
+            <integration_order>4</integration_order>
+            <dimension>2</dimension>
+            <constitutive_relation>
+                <type>LinearElasticIsotropic</type>
+                <youngs_modulus>E</youngs_modulus>
+                <poissons_ratio>nu</poissons_ratio>
+            </constitutive_relation>
+            <intrinsic_permeability>k</intrinsic_permeability>
+            <specific_storage>S</specific_storage>
+            <biot_coefficient>alpha</biot_coefficient>
+            <porosity>phi</porosity>
+            <solid_density>rho_sr</solid_density>
+            <fluid_density>rho_fr</fluid_density>
+            <fluid_viscosity>mu</fluid_viscosity>
+            <fluid_volumetric_thermal_expansion_coefficient>beta_f</fluid_volumetric_thermal_expansion_coefficient>
+            <solid_linear_thermal_expansion_coefficient>alpha_s</solid_linear_thermal_expansion_coefficient>
+            <solid_specific_heat_capacity>C_s</solid_specific_heat_capacity>
+            <solid_thermal_conductivity>lambda_s</solid_thermal_conductivity>
+            <fluid_specific_heat_capacity>C_f</fluid_specific_heat_capacity>
+            <fluid_thermal_conductivity>lambda_f</fluid_thermal_conductivity>
+            <reference_temperature>T0</reference_temperature>
+            <process_variables>
+                <temperature>temperature</temperature>
+                <pressure>pressure</pressure>
+                <displacement>displacement</displacement>
+            </process_variables>
+            <secondary_variables>
+                <secondary_variable type="static" internal_name="sigma" output_name="sigma"/>
+                <secondary_variable type="static" internal_name="epsilon" output_name="epsilon"/>
+            </secondary_variables>
+            <specific_body_force>0 0</specific_body_force>
+        </process>
+    </processes>
+    <time_loop>
+        <processes>
+            <process ref="THERMO_HYDRO_MECHANICS">
+                <nonlinear_solver>basic_newton</nonlinear_solver>
+                <convergence_criterion>
+                    <type>PerComponentDeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <abstols>1e-7 1e-5 1e-5 1e-5</abstols>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0</t_initial>
+                    <t_end>1000</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>10</repeat>
+                            <delta_t>100</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>square_1e0</prefix>
+            <timesteps>
+                <pair>
+                    <repeat>1</repeat>
+                    <each_steps>10</each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable>displacement</variable>
+                <variable>pressure</variable>
+                <variable>temperature</variable>
+                <variable>sigma</variable>
+                <variable>epsilon</variable>
+            </variables>
+        </output>
+    </time_loop>
+    <parameters>
+        <parameter>
+            <name>E</name>
+            <type>Constant</type>
+            <value>21</value>
+        </parameter>
+        <parameter>
+            <name>nu</name>
+            <type>Constant</type>
+            <value>0.3</value>
+        </parameter>
+        <parameter>
+            <name>k</name>
+            <type>Constant</type>
+            <value>1e-6</value>
+        </parameter>
+        <parameter>
+            <name>S</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>alpha</name>
+            <type>Constant</type>
+            <value>1</value>
+        </parameter>
+        <parameter>
+            <name>phi</name>
+            <type>Constant</type>
+            <value>0.4</value>
+        </parameter>
+        <parameter>
+            <name>rho_sr</name>
+            <type>Constant</type>
+            <value>1.75e-6</value>
+        </parameter>
+        <parameter>
+            <name>alpha_s</name>
+            <type>Constant</type>
+            <value>0.7e-5</value>
+        </parameter>
+        <parameter>
+            <name>beta_f</name>
+            <type>Constant</type>
+            <value>2.07e-4</value>
+        </parameter>
+        <parameter>
+            <name>lambda_s</name>
+            <type>Constant</type>
+            <value>0.9e-3</value>
+        </parameter>
+        <parameter>
+            <name>C_s</name>
+            <type>Constant</type>
+            <value>1714.0</value>
+        </parameter>
+        <parameter>
+            <name>T0</name>
+            <type>Constant</type>
+            <value>273.15</value>
+        </parameter>
+        <parameter>
+            <name>displacement0</name>
+            <type>Constant</type>
+            <values>0 0</values>
+        </parameter>
+        <parameter>
+            <name>pressure_ic</name>
+            <type>Constant</type>
+            <values>0</values>
+        </parameter>
+        <parameter>
+            <name>dirichlet0</name>
+            <type>Constant</type>
+            <value>0</value>
+        </parameter>
+        <parameter>
+            <name>temperature_ic</name>
+            <type>Constant</type>
+            <value>273.15</value>
+        </parameter>
+        <parameter>
+            <name>temperature_bc_left</name>
+            <type>Constant</type>
+            <value>353.15</value>
+        </parameter>
+        <parameter>
+            <name>rho_fr</name>
+            <type>Constant</type>
+            <value>1e-6</value>
+        </parameter>
+        <parameter>
+            <name>mu</name>
+            <type>Constant</type>
+            <value>1.278e-9</value>
+        </parameter>
+        <parameter>
+            <name>C_f</name>
+            <type>Constant</type>
+            <value>4186</value>
+        </parameter>
+        <parameter>
+            <name>lambda_f</name>
+            <type>Constant</type>
+            <value>0.56</value>
+        </parameter>
+    </parameters>
+    <process_variables>
+        <process_variable>
+            <name>displacement</name>
+            <components>2</components>
+            <order>2</order>
+            <initial_condition>displacement0</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <component>0</component>
+                    <parameter>dirichlet0</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>bottom</geometry>
+                    <type>Dirichlet</type>
+                    <component>1</component>
+                    <parameter>dirichlet0</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>pressure</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>pressure_ic</initial_condition>
+            <boundary_conditions>
+            </boundary_conditions>
+        </process_variable>
+        <process_variable>
+            <name>temperature</name>
+            <components>1</components>
+            <order>1</order>
+            <initial_condition>temperature_ic</initial_condition>
+            <boundary_conditions>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <component>0</component>
+                    <parameter>temperature_bc_left</parameter>
+                </boundary_condition>
+            </boundary_conditions>
+        </process_variable>
+    </process_variables>
+    <nonlinear_solvers>
+        <nonlinear_solver>
+            <name>basic_newton</name>
+            <type>Newton</type>
+            <max_iter>50</max_iter>
+            <linear_solver>general_linear_solver</linear_solver>
+        </nonlinear_solver>
+    </nonlinear_solvers>
+    <linear_solvers>
+        <linear_solver>
+            <name>general_linear_solver</name>
+            <lis>-i bicgstab -p ilu -tol 1e-16 -maxiter 10000</lis>
+            <eigen>
+                <solver_type>BiCGSTAB</solver_type>
+                <precon_type>ILUT</precon_type>
+                <max_iteration_step>10000</max_iteration_step>
+                <error_tolerance>1e-16</error_tolerance>
+            </eigen>
+            <petsc>
+                <prefix>sd</prefix>
+                <parameters>-sd_ksp_type cg -sd_pc_type bjacobi -sd_ksp_rtol 1e-16 -sd_ksp_max_it 10000</parameters>
+            </petsc>
+        </linear_solver>
+    </linear_solvers>
+</OpenGeoSysProject>
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1x1.gml b/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1x1.gml
new file mode 100644
index 00000000000..d47737cc409
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1x1.gml
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6080489c93ce68c1a51c292698ecb7fef60a1d0cc1a3655c90988aa9a7d3b03d
+size 1125
diff --git a/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1x1_quad2_1e0.vtu b/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1x1_quad2_1e0.vtu
new file mode 100644
index 00000000000..832750be45e
--- /dev/null
+++ b/Tests/Data/ThermoHydroMechanics/Linear/Square_sealed_homogeneous/square_1x1_quad2_1e0.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:63e0885eded57de4ed24c0146d5ba3caa54916f2614c696a6c34d3936e52426b
+size 1632
-- 
GitLab