Skip to content

Commit

Permalink
Correct issues with concrete moisture transport PDE variables closes i…
Browse files Browse the repository at this point in the history
…daholab#224

This does two things:
1) Makes the time dependent term be in terms of RH rather than W
2) Removes the dehydration kernel because it's not clear how to cast
   that in terms of RH rather than W. We will add this back in later
   when it is needed, and make sure that is done correctly.
  • Loading branch information
bwspenc committed May 11, 2021
1 parent ed737ef commit 8333442
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 180 deletions.
49 changes: 0 additions & 49 deletions doc/content/source/kernels/ConcreteMoistureDehydration.md

This file was deleted.

5 changes: 2 additions & 3 deletions doc/content/source/materials/ConcreteThermalMoisture.md
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,7 @@ A comprehensive set of constitutive models and parameters for moisture diffusion
The governing equation for moisture diffusion in concrete is formulated by using relative humidity, $H$, as the primary variable:

!equation id=moisture_governing
\frac{\partial{W}}{\partial{H}} \frac{\partial{H}}{\partial{t}} = \nabla (D_h\nabla H) + \nabla (D_{ht}\nabla T) + \frac{\partial{W_d}}{\partial{t}}
\frac{\partial{H}}{\partial{t}} = \nabla (D_h\nabla H) + \nabla (D_{ht}\nabla T)

where

Expand All @@ -360,10 +360,9 @@ $P_{vs}$ = saturate vapor pressure $= P_{atm}\exp\left(4871.3\frac{T-100}{373.15
$P_{atm}$ = standard atmospheric pressure $= 101.325 Pa$ \\
$D_h$ = moisture diffusivity (also referred as humidity diffusivity), $m^2/s$\\
$D_{ht}$= coupled moisture diffusivity under the influence of a temperature gradient, $m^2/s$\\
$W_d$= total mass of free evaporable water released into the pores by dehydration of the cement paste\\
$t$ = time, $s$

The term on the left side of [!eqref](moisture_governing) represents time-dependent effects, and is provided by [ConcreteMoistureTimeIntegration](ConcreteMoistureTimeIntegration.md). The first term on the right side of [!eqref](moisture_governing) represents Fickian diffusion, and the second term represents Soret diffusion. These are both provided by [ConcreteMoistureDiffusion](ConcreteMoistureDiffusion.md). The third term on the right hand side of this equation represents a source due to dehydrated water, and is provided by [ConcreteMoistureDehydration](ConcreteMoistureDehydration.md).
The term on the left side of [!eqref](moisture_governing) represents time-dependent effects, and is provided by [ConcreteMoistureTimeIntegration](ConcreteMoistureTimeIntegration.md). The first term on the right side of [!eqref](moisture_governing) represents Fickian diffusion, and the second term represents Soret diffusion. These are both provided by [ConcreteMoistureDiffusion](ConcreteMoistureDiffusion.md).

Moisture diffusivity $D_h$ depends on the relative humidity, $H$. Thus the moisture diffusion governing equation is highly nonlinear. The following sections describes in detail the constitutive models for moisture diffusivity.

Expand Down
62 changes: 0 additions & 62 deletions include/kernels/ConcreteMoistureDehydration.h

This file was deleted.

2 changes: 2 additions & 0 deletions include/kernels/ConcreteMoistureDiffusion.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,6 @@ class ConcreteMoistureDiffusion : public Diffusion

/// Temperature gradient
const VariableGradient & _grad_T;

const MaterialProperty<Real> & _moisture_capacity; // dW/dH
};
62 changes: 0 additions & 62 deletions src/kernels/ConcreteMoistureDehydration.C

This file was deleted.

7 changes: 5 additions & 2 deletions src/kernels/ConcreteMoistureDiffusion.C
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,22 @@ ConcreteMoistureDiffusion::ConcreteMoistureDiffusion(const InputParameters & par
: Diffusion(parameters),
_Dh(getMaterialProperty<Real>("humidity_diffusivity")),
_Dht(getMaterialProperty<Real>("humidity_diffusivity_thermal")),
_grad_T(coupledGradient("temperature"))
_grad_T(coupledGradient("temperature")),
_moisture_capacity(getMaterialProperty<Real>("moisture_capacity"))
{
}

Real
ConcreteMoistureDiffusion::computeQpResidual()
{
return _Dh[_qp] * Diffusion::computeQpResidual() + _Dht[_qp] * _grad_test[_i][_qp] * _grad_T[_qp];
//return _moisture_capacity[_qp] * (_Dh[_qp] * Diffusion::computeQpResidual() + _Dht[_qp] * _grad_test[_i][_qp] * _grad_T[_qp]);
return (_Dh[_qp] * Diffusion::computeQpResidual() + _Dht[_qp] * _grad_test[_i][_qp] * _grad_T[_qp]);
}

Real
ConcreteMoistureDiffusion::computeQpJacobian()
{
//return _moisture_capacity[_qp] * _Dh[_qp] * Diffusion::computeQpJacobian();
return _Dh[_qp] * Diffusion::computeQpJacobian();
}

Expand Down
4 changes: 2 additions & 2 deletions src/kernels/ConcreteMoistureTimeIntegration.C
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ Real
ConcreteMoistureTimeIntegration::computeQpResidual()
{
// self accumulation term
return _moisture_capacity[_qp] * TimeDerivative::computeQpResidual();
return TimeDerivative::computeQpResidual();
}

Real
ConcreteMoistureTimeIntegration::computeQpJacobian()
{
return _moisture_capacity[_qp] * TimeDerivative::computeQpJacobian();
return TimeDerivative::computeQpJacobian();
}

Real
Expand Down

0 comments on commit 8333442

Please sign in to comment.