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
  • Loading branch information
bwspenc committed May 10, 2021
1 parent 63c1b0f commit 4797f26
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 4797f26

Please sign in to comment.