Skip to content
Snippets Groups Projects
Commit e23e66de authored by jbathmann's avatar jbathmann
Browse files

[HC] documentation updated

parent 43d8d464
No related branches found
No related tags found
No related merge requests found
......@@ -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(
......
......@@ -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
......@@ -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
{
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment