diff --git a/assessment/asr_validation/wald2017b/analysis/A1-biaxial.i b/assessment/asr_validation/wald2017b/analysis/A1-biaxial.i index 6e2733dd..0cdeb3e8 100644 --- a/assessment/asr_validation/wald2017b/analysis/A1-biaxial.i +++ b/assessment/asr_validation/wald2017b/analysis/A1-biaxial.i @@ -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 diff --git a/assessment/asr_validation/wald2017b/analysis/A1-triaxial.i b/assessment/asr_validation/wald2017b/analysis/A1-triaxial.i index cc9adaeb..050d82bc 100644 --- a/assessment/asr_validation/wald2017b/analysis/A1-triaxial.i +++ b/assessment/asr_validation/wald2017b/analysis/A1-triaxial.i @@ -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 diff --git a/assessment/asr_validation/wald2017b/analysis/A1-uniaxial.i b/assessment/asr_validation/wald2017b/analysis/A1-uniaxial.i index 6328d728..5d2aa642 100644 --- a/assessment/asr_validation/wald2017b/analysis/A1-uniaxial.i +++ b/assessment/asr_validation/wald2017b/analysis/A1-uniaxial.i @@ -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 diff --git a/assessment/asr_validation/wald2017b/analysis/A1-unreinforced.i b/assessment/asr_validation/wald2017b/analysis/A1-unreinforced.i index 70946338..5cfff6ce 100644 --- a/assessment/asr_validation/wald2017b/analysis/A1-unreinforced.i +++ b/assessment/asr_validation/wald2017b/analysis/A1-unreinforced.i @@ -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 diff --git a/assessment/asr_validation/wald2017b/analysis/A3-biaxial.i b/assessment/asr_validation/wald2017b/analysis/A3-biaxial.i index 626b8305..62f3fca2 100644 --- a/assessment/asr_validation/wald2017b/analysis/A3-biaxial.i +++ b/assessment/asr_validation/wald2017b/analysis/A3-biaxial.i @@ -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 diff --git a/doc/content/source/materials/ConcreteThermalMoisture.md b/doc/content/source/materials/ConcreteThermalMoisture.md new file mode 100644 index 00000000..2d6d1b7d --- /dev/null +++ b/doc/content/source/materials/ConcreteThermalMoisture.md @@ -0,0 +1,18 @@ + + +# 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 diff --git a/doc/content/source/materials/PorousMediaBase.md b/doc/content/source/materials/PorousMediaBase.md deleted file mode 100644 index cb268ac9..00000000 --- a/doc/content/source/materials/PorousMediaBase.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# PorousMediaBase - -!alert construction title=Undocumented Class -The PorousMediaBase 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/PorousMediaBase - -!syntax parameters /Materials/PorousMediaBase - -!syntax inputs /Materials/PorousMediaBase - -!syntax children /Materials/PorousMediaBase - -!bibtex bibliography diff --git a/include/materials/PorousMediaBase.h b/include/materials/ConcreteThermalMoisture.h similarity index 96% rename from include/materials/PorousMediaBase.h rename to include/materials/ConcreteThermalMoisture.h index 677d7926..aeb276f2 100644 --- a/include/materials/PorousMediaBase.h +++ b/include/materials/ConcreteThermalMoisture.h @@ -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(); diff --git a/src/materials/PorousMediaBase.C b/src/materials/ConcreteThermalMoisture.C similarity index 93% rename from src/materials/PorousMediaBase.C rename to src/materials/ConcreteThermalMoisture.C index b487ec44..b674053f 100644 --- a/src/materials/PorousMediaBase.C +++ b/src/materials/ConcreteThermalMoisture.C @@ -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( + "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("initial_diffusivity", 1.0e-9, "diffusivity of ions in medium, m^2/s"); params.addParam("initial_porosity", 0.3, "Initial porosity of medium"); @@ -93,7 +99,7 @@ PorousMediaBase::validParams() return params; } -PorousMediaBase::PorousMediaBase(const InputParameters & parameters) +ConcreteThermalMoisture::ConcreteThermalMoisture(const InputParameters & parameters) : Material(parameters), _thermal_conductivity_model(getParam("thermal_conductivity_model")), _thermal_capacity_model(getParam("thermal_capacity_model")), @@ -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("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) { @@ -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) @@ -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; @@ -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) @@ -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; @@ -377,7 +388,7 @@ 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) @@ -385,11 +396,9 @@ PorousMediaBase::computeProperties() 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; @@ -404,7 +413,7 @@ 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) @@ -412,11 +421,9 @@ PorousMediaBase::computeProperties() 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; @@ -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); @@ -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 diff --git a/test/tests/concrete_ASR_swelling/asr_confined.i b/test/tests/concrete_ASR_swelling/asr_confined.i index f1aa8184..47a6ce13 100644 --- a/test/tests/concrete_ASR_swelling/asr_confined.i +++ b/test/tests/concrete_ASR_swelling/asr_confined.i @@ -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 diff --git a/test/tests/concrete_ASR_swelling/tests b/test/tests/concrete_ASR_swelling/tests index 654089fe..1864fe8b 100644 --- a/test/tests/concrete_ASR_swelling/tests +++ b/test/tests/concrete_ASR_swelling/tests @@ -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 ' diff --git a/test/tests/concrete_moisture_heat_transfer/maqbeth.i b/test/tests/concrete_moisture_heat_transfer/maqbeth.i index 276a5f6e..aa4a1854 100644 --- a/test/tests/concrete_moisture_heat_transfer/maqbeth.i +++ b/test/tests/concrete_moisture_heat_transfer/maqbeth.i @@ -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 diff --git a/test/tests/concrete_moisture_heat_transfer/tests b/test/tests/concrete_moisture_heat_transfer/tests index 13657de7..34dd1de3 100644 --- a/test/tests/concrete_moisture_heat_transfer/tests +++ b/test/tests/concrete_moisture_heat_transfer/tests @@ -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' diff --git a/test/tests/concrete_sulfide_attack/sulfide_attack.i b/test/tests/concrete_sulfide_attack/sulfide_attack.i index ee9890ab..68c25365 100644 --- a/test/tests/concrete_sulfide_attack/sulfide_attack.i +++ b/test/tests/concrete_sulfide_attack/sulfide_attack.i @@ -128,7 +128,7 @@ [Materials] [./example] - type = PorousMediaBase + type = ConcreteThermalMoisture block = 0 initial_diffusivity = 1.0e-9 initial_porosity = 0.1 diff --git a/test/tests/concrete_sulfide_attack/tests b/test/tests/concrete_sulfide_attack/tests index 8f16682d..ddd43860 100644 --- a/test/tests/concrete_sulfide_attack/tests +++ b/test/tests/concrete_sulfide_attack/tests @@ -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'