Skip to content
Snippets Groups Projects
Commit 30541779 authored by Christoph Lehmann's avatar Christoph Lehmann Committed by Dmitri Naumov
Browse files

[PL] Added constitutive model/data: Saturation

parent a818d675
No related branches found
No related tags found
No related merge requests found
/**
* \file
* \copyright
* Copyright (c) 2012-2022, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.org/project/license
*
*/
#include "Saturation.h"
namespace ProcessLib::ThermoRichardsMechanics
{
template <int DisplacementDim>
void SaturationModel<DisplacementDim>::eval(
SpaceTimeData const& x_t, MediaData const& media_data,
CapillaryPressureData<DisplacementDim> const& p_cap_data,
SaturationData& S_L_data, SaturationDataDeriv& dS_L_data) const
{
namespace MPL = MaterialPropertyLib;
MPL::VariableArray variables;
variables[static_cast<int>(MPL::Variable::capillary_pressure)] =
p_cap_data.p_cap;
auto const& medium = media_data.medium;
S_L_data.S_L = medium.property(MPL::PropertyType::saturation)
.template value<double>(variables, x_t.x, x_t.t, x_t.dt);
dS_L_data.dS_L_dp_cap =
medium.property(MPL::PropertyType::saturation)
.template dValue<double>(variables,
MPL::Variable::capillary_pressure, x_t.x,
x_t.t, x_t.dt);
}
template struct SaturationModel<2>;
template struct SaturationModel<3>;
} // namespace ProcessLib::ThermoRichardsMechanics
/**
* \file
* \copyright
* Copyright (c) 2012-2022, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.org/project/license
*
*/
#pragma once
#include "Base.h"
namespace ProcessLib::ThermoRichardsMechanics
{
struct SaturationData
{
double S_L;
};
struct SaturationDataDeriv
{
double dS_L_dp_cap;
};
template <int DisplacementDim>
struct SaturationModel
{
void eval(SpaceTimeData const& x_t, MediaData const& media_data,
CapillaryPressureData<DisplacementDim> const& p_cap_data,
SaturationData& S_L_data, SaturationDataDeriv& dS_L_data) const;
};
extern template struct SaturationModel<2>;
extern template struct SaturationModel<3>;
} // namespace ProcessLib::ThermoRichardsMechanics
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