Concrete ASR Eigenstrain

Computes the volumetric expansion eigenstrain due to alkali-silica reaction.

Alkali-silica reaction (ASR) swelling model

Background

Deterioration of concrete structures affected by ASR can be attributed, on the microscopic level, to the formation of a hydrophilic gel due to complex dissolution-precipitation reactions between reactive silica in aggregates, alkaline ions such as potassium and and hydroxyl ions in the cement pore solution. If water is available in concrete pores, the gel swells, creating an internal pressure in localized regions within concrete structures, which can initiate micro- and macrocracking, excessive expansion, misalignment of the structure etc. According to Ulm et al. (2000), there are two important factors that control the ASR reaction rate:

  • ASR reactions are thermally activated. The higher the temperature, the faster they occur. This kinetic effect of temperature on ASR results from the thermoactivation of both the dissolution of reactive silica on aggregate-cement interface and the precipitation of gel.

  • The relative humidity in concrete has a strong influence on ASR, affecting both the kinetics and magnitude of volumetric swelling. Water plays an important role as a solvent for silica dissolution, intervenes as a transport medium for diffusion of ions through the pore network, and is a necessary compound for the formation of various reaction products (gels and other mineral precipitates).

The ConcreteASREigenstrain model computes the evolution of the ASR reaction and the resulting eigenstrains as a function of the thermal, moisture, and mechanical stresses at local material points, which enables ASR to be simulated in a way that accounts for full coupling of all physics involved in this phenomenon. It is an implementation of the Saouma and Perotti (2006) ASR swelling model, which builds on the model of Ulm et al. (2000). This model has the following features:

  • The ASR reaction rate is temperature dependent

  • The ASR reaction can be retarded by compressive stress within concrete structures

  • Both high compressive and tensile stress states inhibit ASR expansion due to the formation of micro- and macro-cracks that adsorb the expanding gel

  • Triaxial compressive stress states reduce expansion

  • The ASR expansion is anisotropic to account for the fact that it is constrained by compression, and is redirected into other less-constrained principal directions

Details of this model's representation of ASR reaction kinetics, volumetric strain, and anisotropic distribution of that strain are provided below. Note that throughout this discussion, the notations of Ulm et al. (2000) and Saouma and Perotti (2006) are adopted.

ASR reaction kinetics

This model employs a 1st-order ASR reaction kinetics model that is dependent on both the temperature and the first invariant of the stress tensor as: (1) in which is the ASR reaction extent ranging from 0 (not reacted) to 1 (fully reacted), is the temperature, and and are expressed as: (2) representing the latency and characteristic times of ASR reactions, respectively. Here is the reference temperature (i.e., the temperature at which stress-free ASR experiments are carried out), is the first invariant of the stress tensor, is the uniaxial compressive strength of concrete, and and are thermal activation energy constants for the latency and characteristic times, respectively, and are determined from tests conducted by Larive (1998) as

The function in Eq. (2) represents the effect of compressive stress on the ASR reaction kinetics by modifying the latency time and is defined as (3) where .

Saouma and Perotti (2006) assumed a value of 4/3 for the constant based on their analysis of experimental data from Multon and Toutlemonde (2006). When is greater than zero (i.e., tensile stress state), is equal to 1, indicating no effect of tensile stress on the reaction kinetics. When is less than zero (i.e., compressive stress state), has a value greater than 1, indicating an increase in the latency time (equivalently retardation of ASR reaction).

Eq. (1) for the ASR reaction is a nonlinear ordinary differential equation (ODE) that is solved locally at the quadrature points within each finite element by a Newton-Raphson iteration scheme, given the current temperature and the stress tensor and reaction extent at the end of the previous time step.

Stress-dependent ASR volumetric strain

The volumetric strain resulting from the ASR reaction depends on stress in this model. Once the increment of ASR reaction extent is obtained, the ASR volumetric strain increment from time to is evaluated using the following formula (4) where is the tensile strength of the concrete; is the maximum principal stress ( under tensile stress); is the crack opening displacement; is the ratio between the hydrostatic stress and compressive strength of concrete, and is the laboratory-determined maximum free volumetric expansion at the reference temperature .

The function in Eq. (4) accounts for the dependency of gel expansion on the water in concrete and takes the form: where the exponent is an empirical constant and is the relative humidity in concrete. has a value between 0 and 1.

Function in Eq. (4) accounts for the reduction of ASR expansion due to tensile cracking (e.g., gels are adsorbed into tensile macrocracks), and takes the following form: in which is the fraction of the tensile strength beyond which gel is adsorbed by cracks and is a user input parameter in simulation, and is a residual ASR expansion retention factor for ASR under tension.

Function in Eq. (4) accounts for the reduction in ASR volumetric expansion under compressive stress state, in which gel is absorbed by diffused microcracks, and takes the following form: (5) where the exponent is an empirical constant between -2 and 2, and is the ratio between the hydrostatic stress and compressive strength of concrete:

