From 5c8f13acdb9d30ab9e2012fa8e33e3377d9b06f4 Mon Sep 17 00:00:00 2001
From: Wenqing Wang <wenqing.wang@ufz.de>
Date: Tue, 11 Oct 2016 12:08:12 +0200
Subject: [PATCH] [LF] Changed the names of one file and some variables,
 corrected a typo in

one variable name, and made some other minor improvements
according to the comments by Dima and Tom.
---
 ProcessLib/CMakeLists.txt                     |  2 +-
 ...-imp.h => LiquidFlowLocalAssembler-impl.h} |  9 +++---
 .../LiquidFlow/LiquidFlowLocalAssembler.h     | 12 +++----
 .../LiquidFlowMaterialProperties.cpp          | 31 +++++++++++++++----
 .../LiquidFlow/LiquidFlowMaterialProperties.h | 20 +++---------
 ProcessLib/LiquidFlow/LiquidFlowProcess.cpp   | 17 +---------
 ProcessLib/LiquidFlow/LiquidFlowProcess.h     | 10 +-----
 .../TestLiquidFlowMaterialProperties.cpp      |  8 ++---
 8 files changed, 46 insertions(+), 63 deletions(-)
 rename ProcessLib/LiquidFlow/{LiquidFlowLocalAssembler-imp.h => LiquidFlowLocalAssembler-impl.h} (94%)

diff --git a/ProcessLib/CMakeLists.txt b/ProcessLib/CMakeLists.txt
index 5d52ac3280b..0dd7a458c2b 100644
--- a/ProcessLib/CMakeLists.txt
+++ b/ProcessLib/CMakeLists.txt
@@ -14,7 +14,7 @@ APPEND_SOURCE_FILES(SOURCES Parameter)
 add_subdirectory(GroundwaterFlow)
 APPEND_SOURCE_FILES(SOURCES GroundwaterFlow)
 
-append_source_files(SOURCES LiquidFlow)
+APPEND_SOURCE_FILES(SOURCES LiquidFlow)
 
 APPEND_SOURCE_FILES(SOURCES SmallDeformation)
 
diff --git a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-imp.h b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h
similarity index 94%
rename from ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-imp.h
rename to ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h
index 0b393f1e005..786253238fa 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-imp.h
+++ b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler-impl.h
@@ -10,8 +10,8 @@
  * Created on August 19, 2016, 2:28 PM
  */
 
-#ifndef OGS_LIQUIDFLOWLOCALASSEMBLER_IMP_H
-#define OGS_LIQUIDFLOWLOCALASSEMBLER_IMP_H
+#ifndef OGS_LIQUIDFLOWLOCALASSEMBLER_IMPL_H
+#define OGS_LIQUIDFLOWLOCALASSEMBLER_IMPL_H
 
 #include "LiquidFlowLocalAssembler.h"
 
@@ -45,7 +45,7 @@ void LiquidFlowLocalAssembler<ShapeFunction, IntegrationMethod, GlobalDim>::
 
     const unsigned mat_id = 0;  // TODO for heterogeneous medium
     const Eigen::MatrixXd& perm =
-        _material_properties.intrinsic_permeabiliy[mat_id];
+        _material_properties.intrinsic_permeability[mat_id];
 
     // Note: For Inclined 1D in 2D/3D or 2D element in 3D, the first item in
     //  the assert must be changed to perm.rows() == _element->getDimension()
@@ -81,8 +81,7 @@ void LiquidFlowLocalAssembler<ShapeFunction, IntegrationMethod, GlobalDim>::
         const double mu = _material_properties.getViscosity(p, _temperature);
 
         // Assemble Laplacian, K, and RHS by the gravitational term
-        if (perm.size() ==
-            1)  // Save the computing time for isotropic permeability.
+        if (perm.size() == 1) //Save the computing time for isotropic permeability.
         {
             //  Use scalar number for isotropic permeability
             //  to save the computation time.
diff --git a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h
index 0cb8b78a5b0..4d92ebb247a 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h
+++ b/ProcessLib/LiquidFlow/LiquidFlowLocalAssembler.h
@@ -65,17 +65,17 @@ public:
     LiquidFlowLocalAssembler(
         MeshLib::Element const& element,
         std::size_t const /*local_matrix_size*/,
-        bool is_axially_symmetric,
+        bool const is_axially_symmetric,
         unsigned const integration_order,
-        const bool compute_gravitational_term,
-        LiquidFlowMaterialProperties const& matetial_propertries)
+        bool const compute_gravitational_term,
+        LiquidFlowMaterialProperties const& material_propertries)
         : _element(element),
           _integration_method(integration_order),
           _shape_matrices(initShapeMatrices<ShapeFunction, ShapeMatricesType,
                                             IntegrationMethod, GlobalDim>(
               element, is_axially_symmetric, _integration_method)),
           _compute_gravitational_term(compute_gravitational_term),
-          _material_properties(matetial_propertries)
+          _material_properties(material_propertries)
     {
     }
 
