LCOV - code coverage report
Current view: top level - include/materials - ConcreteASREigenstrain.h (source / functions) Hit Total Coverage
Test: idaholab/blackbear: 75f23c Lines: 1 1 100.0 %
Date: 2025-07-17 04:05:57 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /****************************************************************/
       2             : /*               DO NOT MODIFY THIS HEADER                      */
       3             : /*                       BlackBear                              */
       4             : /*                                                              */
       5             : /*           (c) 2017 Battelle Energy Alliance, LLC             */
       6             : /*                   ALL RIGHTS RESERVED                        */
       7             : /*                                                              */
       8             : /*          Prepared by Battelle Energy Alliance, LLC           */
       9             : /*            Under Contract No. DE-AC07-05ID14517              */
      10             : /*            With the U. S. Department of Energy               */
      11             : /*                                                              */
      12             : /*            See COPYRIGHT for full restrictions               */
      13             : /****************************************************************/
      14             : 
      15             : #pragma once
      16             : 
      17             : #include "ConcreteExpansionEigenstrainBase.h"
      18             : #include "RankTwoTensor.h"
      19             : 
      20             : /**
      21             :  * Computes the volumetric expansion eigenstrain due to alkali-silica
      22             :  * reaction. This follows the formulation described in:
      23             :  *
      24             :  * V. Saouma and L. Perotti. Constitutive model for alkali-aggregate
      25             :  * reactions. ACI Materials Journal, 103(3), 2006.
      26             :  */
      27             : 
      28             : class ConcreteASREigenstrain : public ConcreteExpansionEigenstrainBase
      29             : {
      30             : public:
      31             :   static InputParameters validParams();
      32             :   ConcreteASREigenstrain(const InputParameters & parameters);
      33             : 
      34             :   void initQpStatefulProperties() override;
      35      364422 :   bool needStressEigenvalues() override { return true; }
      36             :   Real computeQpVolumetricStrain() override;
      37             : 
      38             :   /**
      39             :    * Compute the residual for the computation of the ASR reaction extent.
      40             :    * @param qp Current quadrature point id
      41             :    * @param scalar Current iterative value of the ASR reaction extent
      42             :    * @return residual, which is the error in the new ASR reaction extent
      43             :    */
      44             :   Real computeResidual(unsigned qp, Real scalar);
      45             : 
      46             :   /**
      47             :    * Compute the derivative of the residual for the ASR reaction extent.
      48             :    * @param qp Current quadrature point id
      49             :    * @param scalar Current iterative value of the ASR reaction extent
      50             :    * @return derivative, which is the change in the error in the new ASR
      51             :    *         reaction extent wrt the reaction extent.
      52             :    */
      53             :   Real computeDerivative(unsigned qp, Real scalar);
      54             : 
      55             : private:
      56             :   /// Coupled value of temperature
      57             :   const VariableValue & _temperature;
      58             : 
      59             :   /// Coupled value of relative humidity
      60             :   const VariableValue & _relative_humidity;
      61             :   /// Power to which relative humidity is raised
      62             :   const Real & _rh_exponent;
      63             : 
      64             :   /// Final value of ASR volumetric expansion at full reaction extent
      65             :   Real _max_vol_expansion;
      66             :   /// Characteristic ASR time (days) at reference temperature
      67             :   Real _tau_c_T0;
      68             :   /// Latency ASR time (days) at reference temperature
      69             :   Real _tau_L_T0;
      70             :   /// Activation energy associated with tau_c
      71             :   Real _Uc;
      72             :   /// Activation energy associated with tau_L
      73             :   Real _UL;
      74             :   /// Reference temperature associated with ASR, converted to Kelvin
      75             :   Real _ref_temp;
      76             : 
      77             :   /// Constant for ASR latency time retardation under hydrostatic compression
      78             :   Real _alpha;
      79             : 
      80             :   ///@{ Parameters for ASR gel adsorption due to tensile cracking
      81             :   Real _gamma_tensile;
      82             :   Real _gamma_residual;
      83             :   ///@}
      84             : 
      85             :   /// Parameter for ASR gel adsorption due to compressive cracking
      86             :   Real _beta;
      87             : 
      88             :   /// Whether to include effect of ASR on tensile strength
      89             :   bool _ASR_dependent_tensile_strength;
      90             :   /// Fraction of tensile strength retained at full ASR reaction extent
      91             :   Real _beta_f;
      92             : 
      93             :   ///@{ Parameters controlling Newton iterations
      94             :   const unsigned int _max_its;
      95             :   const bool _output_iteration_info;
      96             :   const bool _output_iteration_info_on_error;
      97             :   const Real _relative_tolerance;
      98             :   const Real _absolute_tolerance;
      99             :   ///@}
     100             : 
     101             :   /// Current value of ASR reaction extent. This is a variable
     102             :   /// that goes from 0 (no reaction) to 1 (fully reacted)
     103             :   MaterialProperty<Real> & _ASR_extent;
     104             : 
     105             :   /// Previous value of ASR reaction extent.
     106             :   const MaterialProperty<Real> & _ASR_extent_old;
     107             : 
     108             :   /// Offset applied to convert temperature to Kelvin
     109             :   Real _temp_offset;
     110             : };
     111             : 

Generated by: LCOV version 1.14