From e23e66de00328603dd5b2d15d8b7884e60ff98d2 Mon Sep 17 00:00:00 2001
From: bathmann <jasper.bathmann@ufz.de>
Date: Thu, 13 Sep 2018 13:02:58 +0200
Subject: [PATCH] [HC] documentation updated

---
 .../Fluid/Density/CreateFluidDensityModel.cpp | 22 ++++----
 ...ConcentrationAndPressureDependentDensity.h | 56 ++++++++++++-------
 .../ComponentTransportProcess.h               | 37 +++++++-----
 .../ogs5_H_2D/2D1P-GWFlow_1_reference.vtu     |  4 +-
 4 files changed, 72 insertions(+), 47 deletions(-)

diff --git a/MaterialLib/Fluid/Density/CreateFluidDensityModel.cpp b/MaterialLib/Fluid/Density/CreateFluidDensityModel.cpp
index 68bd2075638..6823cbeaaa8 100644
--- a/MaterialLib/Fluid/Density/CreateFluidDensityModel.cpp
+++ b/MaterialLib/Fluid/Density/CreateFluidDensityModel.cpp
@@ -16,8 +16,8 @@
 #include "BaseLib/Error.h"
 
 #include "IdealGasLaw.h"
-#include "LinearConcentrationDependentDensity.h"
 #include "LinearConcentrationAndPressureDependentDensity.h"
+#include "LinearConcentrationDependentDensity.h"
 #include "LinearTemperatureDependentDensity.h"
 #include "LiquidDensity.h"
 #include "WaterDensityIAPWSIF97Region1.h"
@@ -92,34 +92,36 @@ static std::unique_ptr<FluidProperty> createLinearConcentrationDependentDensity(
         reference_concentration,
         fluid_density_difference_ratio);
 }