@@ -127,12 +127,12 @@ private:
 
     const bool _compute_gravitational_term;
     LiquidFlowMaterialProperties const& _material_properties;
-    double _temperature;  ///< Temperature.
+    double _temperature;
 };
 
 }  // end of namespace
 }  // end of namespace
 
-#include "LiquidFlowLocalAssembler-imp.h"
+#include "LiquidFlowLocalAssembler-impl.h"
 
 #endif /* LIQUIDFLOWLOCALASSEMBLER_H */
diff --git a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp
index a68a738f032..265f8d8b23a 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp
+++ b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.cpp
@@ -16,6 +16,7 @@
 
 #include "MeshLib/Mesh.h"
 
+#include "MaterialLib/Fluid/FluidProperty.h"
 #include "MaterialLib/PorousMedium/Porosity/Porosity.h"
 #include "MaterialLib/PorousMedium/Storage/Storage.h"
 
@@ -34,7 +35,7 @@ LiquidFlowMaterialProperties::LiquidFlowMaterialProperties(
     // Get fluid properties
     //! \ogs_file_param{prj__material_property__fluid__density}
     auto const& rho_conf = fluid_config.getConfigSubtree("density");
-    density_l = MaterialLib::Fluid::createFluidDensityModel(rho_conf);
+    liquid_density = MaterialLib::Fluid::createFluidDensityModel(rho_conf);
     //! \ogs_file_param{prj__material_property__fluid__viscosity}
     auto const& mu_conf = fluid_config.getConfigSubtree("viscosity");
     viscosity = MaterialLib::Fluid::createViscosityModel(mu_conf);
@@ -47,7 +48,7 @@ LiquidFlowMaterialProperties::LiquidFlowMaterialProperties(
     {
         //! \ogs_file_param{prj__material_property__porous_medium__porous_medium__permeability}
         auto const& perm_conf = conf.getConfigSubtree("permeability");
-        intrinsic_permeabiliy.emplace_back(
+        intrinsic_permeability.emplace_back(
             MaterialLib::PorousMedium::createPermeabilityModel(perm_conf));
 
         //! \ogs_file_param{prj__material_property__porous_medium__porous_medium__porosity}
@@ -62,18 +63,36 @@ LiquidFlowMaterialProperties::LiquidFlowMaterialProperties(
     }
 }
 
+double LiquidFlowMaterialProperties::getLiquidDensity(const double p,
+                                                      const double T) const
+{
+    ArrayType vars;
+    vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::T)] = T;
+    vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::pl)] = p;
+    return liquid_density->getValue(vars);
+}
+
+double LiquidFlowMaterialProperties::getViscosity(const double p,
+                                                  const double T) const
+{
+    ArrayType vars;
+    vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::T)] = T;
+    vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::pl)] = p;
+    return viscosity->getValue(vars);
+}
+
 double LiquidFlowMaterialProperties::getMassCoefficient(
     const double porosity_variable, const double storage_variable,
     const double p, const double T, const unsigned material_group_id) const
 {
     ArrayType vars;
-    vars[0] = T;
-    vars[1] = p;
+    vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::T)] = T;
+    vars[static_cast<int>(MaterialLib::Fluid::PropertyVariableType::pl)] = p;
     return porosity[material_group_id]->getValue(porosity_variable, T) *
-               density_l->getdValue(
+               liquid_density->getdValue(
                    vars, MaterialLib::Fluid::PropertyVariableType::pl)
                // Divided by rho_l because the PDE is scaled with rho_l
-               / density_l->getValue(vars) +
+               / liquid_density->getValue(vars) +
            storage[material_group_id]->getValue(storage_variable);
 }
 
diff --git a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h
index a0b63106fd0..3a3f6d9696d 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h
+++ b/ProcessLib/LiquidFlow/LiquidFlowMaterialProperties.h
@@ -64,29 +64,17 @@ struct LiquidFlowMaterialProperties
                               const double storage_variable,
                               const unsigned material_group_id = 0) const;
 
-    double getLiquidDensity(const double p, const double T) const
-    {
-        ArrayType vars;
-        vars[0] = T;
-        vars[1] = p;
-        return density_l->getValue(vars);
-    }
+    double getLiquidDensity(const double p, const double T) const;
 
-    double getViscosity(const double p, const double T) const
-    {
-        ArrayType vars;
-        vars[0] = T;
-        vars[1] = p;
-        return viscosity->getValue(vars);
-    }
+    double getViscosity(const double p, const double T) const;
 
-    std::unique_ptr<MaterialLib::Fluid::FluidProperty> density_l;
+    std::unique_ptr<MaterialLib::Fluid::FluidProperty> liquid_density;
     std::unique_ptr<MaterialLib::Fluid::FluidProperty> viscosity;
 
     /// Porous medium properties of different material zones.
     /// The vector is left empty if the property data are given in vtu file,
     /// e.g for heterogeneous medium.
-    std::vector<Eigen::MatrixXd> intrinsic_permeabiliy;
+    std::vector<Eigen::MatrixXd> intrinsic_permeability;
     std::vector<std::unique_ptr<MaterialLib::PorousMedium::Porosity>> porosity;
     std::vector<std::unique_ptr<MaterialLib::PorousMedium::Storage>> storage;
 