Anisotropic ASR strain distribution

In general the incremental ASR volumetric stain should not be applied isotropically because the propensity for expansion in a given direction depends on the stress in that direction. The technique of Saouma and Perotti (2006) is used here to calculate the distribution of volumetric expansion among the three directions of principal stress based on the behavior under either uniaxial, biaxial or triaxial confinement conditions.

Given the full stress tensor (in Cartesian coordinates) at a quadrature point within an element, an eigensolver is used to obtain the three principal stresses, , and , and associated eigenvectors for the directions of principal stresses, , and . These eigenvectors form a stress/strain rotational matrix that is used later to rotate the incremental ASR strain tensor expressed in principal stress/strain coordinates back into Cartesian coordinates.

Figure 1: 2D stress-space map and ASR weight interpolation quadrants (based on Saouma and Perotti (2006))

The weight allocation scheme for the principal directions starts by dividing the stress space into nine quadrants using the concrete tensile strength and compressive strength as well as a gel expansion-inhibiting compressive stress , as shown in Figure 1. is defined as the compressive stress beyond which no further gel expansion can occur. Saouma and Perotti (2006) proposed a value of -10MPa based on previous experimental studies Larive (1998). Any combination of two principal stresses will fall into one of the nine quadrants of this two-dimensional stress map, which has a total of 16 nodes.

To calculate the ASR expansion weight along the direction of a particular principal stress, using for example, the following three steps are taken:

  • Identify the quadrant encompassing the other two principal stresses and using Figure 1 and the corresponding nodal numbers of that quadrant;

  • Find the rows of Table 1 corresponding to the identified nodal numbers and determine the nodal weights from the last 3 columns of Table 1 in the corresponding rows using a linear interpolation of .

  • Finally, compute the ASR expansion weight for the principal direction using the four nodal weights of the quadrant in which falls using the bilinear interpolation of Eq. (6)

The bilinear interpolation is performed in the same way that solution fields are interpolated in the standard finite element method: (6) where is the bilinear shape function similar to those used in finite element method and is given by

Table 1: Triaxial weights for nodes in the stress map of Figure 1 (from Saouma and Perotti (2006))

Node Number
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

The previous steps are then repeated to calculate the ASR expansion weights along the other two principal directions, and . Note that the summation of , and equals 1. The individual incremental ASR strains along the principal directions are then obtained using these relative weights by the following formula: (7)

Finally, the full ASR expansion-induced incremental strain tensor in the Cartesian coordinate system can then be obtained by rotating into the current coordinates via (8) in which is the imposed incremental strain tensor due to ASR expansion at each quadrature point, which drives the deformation of the concrete structure.

ASR-induced Damage

The ASR-induced degradation of the mechanical properties of concrete can be simulated with a specific damage model. In this approach, the stress is computed with a ComputeDamageStress calculator as:

in which is the fourth-order stiffness tensor of the material and the ASR-induced damage.

Two options are available to compute :

  • Using the ConcreteASRMicrocrackingDamage model based on Saouma and Perotti (2006), in which is a simple function of the ASR reaction extent and a material constant representing the loss of modulus when the material has fully reacted:

  • Using the ConcreteExpansionMicrocrackingDamage model, in which the damage is computed as a function of the total ASR strain and the current stress. In this approach, the anisotropic effects of ASR are indirectly accounted for via the damage model rather than the eigenstrain itself, and therefore this model should be used with the expansion_type = Isotropic option.

Implementation and Usage

The ConcreteASREigenstrain model computes the ASR reaction extent , and stores it in a property named ASR_extent. It also computes an eigenstrain tensor that is used to modify the strain tensor. The loss of mechanical properties due to ASR can be represented with the ConcreteASRMicrocrackingDamage model or the ConcreteExpansionMicrocrackingDamage model, provided that the stress is computed with ComputeDamageStress.

Input Parameters

  • characteristic_timeChracteristic ASR time (in days) at reference temprature. (tau_C(T_0))

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Chracteristic ASR time (in days) at reference temprature. (tau_C(T_0))

  • compressive_strengthCompressive strength of concrete

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Compressive strength of concrete

  • eigenstrain_nameMaterial property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator.

    C++ Type:std::string

    Controllable:No

    Description:Material property name for the eigenstrain tensor computed by this model. IMPORTANT: The name of this property must also be provided to the strain calculator.

  • latency_timeLatency ASR time (in days) at reference temprature (tau_L(T_0))

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Latency ASR time (in days) at reference temprature (tau_L(T_0))

  • max_volumetric_expansionFinal ansymptotic ASR volumetric expansion strain when reaction is complete

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Final ansymptotic ASR volumetric expansion strain when reaction is complete

  • reference_temperatureReference temperature for ASR reaction constants.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Reference temperature for ASR reaction constants.

  • relative_humidityCoupled relative humidity

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Coupled relative humidity

  • residual_tensile_strength_fractionResidual fraction of tensile strength at full ASR reaction

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Residual fraction of tensile strength at full ASR reaction

  • temperatureCoupled temperature

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Coupled temperature

  • temperature_unitUnit used to define 'temperature' and 'reference_temperature'

    C++ Type:MooseEnum

    Options:Celsius, Kelvin

    Controllable:No

    Description:Unit used to define 'temperature' and 'reference_temperature'

  • tensile_strengthTensile strength of concrete

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Tensile strength of concrete

