From 55ecd3769d0c81e00f7a8e768d57d55e43d32d9d Mon Sep 17 00:00:00 2001
From: Dmitri Naumov <dmitri.naumov@ufz.de>
Date: Tue, 5 Feb 2019 16:00:25 +0100
Subject: [PATCH] [T] RM; Anisotropic K in fully saturated flow.

The original tensor is rotated by approximately 30 degree.
---
 ProcessLib/RichardsMechanics/Tests.cmake      |  18 ++
 .../flow_fully_saturated_anisotropic.prj      | 276 ++++++++++++++++++
 ...ated_anisotropic_pcs_0_ts_1_t_1.000000.vtu |   3 +
 ...ated_anisotropic_pcs_0_ts_2_t_2.000000.vtu |   3 +
 4 files changed, 300 insertions(+)
 create mode 100644 Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic.prj
 create mode 100644 Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic_pcs_0_ts_1_t_1.000000.vtu
 create mode 100644 Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic_pcs_0_ts_2_t_2.000000.vtu

diff --git a/ProcessLib/RichardsMechanics/Tests.cmake b/ProcessLib/RichardsMechanics/Tests.cmake
index e121a9815d8..c8de028c6f9 100644
--- a/ProcessLib/RichardsMechanics/Tests.cmake
+++ b/ProcessLib/RichardsMechanics/Tests.cmake
@@ -72,6 +72,24 @@ AddTest(
     GLOB flow_fully_saturated_pcs_0_ts_*.vtu NodalForces NodalForces 1e-15 0
 )
 