diff --git a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp
index 368e1687363..c59dfdf1296 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp
+++ b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp
@@ -32,7 +32,7 @@ LiquidFlowProcess::LiquidFlowProcess(
     std::vector<std::reference_wrapper<ProcessVariable>>&& process_variables,
     SecondaryVariableCollection&& secondary_variables,
     NumLib::NamedFunctionCaller&& named_function_caller,
-    const bool compute_gravitational_term,
+    bool const compute_gravitational_term,
     BaseLib::ConfigTree const& config)
     : Process(mesh, std::move(jacobian_assembler), parameters,
               integration_order,
@@ -105,20 +105,5 @@ void LiquidFlowProcess::assembleWithJacobianConcreteProcess(
         dx_dx, M, K, b, Jac);
 }
 
-void LiquidFlowProcess::preTimestepConcreteProcess(GlobalVector const& x,
-                                                   const double /*t*/,
-                                                   const double /*delta_t*/)
-{
-    DBUG("New time step");
-
-    _p_previous_timestep =
-        MathLib::MatrixVectorTraits<GlobalVector>::newInstance(x);
-}
-
-void LiquidFlowProcess::preIterationConcreteProcess(const unsigned /*iter*/,
-                                                    GlobalVector const& /*x*/)
-{
-    // TODO
-}
 }  // end of namespace
 }  // end of namespace
diff --git a/ProcessLib/LiquidFlow/LiquidFlowProcess.h b/ProcessLib/LiquidFlow/LiquidFlowProcess.h
index 302602f106c..f19556e1294 100644
--- a/ProcessLib/LiquidFlow/LiquidFlowProcess.h
+++ b/ProcessLib/LiquidFlow/LiquidFlowProcess.h
@@ -63,15 +63,9 @@ public:
             process_variables,
         SecondaryVariableCollection&& secondary_variables,
         NumLib::NamedFunctionCaller&& named_function_caller,
-        const bool compute_gravitational_term,
+        bool const compute_gravitational_term,
         BaseLib::ConfigTree const& config);
 
-    void preTimestepConcreteProcess(GlobalVector const& x, const double t,
-                                    const double delta_t) override;
-
-    void preIterationConcreteProcess(const unsigned iter,
-                                     GlobalVector const& x) override;
-
     bool isLinear() const override { return true; }
 private:
     void initializeConcreteProcess(
@@ -92,8 +86,6 @@ private:
 
     std::vector<std::unique_ptr<LiquidFlowLocalAssemblerInterface>>
         _local_assemblers;
-
-    std::unique_ptr<GlobalVector> _p_previous_timestep;
 };
 
 }  // end of namespace
diff --git a/Tests/ProcessLib/LiquidFlow/TestLiquidFlowMaterialProperties.cpp b/Tests/ProcessLib/LiquidFlow/TestLiquidFlowMaterialProperties.cpp
index 4ff94de527e..f948a6bcc5e 100644
--- a/Tests/ProcessLib/LiquidFlow/TestLiquidFlowMaterialProperties.cpp
+++ b/Tests/ProcessLib/LiquidFlow/TestLiquidFlowMaterialProperties.cpp
@@ -81,16 +81,16 @@ TEST(ProcessLibLiquidFlow, checkLiquidFlowMaterialProperties)
 
     const double fac_T = 1. + beta * (T - T0);
     ASSERT_NEAR(rho0 / fac_T / (1. - (p - p0) / K),
-                lprop.density_l->getValue(vars), 1.e-10);
+                lprop.liquid_density->getValue(vars), 1.e-10);
 
     // Test the derivative with respect to temperature.
     ASSERT_NEAR(-beta * rho0 / (fac_T * fac_T) / (1. - (p - p0) / K),
-                lprop.density_l->getdValue(vars, PropertyVariableType::T), 1.e-10);
+                lprop.liquid_density->getdValue(vars, PropertyVariableType::T), 1.e-10);
 
     // Test the derivative with respect to pressure.
     const double fac_p = 1. - (p - p0) / K;
     ASSERT_NEAR(rho0 / (1. + beta * (T - T0)) / (fac_p * fac_p * K),
-                lprop.density_l->getdValue(vars, PropertyVariableType::pl), 1.e-10);
+                lprop.liquid_density->getdValue(vars, PropertyVariableType::pl), 1.e-10);
 
     // Check viscosity
     ArrayType vars1;
@@ -101,7 +101,7 @@ TEST(ProcessLibLiquidFlow, checkLiquidFlowMaterialProperties)
                 1.e-5);
 
     // Check permeability
-    Eigen::MatrixXd& perm = lprop.intrinsic_permeabiliy[0];
+    Eigen::MatrixXd& perm = lprop.intrinsic_permeability[0];
     ASSERT_EQ(2.e-10, perm(0, 0));
     ASSERT_EQ(0., perm(0, 1));
     ASSERT_EQ(0., perm(0, 2));
-- 
GitLab