Required Parameters

  • ASR_dependent_tensile_strengthFalseSet true to turn ASR reaction dependent tensile strength

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Set true to turn ASR reaction dependent tensile strength

  • base_nameOptional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases

    C++ Type:std::string

    Controllable:No

    Description:Optional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases

  • blockThe list of blocks (ids or names) that this object will be applied

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • boundaryThe list of boundaries (ids or names) from the mesh where this object applies

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies

  • characteristic_activation_energy5400Activation energy associated with characteristic_time (U_C)

    Default:5400

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Activation energy associated with characteristic_time (U_C)

  • computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.

  • constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped

    Default:NONE

    C++ Type:MooseEnum

    Options:NONE, ELEMENT, SUBDOMAIN

    Controllable:No

    Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped

  • declare_suffixAn optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.

  • expansion_stress_limitUpper bound compressive stress beyond which no expansion occurs

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Upper bound compressive stress beyond which no expansion occurs

  • expansion_typeType of expansion resulting from volumetric strain

    C++ Type:MooseEnum

    Options:Isotropic, Anisotropic

    Controllable:No

    Description:Type of expansion resulting from volumetric strain

  • latency_activation_energy9400Activation energy associated with latency_time (U_L)

    Default:9400

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Activation energy associated with latency_time (U_L)

  • rh_exponent4Power to which relative humidity is raised in computation of ASR volumetric strain

    Default:4

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Power to which relative humidity is raised in computation of ASR volumetric strain

Optional Parameters

  • absolute_tolerance1e-20Absolute convergence tolerance for material iteration

    Default:1e-20

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Absolute convergence tolerance for material iteration

  • compressive_stress_exponent0.5Exponent for ASR retention factor under compressive stress state (beta)

    Default:0.5

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Exponent for ASR retention factor under compressive stress state (beta)

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Determines whether this object is calculated using an implicit or explicit form

  • max_its30Maximum number of iterations for material solution

    Default:30

    C++ Type:unsigned int

    Controllable:No

    Description:Maximum number of iterations for material solution

  • output_iteration_infoFalseSet true to output material iteration information

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Set true to output material iteration information

  • output_iteration_info_on_errorFalseSet true to output material iteration information when a step fails

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Set true to output material iteration information when a step fails

  • relative_tolerance1e-08Relative convergence tolerance for material iteration

    Default:1e-08

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Relative convergence tolerance for material iteration

  • seed0The seed for the master random number generator

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:The seed for the master random number generator

  • stress_latency_factor1.33333Constant for ASR latency time retardation under hydrostatic compression (alpha)

    Default:1.33333

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Constant for ASR latency time retardation under hydrostatic compression (alpha)

  • tensile_absorption_factor0.5Fraction of tensile strength beyond which ASR gel is absorbed into tensile cracks (gamma_t)

    Default:0.5

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Fraction of tensile strength beyond which ASR gel is absorbed into tensile cracks (gamma_t)

  • tensile_retention_factor0.5Residual ASR retention factor under tension (gamma_r)

    Default:0.5

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Residual ASR retention factor under tension (gamma_r)

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:List of material properties, from this material, to output (outputs must also be defined to an output type)

  • outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object

    Default:none

    C++ Type:std::vector<OutputName>

    Controllable:No

    Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object

Outputs Parameters

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Material Property Retrieval Parameters

References

  1. C. Larive. Apports Combin'es de l'Experimentation et de la Modélisation à la Comprehension del' A lcali-Réaction et de ses Effets Mécaniques,. PhD thesis, Laboratoire Central des Ponts et Chaussées, Paris., 1998.[BibTeX]
  2. Stéphane Multon and François Toutlemonde. Effect of applied stresses on alkali–silica reaction-induced expansions. Cement and Concrete Research, 36(5):912–920, 2006.[BibTeX]
  3. Victor Saouma and Luigi Perotti. Constitutive model for alkali-aggregate reactions. ACI Materials Journal, 2006. doi:10.14359/15853.[BibTeX]
  4. Franz-Josef Ulm, Olivier Coussy, Li Kefei, and Catherine Larive. Thermo-chemo-mechanics of asr expansion in concrete structures. Journal of engineering mechanics, 126(3):233–242, 2000.[BibTeX]