-static std::unique_ptr<FluidProperty> createLinearConcentrationAndPressureDependentDensity(
+static std::unique_ptr<FluidProperty>
+createLinearConcentrationAndPressureDependentDensity(
     BaseLib::ConfigTree const& config)
 {
     //! \ogs_file_param{material__fluid__density__type}
     config.checkConfigParameter("type", "ConcentrationAndPressureDependent");
 
     const double reference_density =
-    //! \ogs_file_param{material__fluid__density__ConcentrationDependent__reference_density}
+        //! \ogs_file_param{material__fluid__density__ConcentrationDependent__reference_density}
         config.getConfigParameter<double>("reference_density");
     const double reference_concentration =
-    //! \ogs_file_param{material__fluid__density__ConcentrationDependent__reference_concentration}
+        //! \ogs_file_param{material__fluid__density__ConcentrationDependent__reference_concentration}
         config.getConfigParameter<double>("reference_concentration");
     const double fluid_density_concentration_difference_ratio =
-    //! \ogs_file_param{material__fluid__density__ConcentrationDependent__fluid_density_concentration_difference_ratio}
-        config.getConfigParameter<double>("fluid_density_concentration_difference_ratio");
+        //! \ogs_file_param{material__fluid__density__ConcentrationDependent__fluid_density_concentration_difference_ratio}
+        config.getConfigParameter<double>(
+            "fluid_density_concentration_difference_ratio");
     const double reference_pressure =
-    //! \ogs_file_param{material__fluid__density__ConcentrationDependent__reference_pressure}
+        //! \ogs_file_param{material__fluid__density__ConcentrationDependent__reference_pressure}
         config.getConfigParameter<double>("reference_pressure");
     const double fluid_density_pressure_difference_ratio =
-    //! \ogs_file_param{material__fluid__density__ConcentrationDependent__fluid_density_pressure_difference_ratio}
-        config.getConfigParameter<double>("fluid_density_pressure_difference_ratio");
+        //! \ogs_file_param{material__fluid__density__ConcentrationDependent__fluid_density_pressure_difference_ratio}
+        config.getConfigParameter<double>(
+            "fluid_density_pressure_difference_ratio");
     return std::make_unique<LinearConcentrationAndPressureDependentDensity>(
         reference_density,
         reference_concentration,
         fluid_density_concentration_difference_ratio,
         reference_pressure,
         fluid_density_pressure_difference_ratio);
-    
 }
 
 std::unique_ptr<FluidProperty> createFluidDensityModel(
diff --git a/MaterialLib/Fluid/Density/LinearConcentrationAndPressureDependentDensity.h b/MaterialLib/Fluid/Density/LinearConcentrationAndPressureDependentDensity.h
index 90052a3ea65..f4917144750 100644
--- a/MaterialLib/Fluid/Density/LinearConcentrationAndPressureDependentDensity.h
+++ b/MaterialLib/Fluid/Density/LinearConcentrationAndPressureDependentDensity.h
@@ -21,24 +21,26 @@ namespace Fluid
 {
 /// Linear concentration dependent density model.
 /// \f[ \varrho = \varrho_{\text{ref}}
-/// (1 + \bar \alpha (C - C_{\text{ref}}) + \bar \beta (p - p_{\text{ref}}) ) \f]
-/// where
+/// (1 + \bar \alpha (C - C_{\text{ref}}) + \bar \beta (p - p_{\text{ref}}) )
+/// \f] where
 /// - \f$ \varrho_{\text{ref}}\f$ is the reference density
 /// - \f$ \bar \alpha\f$ is the fluid density concentration difference ratio
 /// - \f$ C_{\text{ref}}\f$ is the reference concentration
 /// - \f$ \bar \beta\f$ is the fluid density pressure difference ratio
 /// - \f$ p_{\text{ref}}\f$ is the reference pressure
-class LinearConcentrationAndPressureDependentDensity final : public FluidProperty
+class LinearConcentrationAndPressureDependentDensity final
+    : public FluidProperty
 {
 public:
     /**
      * @param reference_density  \f$\rho_0\f$
      * @param reference_concentration \f$C_0\f$
-     * @param fluid_density_concentration_difference_ratio  \f$ \bar \alpha \f$ in reference
+     * @param fluid_density_concentration_difference_ratio  \f$ \bar \alpha \f$
+     * in reference
      * @param reference_pressure \f$p_0\f$
-     * @param fluid_density_pressure_difference_ratio  \f$ \bar \beta \f$ in reference
-     * Coupled groundwater flow and transport: 2. Thermohaline and 3D convection
-     * systems
+     * @param fluid_density_pressure_difference_ratio  \f$ \bar \beta \f$ in
+     * reference Coupled groundwater flow and transport: 2. Thermohaline and 3D
+     * convection systems
      */
     explicit LinearConcentrationAndPressureDependentDensity(
         const double reference_density, double reference_concentration,
@@ -47,9 +49,11 @@ public:
         const double fluid_density_pressure_difference_ratio)
         : _reference_density(reference_density),
           _reference_concentration(reference_concentration),
-          _fluid_density_concentration_difference_ratio(fluid_density_concentration_difference_ratio),
+          _fluid_density_concentration_difference_ratio(
+              fluid_density_concentration_difference_ratio),
           _reference_pressure(reference_pressure),
-          _fluid_density_pressure_difference_ratio(fluid_density_pressure_difference_ratio)
+          _fluid_density_pressure_difference_ratio(
+              fluid_density_pressure_difference_ratio)
     {
     }
 
@@ -66,11 +70,12 @@ public:
     {
         const double C = var_vals[static_cast<int>(PropertyVariableType::C)];
         const double p = var_vals[static_cast<int>(PropertyVariableType::p)];
-        return _reference_density * (1 +
-                                     _fluid_density_concentration_difference_ratio *
-                                         (C - _reference_concentration)+
-                                    _fluid_density_pressure_difference_ratio *
-                                         (p - _reference_pressure));
+        return _reference_density *
+               (1 +
+                _fluid_density_concentration_difference_ratio *
+                    (C - _reference_concentration) +
+                _fluid_density_pressure_difference_ratio *
+                    (p - _reference_pressure));
     }
 
     /// Get the partial differential of the density with respect to
@@ -81,11 +86,20 @@ public:
     double getdValue(const ArrayType& /*var_vals*/,
                      const PropertyVariableType var) const override
     {
-        if (var == PropertyVariableType::C){
-            return _reference_density * _fluid_density_concentration_difference_ratio;}
-        else if (var == PropertyVariableType::p){
-            return _reference_density * _fluid_density_pressure_difference_ratio;}
-        else{return 0;}
+        if (var == PropertyVariableType::C)
+        {
+            return _reference_density *
+                   _fluid_density_concentration_difference_ratio;
+        }
+        else if (var == PropertyVariableType::p)
+        {
+            return _reference_density *
+                   _fluid_density_pressure_difference_ratio;
+        }
+        else
+        {
+            return 0;
+        }
     }
 
 private:
@@ -96,5 +110,5 @@ private:
     const double _fluid_density_pressure_difference_ratio;
 };
 
-}  // end namespace
-}  // end namespace
+}  // namespace Fluid
+}  // namespace MaterialLib
diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.h b/ProcessLib/ComponentTransport/ComponentTransportProcess.h
index 0a883ad38df..d6492c48e42 100644
--- a/ProcessLib/ComponentTransport/ComponentTransportProcess.h
+++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.h
@@ -25,11 +25,17 @@ namespace ComponentTransport
  *
  * The flow process is described by
  * \f[
- * S \frac{\partial p}{\partial t}
- *     - \nabla \cdot \left[\frac{\kappa}{\mu(C)} \nabla \left( p + \rho g z \right)\right]
- *     - Q_p = 0,
+ * \phi \frac{\partial \rho}{\partial p} \frac{\partial p}{\partial t}
+ *     + \phi \frac{\partial \rho}{\partial C} \frac{\partial C}{\partial t}
+ *     - \nabla \cdot \left[\frac{\kappa}{\mu(C)} \rho \nabla \left( p + \rho g
+ * z \right)\right]
+ *     + Q_p = 0,
  * \f]
