Skip to content

Commit

Permalink
Merge pull request idaholab#208 from jain651/fixing_PorousMediaBase_v2
Browse files Browse the repository at this point in the history
Renaming PorousMediaBase to ConcreteThermalMoisture and correcting its functions
  • Loading branch information
bwspenc authored Apr 23, 2021
2 parents 2e9e173 + 3d90cb5 commit 0c19818
Show file tree
Hide file tree
Showing 15 changed files with 65 additions and 58 deletions.
2 changes: 1 addition & 1 deletion assessment/asr_validation/wald2017b/analysis/A1-biaxial.i
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@
[Materials]

[./concrete]
type = PorousMediaBase
type = ConcreteThermalMoisture
block = 1
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
Expand Down
2 changes: 1 addition & 1 deletion assessment/asr_validation/wald2017b/analysis/A1-triaxial.i
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@
[Materials]

[./concrete]
type = PorousMediaBase
type = ConcreteThermalMoisture
block = 1
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
Expand Down
2 changes: 1 addition & 1 deletion assessment/asr_validation/wald2017b/analysis/A1-uniaxial.i
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,7 @@
[Materials]

[./concrete]
type = PorousMediaBase
type = ConcreteThermalMoisture
block = 1
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@

[Materials]
[./concrete]
type = PorousMediaBase
type = ConcreteThermalMoisture
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
thermal_conductivity_model = KODUR-2004
Expand Down
2 changes: 1 addition & 1 deletion assessment/asr_validation/wald2017b/analysis/A3-biaxial.i
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@
[Materials]

[./concrete]
type = PorousMediaBase
type = ConcreteThermalMoisture
block = 1
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
Expand Down
18 changes: 18 additions & 0 deletions doc/content/source/materials/ConcreteThermalMoisture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!-- MOOSE Documentation Stub: Remove this when content is added. -->

# ConcreteThermalMoisture

!alert construction title=Undocumented Class
The ConcreteThermalMoisture has not been documented. The content contained on this page includes the
typical automatic documentation associated with a MooseObject; however, what is contained is
ultimately determined by what is necessary to make the documentation clear for users.

!syntax description /Materials/ConcreteThermalMoisture

!syntax parameters /Materials/ConcreteThermalMoisture

!syntax inputs /Materials/ConcreteThermalMoisture

!syntax children /Materials/ConcreteThermalMoisture

!bibtex bibliography
18 changes: 0 additions & 18 deletions doc/content/source/materials/PorousMediaBase.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@

#pragma once

class PorousMediaBase : public Material
class ConcreteThermalMoisture : public Material
{
public:
static InputParameters validParams();
PorousMediaBase(const InputParameters & parameters);
ConcreteThermalMoisture(const InputParameters & parameters);

protected:
virtual void initQpStatefulProperties();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,24 @@
/* See COPYRIGHT for full restrictions */
/****************************************************************/

#include "PorousMediaBase.h"
#include "ConcreteThermalMoisture.h"
#include "MooseObjectName.h"

// libMesh includes
#include "libmesh/quadrature.h"

registerMooseObject("BlackBearApp", PorousMediaBase);
registerMooseObject("BlackBearApp", ConcreteThermalMoisture);
registerMooseObjectRenamed("BlackBearApp",
PorousMediaBase,
"07/31/2021 00:01",
ConcreteThermalMoisture);

InputParameters
PorousMediaBase::validParams()
ConcreteThermalMoisture::validParams()
{
InputParameters params = Material::validParams();

params.addRequiredParam<std::string>(
"type", "A string representing the Moose Object that is used to call this class");
// parameters for ion diffusion through concrete & solution-mineral reactions
params.addParam<Real>("initial_diffusivity", 1.0e-9, "diffusivity of ions in medium, m^2/s");
params.addParam<Real>("initial_porosity", 0.3, "Initial porosity of medium");
Expand Down Expand Up @@ -93,7 +99,7 @@ PorousMediaBase::validParams()
return params;
}

PorousMediaBase::PorousMediaBase(const InputParameters & parameters)
ConcreteThermalMoisture::ConcreteThermalMoisture(const InputParameters & parameters)
: Material(parameters),
_thermal_conductivity_model(getParam<MooseEnum>("thermal_conductivity_model")),
_thermal_capacity_model(getParam<MooseEnum>("thermal_capacity_model")),
Expand Down Expand Up @@ -167,17 +173,26 @@ PorousMediaBase::PorousMediaBase(const InputParameters & parameters)
_vals.resize(n);
for (unsigned int i = 0; i < _vals.size(); ++i)
_vals[i] = &coupledValue("mineral_compositions", i);

if (getParam<std::string>("type") == "PorousMediaBase")
mooseWarning(
"PorousMediaBase is being replaced by ConcreteThermalMosture. Note that in "
"the new class, the behavior is changed for the thermal capacity for "
"ASCE-1992 and KODUR-2004 models, and the thermal conductivity for ASCE-1992, "
"KODUR-2004, and EUROCODE-2004 models. If the temperature is <= 20 C, the values "
"from the correlations at 20 C are used rather than user-supplied values. A similar "
"change was also made for the computation of N_wc for water-cement ratios <= 0.3.");
}

