version 3.11-dev
Loading...
Searching...
No Matches
porositylinearporoelasticity.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3//
4// SPDX-FileCopyrightText: Copyright © DuMux Project contributors, see AUTHORS.md in root folder
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
12#ifndef DUMUX_MATERIAL_POROSITY_LINEAR_POROELASTICITY_HH
13#define DUMUX_MATERIAL_POROSITY_LINEAR_POROELASTICITY_HH
14
15#include <dune/common/exceptions.hh>
16
17namespace Dumux {
18
43template<class Scalar>
45{
46public:
53 PorosityLinearPoroElasticity(Scalar refPorosity, Scalar biotCoefficient, Scalar drainedBulkModulus)
54 : refPorosity_(refPorosity)
55 , biotCoefficient_(biotCoefficient)
56 , inverseN_((biotCoefficient - refPorosity)*(1.0 - biotCoefficient)/drainedBulkModulus)
57 {
58 if (biotCoefficient < refPorosity || biotCoefficient > 1.0)
59 DUNE_THROW(Dune::RangeError, "The Biot coefficient " << biotCoefficient
60 << " is not in [" << refPorosity << ", 1]");
61 }
62
68 Scalar evaluatePorosity(Scalar volumetricStrainChange, Scalar pressureChange) const
69 { return refPorosity_ + biotCoefficient_*volumetricStrainChange + inverseN_*pressureChange; }
70
75 Scalar biotModulus(Scalar fluidBulkModulus) const
76 { return 1.0/(refPorosity_/fluidBulkModulus + inverseN_); }
77
78private:
79 Scalar refPorosity_;
80 Scalar biotCoefficient_;
81 Scalar inverseN_;
82};
83
84} // end namespace Dumux
85
86#endif
PorosityLinearPoroElasticity(Scalar refPorosity, Scalar biotCoefficient, Scalar drainedBulkModulus)
Constructor.
Definition porositylinearporoelasticity.hh:53
Scalar biotModulus(Scalar fluidBulkModulus) const
The Biot modulus .
Definition porositylinearporoelasticity.hh:75
Scalar evaluatePorosity(Scalar volumetricStrainChange, Scalar pressureChange) const
The porosity.
Definition porositylinearporoelasticity.hh:68
Definition adapt.hh:17