+AddTest(
+    NAME RichardsMechanics_square_1e2_flow_fully_saturated_anisotropic
+    PATH RichardsMechanics
+    EXECUTABLE ogs
+    EXECUTABLE_ARGS flow_fully_saturated_anisotropic.prj
+    WRAPPER time
+    TESTER vtkdiff
+    REQUIREMENTS NOT OGS_USE_MPI
+    DIFF_DATA
+    GLOB flow_fully_saturated_anisotropic_pcs_0_ts_*.vtu displacement displacement 2e-14 0
+    GLOB flow_fully_saturated_anisotropic_pcs_0_ts_*.vtu sigma sigma 1e-14 0
+    GLOB flow_fully_saturated_anisotropic_pcs_0_ts_*.vtu epsilon epsilon 1e-15 0
+    GLOB flow_fully_saturated_anisotropic_pcs_0_ts_*.vtu pressure pressure 1e-15 1e-15
+    GLOB flow_fully_saturated_anisotropic_pcs_0_ts_*.vtu velocity velocity 1e-15 1e-15
+    GLOB flow_fully_saturated_anisotropic_pcs_0_ts_*.vtu HydraulicFlow HydraulicFlow 1e-15 0
+    GLOB flow_fully_saturated_anisotropic_pcs_0_ts_*.vtu NodalForces NodalForces 1e-15 0
+)
+
 AddTest(
     NAME RichardsMechanics_RichardsFlow_2d_small
     PATH RichardsMechanics
diff --git a/Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic.prj b/Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic.prj
new file mode 100644
index 00000000000..341afe8a88f
--- /dev/null
+++ b/Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic.prj
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<OpenGeoSysProject>
+    <mesh>square_1x1_quad8_1e2.vtu</mesh>
+    <geometry>square_1x1.gml</geometry>
+    <processes>
+        <process>
+            <name>RM</name>
+            <type>RICHARDS_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>
+            <solid_bulk_modulus>K_SR</solid_bulk_modulus>
+            <fluid_bulk_modulus>K_LR</fluid_bulk_modulus>
+            <biot_coefficient>alpha</biot_coefficient>
+            <solid_density>rho_sr</solid_density>
+            <process_variables>
+                <displacement>displacement</displacement>
+                <pressure>pressure</pressure>
+            </process_variables>
+            <material_property>
+                <fluid>
+                    <density>
+                        <type>Constant</type>
+                        <value>1</value>
+                    </density>
+                    <viscosity>
+                        <type>Constant</type>
+                        <value>1e-9</value>
+                    </viscosity>
+                </fluid>
+                <porous_medium>
+                    <porous_medium id="0">
+                        <permeability>
+                            <permeability_tensor_entries>k</permeability_tensor_entries>
+                            <type>Constant</type>
+                        </permeability>
+                        <porosity>
+                            <type>Constant</type>
+                            <porosity_parameter>phi</porosity_parameter>
+                        </porosity>
+                        <storage>
+                            <type>Constant</type>
+                            <value>1e+300</value>
+                        </storage>
+                        <capillary_pressure>
+                            <type>Curve</type>
+                            <curve>
+                                <coords>1 0.98684211 0.97368421 0.96052632 0.94894737 0.92105263 0.89473684 0.86842105 0.84210526 0.81578947 0.78947368 0.65789474 0.63157895 0.57894737 0.52631579 0.39473684 0.26315789
+                                </coords>
+                                <values>1421.99634 1707.55369 2050.45507 2462.21599 2892.29884 3232.80969 3590.71602 3988.24638 4429.78757 4920.21206 5464.93174 9238.24221 10261.0136 12658.7874 15616.8683 26399.6732 44627.5611
+                                </values>
+                            </curve>
+                        </capillary_pressure>
+                        <relative_permeability>
+                            <type>Curve</type>
+                            <curve>
+                                <coords>0.26315789 0.39473684 0.52631579 0.57894737 0.63157895 0.65789474 0.78947368 0.81578947 0.84210526 0.86842105 0.89473684 0.92105263 0.94894737 0.96052632 0.97368421 0.98684211 1
+                                    </coords>
+                                <values>4.43E-05 0.00026547 0.00159003 0.00325358 0.00665757 0.00952343 0.05704014 0.08159396 0.11671736 0.16696017 0.23883078 0.34163922 0.49931406 0.58449912 0.69907308 0.8361059 1
+                                    </values>
+                            </curve>
+                        </relative_permeability>
+                    </porous_medium>
+                </porous_medium>
+            </material_property>
+            <secondary_variables>
+                <secondary_variable type="static" internal_name="sigma" output_name="sigma"/>
+                <secondary_variable type="static" internal_name="epsilon" output_name="epsilon"/>
+                <secondary_variable type="static" internal_name="velocity" output_name="velocity"/>
+                <secondary_variable type="static" internal_name="saturation" output_name="saturation"/>
+            </secondary_variables>
+            <specific_body_force>0 0</specific_body_force>
+            <temperature> temp </temperature>
+        </process>
+    </processes>
+    <time_loop>
+        <processes>
+            <process ref="RM">
+                <nonlinear_solver>basic_newton</nonlinear_solver>
+                <convergence_criterion>
+                    <type>PerComponentDeltaX</type>
+                    <norm_type>NORM2</norm_type>
+                    <abstols>1e-14 1e-16 1e-16</abstols>
+                </convergence_criterion>
+                <time_discretization>
+                    <type>BackwardEuler</type>
+                </time_discretization>
+                <time_stepping>
+                    <type>FixedTimeStepping</type>
+                    <t_initial>0</t_initial>
+                    <t_end>2</t_end>
+                    <timesteps>
+                        <pair>
+                            <repeat>2</repeat>
+                            <delta_t>1</delta_t>
+                        </pair>
+                    </timesteps>
+                </time_stepping>
+            </process>
+        </processes>
+        <output>
+            <type>VTK</type>
+            <prefix>flow_fully_saturated_anisotropic</prefix>
+            <timesteps>
+                <pair>
+                    <repeat>10000</repeat>
+                    <each_steps>1</each_steps>
+                </pair>
+            </timesteps>
+            <variables>
+                <variable>displacement</variable>
+                <variable>pressure</variable>
+                <variable>sigma</variable>
+                <variable>epsilon</variable>
+                <variable>velocity</variable>
+                <variable>saturation</variable>
+            </variables>
+        </output>
+    </time_loop>
+    <parameters>
+        <!-- Mechanics -->
+        <parameter>
+            <name>K_SR</name>
+            <type>Constant</type>
+            <value>1e100</value>
+        </parameter>
+        <parameter>
+            <name>E</name>
+            <type>Constant</type>
+            <value>1e10</value>
+        </parameter>
+        <parameter>
+            <name>nu</name>
+            <type>Constant</type>
+            <value>.3</value>
+        </parameter>
+        <!-- Model parameters -->
+        <parameter>
+            <name>k</name>
+            <type>Constant</type>
+            <values>7.75e-13 3.89711e-13 3.89711e-13 3.25e-13</values>
+        </parameter>
+        <parameter>
+            <name>mu</name>
+            <type>Constant</type>
+            <value>1e-9</value>
+        </parameter>
+        <parameter>
+            <name>alpha</name>
+            <type>Constant</type>
+            <value>1</value>
+        </parameter>
+        <parameter>
+            <name>phi</name>
+            <type>Constant</type>
+            <value>0.8</value>
+        </parameter>
+        <parameter>
+            <name>rho_sr</name>
+            <type>Constant</type>
+            <value>1</value>
+        </parameter>
+        <parameter>
+            <name>K_LR</name>
+            <type>Constant</type>
+            <value>1e100</value>
+        </parameter>
+        <parameter>
+            <name>temp</name>
+            <type>Constant</type>
+            <value>293.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>dirichlet1</name>
+            <type>Constant</type>
+            <value>1</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>right</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_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>top</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_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>left</geometry>
+                    <type>Dirichlet</type>
+                    <parameter>dirichlet0</parameter>
+                </boundary_condition>
+                <boundary_condition>
+                    <geometrical_set>square_1x1_geometry</geometrical_set>
+                    <geometry>right</geometry>
+                    <type>Dirichlet</type>
+                    <parameter>dirichlet1</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>
+            <eigen>
+                <solver_type>SparseLU</solver_type>
+                <scaling>true</scaling>
+                <!--
+                <solver_type>PardisoLU</solver_type>
+                -->
+            </eigen>
+        </linear_solver>
+    </linear_solvers>
+</OpenGeoSysProject>
diff --git a/Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic_pcs_0_ts_1_t_1.000000.vtu b/Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic_pcs_0_ts_1_t_1.000000.vtu
new file mode 100644
index 00000000000..7fafcc63019
--- /dev/null
+++ b/Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic_pcs_0_ts_1_t_1.000000.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:60c64026c77113bb842cfbd9d5a629a4a2fe60c46a74583c2f95d69c793536f5
+size 53706
diff --git a/Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic_pcs_0_ts_2_t_2.000000.vtu b/Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic_pcs_0_ts_2_t_2.000000.vtu
new file mode 100644
index 00000000000..d22b5547c5c
--- /dev/null
+++ b/Tests/Data/RichardsMechanics/flow_fully_saturated_anisotropic_pcs_0_ts_2_t_2.000000.vtu
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7be5b3dcbaf0c8b1ac025f43c1af92fc50beb5101e37c26f3207910fa34820e9
+size 53668
-- 
GitLab