void
PorousMediaBase::initQpStatefulProperties()
ConcreteThermalMoisture::initQpStatefulProperties()
{
_te[_qp] = _cure_time;
_eqv_age[_qp] = _cure_time;
}

void
PorousMediaBase::computeProperties()
ConcreteThermalMoisture::computeProperties()
{
for (unsigned int qp = 0; qp < _qrule->n_points(); ++qp)
{
Expand Down Expand Up @@ -247,7 +262,7 @@ PorousMediaBase::computeProperties()
{
case 0: // siliceous aggreagte
if (T < 20.0)
_thermal_capacity[qp] = ro * Cv;
_thermal_capacity[qp] = 1.8 * 1e6;
else if (T >= 20.0 && T < 200.0)
_thermal_capacity[qp] = (0.005 * T + 1.7) * 1.0e6;
else if (T >= 200.0 && T < 400.0)
Expand All @@ -261,9 +276,7 @@ PorousMediaBase::computeProperties()
break;

case 1: // carbonate aggregate
if (T < 20.0)
_thermal_capacity[qp] = ro * Cv;
else if (T >= 20.0 && T < 400.0)
if (T < 400.0)
_thermal_capacity[qp] = 2.566 * 1.0e6;
else if (T >= 400.0 && T < 410.0)
_thermal_capacity[qp] = (0.1765 * T - 68.034) * 1.0e6;
Expand Down Expand Up @@ -292,7 +305,7 @@ PorousMediaBase::computeProperties()
{
case 0: // siliceous aggreagte
if (T < 20.0)
_thermal_capacity[qp] = ro * Cv;
_thermal_capacity[qp] = 1.8 * 1.0e6;
else if (T >= 20.0 && T < 200.0)
_thermal_capacity[qp] = (0.005 * T + 1.7) * 1.0e6;
else if (T >= 200.0 && T < 400.0)
Expand All @@ -309,9 +322,7 @@ PorousMediaBase::computeProperties()
break;

case 1: // carbonate aggregate
if (T < 20.0)
_thermal_capacity[qp] = ro * Cv;
else if (T >= 20.0 && T < 400.0)
if (T < 400.0)
_thermal_capacity[qp] = 2.45 * 1.0e6;
else if (T >= 400.0 && T < 475.0)
_thermal_capacity[qp] = (0.026 * T - 12.85) * 1.0e6;
Expand Down Expand Up @@ -377,19 +388,17 @@ PorousMediaBase::computeProperties()
{
case 0: // siliceous aggreagte
if (T < 20.0)
_thermal_conductivity[qp] = _input_thermal_conductivity_of_concrete;
_thermal_conductivity[qp] = 1.4875;
else if (T >= 20.0 && T < 800.0)
_thermal_conductivity[qp] = -0.000625 * T + 1.5;
else if (T >= 800.0)
_thermal_conductivity[qp] = 1.0;
break;

case 1: // carbonate aggregate
if (T < 20.0)
_thermal_conductivity[qp] = _input_thermal_conductivity_of_concrete;
else if (T >= 20.0 && T < 293.0)
if (T < 293.0)
_thermal_conductivity[qp] = 1.355;
else if (T >= 293.0)
else
_thermal_conductivity[qp] = -0.001241 * T + 1.7162;
break;

Expand All @@ -404,19 +413,17 @@ PorousMediaBase::computeProperties()
{
case 0: // siliceous aggreagte
if (T < 20.0)
_thermal_conductivity[qp] = _input_thermal_conductivity_of_concrete;
_thermal_conductivity[qp] = 1.4875;
else if (T >= 20.0 && T < 800.0)
_thermal_conductivity[qp] = -0.000625 * T + 1.5;
else if (T >= 800.0)
_thermal_conductivity[qp] = 1.0;
break;

case 1: // carbonate aggregate
if (T < 20.0)
_thermal_conductivity[qp] = _input_thermal_conductivity_of_concrete;
else if (T >= 20.0 && T < 293.0)
if (T < 293.0)
_thermal_conductivity[qp] = 1.355;
else if (T >= 293.0)
else
_thermal_conductivity[qp] = -0.001241 * T + 1.7162;
break;

Expand All @@ -427,7 +434,7 @@ PorousMediaBase::computeProperties()
break;
case 3: // EUROCODE-2004
if (T < 20.0)
_thermal_conductivity[qp] = _input_thermal_conductivity_of_concrete;
_thermal_conductivity[qp] = 1.642218;
else if (T >= 20.0 && T <= 1200.0)
{
const Real k_up = 2.0 - 0.2451 * (T / 100.0) + 0.0107 * std::pow(T / 100.0, 2.0);
Expand Down Expand Up @@ -491,7 +498,7 @@ PorousMediaBase::computeProperties()

Real N_wc = 0.9;
if (_water_to_cement < 0.3)
N_wc = 0.9;
N_wc = 0.99;
else if (_water_to_cement >= 0.3 && _water_to_cement <= 0.7)
N_wc = 0.33 + 2.2 * _water_to_cement;
else
Expand Down
2 changes: 1 addition & 1 deletion test/tests/concrete_ASR_swelling/asr_confined.i
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@

[Materials]
[./concreteTH]
type = PorousMediaBase
type = ConcreteThermalMoisture
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
thermal_conductivity_model = CONSTANT
Expand Down
2 changes: 1 addition & 1 deletion test/tests/concrete_ASR_swelling/tests
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[Tests]
issues = '#91'
design = 'PorousMediaBase.md ConcreteASRMicrocrackingDamage.md '
design = 'ConcreteThermalMoisture.md ConcreteASRMicrocrackingDamage.md '
'ConcreteASREigenstrain.md'
[ASR_swelling]
requirement = 'Blackbear shall solve coupled systems of equations for heat and moisure transfer '
Expand Down
2 changes: 1 addition & 1 deletion test/tests/concrete_moisture_heat_transfer/maqbeth.i
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@

[Materials]
[./concrete]
type = PorousMediaBase
type = ConcreteThermalMoisture
block = 1
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
Expand Down
2 changes: 1 addition & 1 deletion test/tests/concrete_moisture_heat_transfer/tests
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[Tests]
issues = '#91'
design = 'PorousMediaBase.md'
design = 'ConcreteThermalMoisture.md'
[test]
requirement = 'Blackbear shall model heat transfer and moisture transport in concrete.'
type = 'Exodiff'
Expand Down
2 changes: 1 addition & 1 deletion test/tests/concrete_sulfide_attack/sulfide_attack.i
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@

[Materials]
[./example]
type = PorousMediaBase
type = ConcreteThermalMoisture
block = 0
initial_diffusivity = 1.0e-9
initial_porosity = 0.1
Expand Down
2 changes: 1 addition & 1 deletion test/tests/concrete_sulfide_attack/tests
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[Tests]
issues = '#171'
design = 'PorousMediaBase.md ReactionNetwork/index.md'
design = 'ConcreteThermalMoisture.md ReactionNetwork/index.md'
[./test]
type = 'Exodiff'
input = 'sulfide_attack.i'
Expand Down

0 comments on commit 0c19818

Please sign in to comment.