- * where \f$S\f$ is the storage, \f$p\f$ is the pressure,
+ * where the storage \f$S\f$ has been substituted by
+ *      \phi \frac{\partial \rho}{\partial p},
+ * \f$\phi\f$ is the porosity,
+ * \f$C\f$ is the concentration,
+ * \f$p\f$ is the pressure,
  * \f$\kappa\f$ is permeability,
  * \f$\mu\f$ is viscosity of the fluid,
  * \f$\rho\f$ is the density of the fluid, and
@@ -37,14 +43,17 @@ namespace ComponentTransport
  *
  * The mass transport process is described by
  * \f[
- * \phi R \frac{\partial C}{\partial t}
-    + \nabla \cdot \left(\vec{q} C - D \nabla C \right)
-        + \phi R \vartheta C - Q_C = 0
+ * \phi R C \frac{\partial \rho}{\partial p} \frac{\partial p}{\partial t}
+ *     + \phi R \left(\rho + C \frac{\partial \rho}{\partial C}\right)
+ * \frac{\partial C}{\partial t}
+ *     - \nabla \cdot \left[\frac{\kappa}{\mu(C)} \rho C \nabla \left( p + \rho
+ * g z \right)
+ *          + \rho D \nabla C\right]
+ *     + Q_C + R \vartheta \phi \rho C = 0,
+ *
  * \f]
- * where \f$\phi\f$ is the porosity,
- * \f$R\f$ is the retardation factor,
- * \f$C\f$ is the concentration,
- * \f$\vec{q} = \frac{\kappa}{\mu(C)} \nabla \left( p + \rho g z \right)\f$
+ * where \f$R\f$ is the retardation factor,
+ * \f$\vec{q} = -\frac{\kappa}{\mu(C)} \nabla \left( p + \rho g z \right)\f$
  *      is the Darcy velocity,
  * \f$D\f$ is the hydrodynamic dispersion tensor,
  * \f$\vartheta\f$ is the decay rate.
@@ -70,9 +79,9 @@ namespace ComponentTransport
  * flow couples the H process to the C process.
  *
  * \note At the moment there is not any coupling by source or sink terms, i.e.,
- * the coupling is implemented only by density changes due to concentration
- * changes in the buoyance term in the groundwater flow. This coupling schema is
- * referred to as the Boussinesq approximation.
+ * the coupling is implemented only by density and viscosity changes due to
+ * concentration changes as well as by the temporal derivatives of each
+ * variable.
  * */
 class ComponentTransportProcess final : public Process
 {
diff --git a/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_2D/2D1P-GWFlow_1_reference.vtu b/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_2D/2D1P-GWFlow_1_reference.vtu
index 70c55c1a477..567a2b8836d 100644
--- a/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_2D/2D1P-GWFlow_1_reference.vtu
+++ b/Tests/Data/Parabolic/ComponentTransport/heterogeneous/ogs5_H_2D/2D1P-GWFlow_1_reference.vtu
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:c1036f8d8f4cff121f36f9cd6466fc501bb957ceb698a933b4e8b9e116744942
-size 1073708
+oid sha256:e2d7de577cffae5ed6e7b6256768f9755095c951886a02be676343a63fdfd3cc
+size 490884
-- 
GitLab