ASR Validation Cases
Alkalli-silica reaction in concrete significantly influences the expansion behavior and overall degradation of the concrete structures. ASR expansion is highly dependent on the components of the concrete such as cement types, aggregate types and sizes etc. In addition, environmental conditions such as temperature and humidity also influence the ASR reaction rate. Hence, it is very difficult to obtain a generic ASR expansion model applicable to different concrete. In BlackBear, the ASR expansion model is implemented based on Saouma and Perotti (2006) ASR swelling model, which builds on the model of Ulm et al. (2000). In this model, the reaction rate and the maximum expansion varies with the reactivity of the concrete components and environmental conditions. The details about the model can be found in ConcreteASREigenstrain.
Various researchers have attempted to experimentally observe the ASR behavior in concrete and identify various criteria for ASR expansion. The validations cases in BlackBear are built based on such experiments. These cases not only focuses on the ASR expansion model, but also tests the multi-physics concrete modeling capability of BlackBear.
Free Expansion of Plain Concrete
Wallau et al. (2018) performed prism testing to assess the susceptibility of the concrete structure due to ASR. They demonstrated that the ASR expansion happens in three stages, initial swelling, acceleration, and consolidation of expansion, that is captured by a S-curve. They also showed that the curves could vary widely depending on the aggregate type and concluded that a globally applicable ASR expansion curve might not exist. The initial benchmark cases in Blackbear are built based on these experiments demonstrating how well the model can predict the experimental observations. The properties associated with the ASR extent calculation are tabulated below:
Model Parameters | Aggregate A | Aggregate B | Aggregate C |
---|---|---|---|
Maximum Volumetric Expansion | 1.24 | 0.76 | 0.38 |
Characteristic Time (days) | 8.68 | 66.84 | 17.24 |
Latency Time (days) | 16.22 | -126.1 | -2.55 |
Here, the negative latency time indicates the aggregates are highly reactive. Refer to ConcreteASREigenstrain and Wallau et al. (2018) for more details.
Free Expansion of Reinforced Concrete Blocks
Wald et al. (2017) performed a series of experiments to understand how the presence of multiaxial reinforcement affects ASR expansion behavior of concrete. Some of these experiments are modeled here including an unreinforced block (Specimen A1-000b), and several blocks with varying reinforcement configurations (e.g., Specimen A1-002, Specimen A1-211, Specimen A3-102-L1 etc.). The assessment cases also evaluate the effect of the environmental condition on the expansion behavior of the concrete.
Validation Cases
Various assessment cases demonstrating validation of the models against experimental observations are located at blackbear/test/tests/concrete_ASR_validation and blackbear/assessment/asr_validation/wald2017b/analysis.
Input Files
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
[]
[]
[AuxVariables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 20.0
[../]
[./ASR_ex]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./ASR_vstrain]
order = CONSTANT
family = MONOMIAL
[../]
[./ASR_strain_xx]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./ASR_strain_yy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./ASR_strain_zz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./ASR_strain_xy]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./ASR_strain_yz]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./ASR_strain_zx]
order = CONSTANT
family = MONOMIAL
block = 0
[../]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./concrete]
block = 0
strain = SMALL
add_variables = true
eigenstrain_names = 'asr_expansion'
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx vonmises_stress hydrostatic_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz '
[../]
[]
[AuxKernels]
[./ASR_ex]
type = MaterialRealAux
variable = ASR_ex
block = 0
property = ASR_extent
execute_on = 'timestep_end'
[../]
[./ASR_vstrain]
type = MaterialRealAux
block = 0
variable = ASR_vstrain
property = ASR_volumetric_strain
execute_on = 'timestep_end'
[../]
[./ASR_strain_xx]
type = RankTwoAux
block = 0
rank_two_tensor = asr_expansion
variable = ASR_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./ASR_strain_yy]
type = RankTwoAux
block = 0
rank_two_tensor = asr_expansion
variable = ASR_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./ASR_strain_zz]
type = RankTwoAux
block = 0
rank_two_tensor = asr_expansion
variable = ASR_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./ASR_strain_xy]
type = RankTwoAux
block = 0
rank_two_tensor = asr_expansion
variable = ASR_strain_xy
index_i = 0
index_j = 1
execute_on = 'timestep_end'
[../]
[./ASR_strain_yz]
type = RankTwoAux
block = 0
rank_two_tensor = asr_expansion
variable = ASR_strain_yz
index_i = 1
index_j = 2
execute_on = 'timestep_end'
[../]
[./ASR_strain_zx]
type = RankTwoAux
block = 0
rank_two_tensor = asr_expansion
variable = ASR_strain_zx
index_i = 0
index_j = 2
execute_on = 'timestep_end'
[../]
[./volumetric_strain]
type = RankTwoScalarAux
scalar_type = VolumetricStrain
rank_two_tensor = total_strain
variable = volumetric_strain
[../]
[]
[Functions]
[./strain_function]
type = ParsedFunction
value = 1.24e-3*(1-exp(-t/86400/8.68))/(1+exp((8.68-t/86400)/16.22))
[../]
[]
[Materials]
[elasticity_concrete]
type = ComputeIsotropicElasticityTensor
block = 0
youngs_modulus = 37.3e9
poissons_ratio = 0.22
[]
[stress]
type = ComputeLinearElasticStress
block = 0
[]
[ASR_expansion]
type = ConcreteASREigenstrain
block = 0
expansion_type = Isotropic
reference_temperature = 20.0
temperature_unit = Celsius
max_volumetric_expansion = 1.24e-3
characteristic_time = 8.68
latency_time = 16.22
characteristic_activation_energy = 5400.0
latency_activation_energy = 9400.0
stress_latency_factor = 1.0
compressive_strength = 31.0e6
compressive_stress_exponent = 0.0
tensile_strength = 3.2e6
tensile_retention_factor = 1.0
tensile_absorption_factor = 1.0
ASR_dependent_tensile_strength = false
residual_tensile_strength_fraction = 1.0
temperature = T
relative_humidity = 0.0
rh_exponent = 0.0
eigenstrain_name = asr_expansion
[]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[../]
[]
[Postprocessors]
[./ASR_strain]
type = ElementAverageValue
variable = ASR_vstrain
block = 'ANY_BLOCK_ID 0'
[../]
[ASR_ext]
type = ElementAverageValue
variable = ASR_ex
block = 'ANY_BLOCK_ID 0'
[]
[./vonmises]
type = ElementAverageValue
variable = vonmises_stress
[../]
[./vstrain]
type = ElementAverageValue
variable = volumetric_strain
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = none
petsc_options_iname = '-pc_type -ksp_gmres_restart'
petsc_options_value = 'lu 101'
dt = 100000
end_time = 12960000
l_max_its = 50
l_tol = 1e-6
nl_max_its = 10
nl_rel_tol = 1e-9
nl_abs_tol = 1e-10
[]
[Outputs]
exodus = true
perf_graph = true
csv = true
[./Console]
type = Console
[../]
[]
(test/tests/concrete_ASR_validation/asr_validation.i) [GlobalParams]
displacements = 'disp_x disp_y disp_z'
penalty = 1e12
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y disp_z'
[]
[Mesh]
file = A1-uniaxial.e
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 10.6
[../]
[./rh]
order = FIRST
family = LAGRANGE
initial_condition = 0.8
block = 1
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[./resid_z]
[../]
[./ASR_ex]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_vstrain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_xx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_yy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_zz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_xy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_yz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_zx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_xx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_yy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_zz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_conductivity]
order = CONSTANT
family = Monomial
[../]
[./thermal_capacity]
order = CONSTANT
family = Monomial
[../]
[./moisture_capacity]
order = CONSTANT
family = Monomial
[../]
[./humidity_diffusivity]
order = CONSTANT
family = Monomial
[../]
[./water_content]
order = CONSTANT
family = Monomial
[../]
[./water_hydrated]
order = CONSTANT
family = Monomial
[../]
[damage_index]
order = CONSTANT
family = MONOMIAL
[]
[./area]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./concrete]
block = 1
strain = FINITE
add_variables = true
eigenstrain_names = 'asr_expansion thermal_expansion'
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx vonmises_stress hydrostatic_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[../]
[]
[Modules/TensorMechanics/LineElementMaster]
[./Reinforcement_block]
block = '2 '
truss = true
area = area
displacements = 'disp_x disp_y disp_z'
#Note: Intentially not including this here to have it give a nonzero
# displacement reference residual since it's an unrestrained problem
#extra_vector_tags = 'ref'
[../]
[]
[Constraints]
[./rebar_x2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_x'
primary_variable = 'disp_x'
formulation = penalty
[../]
[./rebar_y2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_y'
primary_variable = 'disp_y'
formulation = penalty
[../]
[./rebar_z2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_z'
primary_variable = 'disp_z'
formulation = penalty
[../]
[./rebar_T2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'T'
primary_variable = 'T'
formulation = penalty
penalty = 1e6
[../]
[]
[Kernels]
[./T_td]
type = ConcreteThermalTimeIntegration
variable = T
block = 1
extra_vector_tags = 'ref'
[../]
[./T_diff]
type = ConcreteThermalConduction
variable = T
block = 1
extra_vector_tags = 'ref'
[../]
[./T_conv]
type = ConcreteThermalConvection
variable = T
relative_humidity = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./T_adsorption]
type = ConcreteLatentHeat
variable = T
H = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./rh_td]
type = ConcreteMoistureTimeIntegration
variable = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./rh_diff]
type = ConcreteMoistureDiffusion
variable = rh
temperature = T
block = 1
extra_vector_tags = 'ref'
[../]
[./heat_dt]
type = TimeDerivative
variable = T
block = 2
extra_vector_tags = 'ref'
[../]
[./heat_conduction]
type = HeatConduction
variable = T
diffusion_coefficient = 53.0
block = 2
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./ASR_ex]
type = MaterialRealAux
variable = ASR_ex
block = 1
property = ASR_extent
execute_on = 'timestep_end'
[../]
[./ASR_vstrain]
type = MaterialRealAux
block = 1
variable = ASR_vstrain
property = ASR_volumetric_strain
execute_on = 'timestep_end'
[../]
[./ASR_strain_xx]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./ASR_strain_yy]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./ASR_strain_zz]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./ASR_strain_xy]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_xy
index_i = 0
index_j = 1
execute_on = 'timestep_end'
[../]
[./ASR_strain_yz]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_yz
index_i = 1
index_j = 2
execute_on = 'timestep_end'
[../]
[./ASR_strain_zx]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_zx
index_i = 0
index_j = 2
execute_on = 'timestep_end'
[../]
[./thermal_strain_xx]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./thermal_strain_yy]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./thermal_strain_zz]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./volumetric_strain]
type = RankTwoScalarAux
scalar_type = VolumetricStrain
rank_two_tensor = total_strain
variable = volumetric_strain
block = 1
[../]
[./k]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'timestep_end'
block = 1
[../]
[./capacity]
type = MaterialRealAux
variable = thermal_capacity
property = thermal_capacity
execute_on = 'timestep_end'
block = 1
[../]
[./rh_capacity]
type = MaterialRealAux
variable = moisture_capacity
property = moisture_capacity
execute_on = 'timestep_end'
block = 1
[../]
[./rh_duff]
type = MaterialRealAux
variable = humidity_diffusivity
property = humidity_diffusivity
execute_on = 'timestep_end'
block = 1
[../]
[./wc_duff]
type = MaterialRealAux
variable = water_content
property = moisture_content
execute_on = 'timestep_end'
block = 1
[../]
[./hydrw_duff]
type = MaterialRealAux
variable = water_hydrated
property = hydrated_water
execute_on = 'timestep_end'
block = 1
[../]
[damage_index]
type = MaterialRealAux
block = 1
variable = damage_index
property = damage_index
execute_on = timestep_end
[]
[./area]
type = ConstantAux
block = '2'
variable = area
value = 1.33e-4
execute_on = 'initial timestep_begin'
[../]
[./axial_stress]
type = MaterialRealAux
block = '2'
variable = axial_stress
property = axial_stress
[../]
[]
[Functions]
[./ramp_temp]
type = PiecewiseLinear
data_file = temperature_history.csv
format = columns
[../]
[./ramp_humidity]
type = PiecewiseLinear
data_file = humidity_history.csv
format = columns
[../]
[]
[Materials]
[./concrete]
type = ConcreteThermalMoisture
block = 1
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
thermal_conductivity_model = KODUR-2004
thermal_capacity_model = KODUR-2004
aggregate_type = Siliceous #options: Siliceous Carbonate
ref_density_of_concrete = 2231.0 # in kg/m^3
ref_specific_heat_of_concrete = 1100.0 # in J/(Kg.0C)
ref_thermal_conductivity_of_concrete = 3 # in W/(m.0C)
# setup moisture capacity and humidity diffusivity models
aggregate_pore_type = dense #options: dense porous
aggregate_mass = 1877.0 #mass of aggregate (kg) per m^3 of concrete
cement_type = 1 #options: 1 2 3 4
cement_mass = 354.0 #mass of cement (kg) per m^3 of concrete
water_to_cement_ratio = 0.5
concrete_cure_time = 28.0 #curing time in (days)
# options available for humidity diffusivity:
moisture_diffusivity_model = Bazant #options: Bazant Mensi
D1 = 3.0e-8
coupled_moisture_diffusivity_factor = 1.0e-2 # factor for mositure diffusivity due to heat
# coupled nonlinear variables
relative_humidity = rh
temperature = T
[../]
[./creep]
type = LinearViscoelasticStressUpdate
block = 1
[../]
[./logcreep]
type = ConcreteLogarithmicCreepModel
block = 1
poissons_ratio = 0.22
youngs_modulus = 37.3e9
recoverable_youngs_modulus = 37.3e9
recoverable_viscosity = 1
long_term_viscosity = 1
long_term_characteristic_time = 1
humidity = rh
temperature = T
activation_temperature = 23.0
[../]
[ASR_expansion]
type = ConcreteASREigenstrain
block = 1
expansion_type = Anisotropic
reference_temperature = 35.0
temperature_unit = Celsius
max_volumetric_expansion = 2.2e-2
characteristic_time = 18.9
latency_time = 18.0
characteristic_activation_energy = 5400.0
latency_activation_energy = 9400.0
stress_latency_factor = 1.0
compressive_strength = 31.0e6
compressive_stress_exponent = 0.0
expansion_stress_limit = 8.0e6
tensile_strength = 3.2e6
tensile_retention_factor = 1.0
tensile_absorption_factor = 1.0
ASR_dependent_tensile_strength = false
residual_tensile_strength_fraction = 1.0
temperature = T
relative_humidity = rh
rh_exponent = 1.0
eigenstrain_name = asr_expansion
absolute_tolerance = 1e-10
output_iteration_info_on_error = true
[]
[thermal_strain_concrete]
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = T
thermal_expansion_coeff = 8.0e-6
stress_free_temperature = 10.6
eigenstrain_name = thermal_expansion
[]
[ASR_damage_concrete]
type = ConcreteASRMicrocrackingDamage
residual_youngs_modulus_fraction = 0.1
block = 1
[]
[./stress]
type = ComputeMultipleInelasticStress
block = 1
inelastic_models = 'creep'
damage_model = ASR_damage_concrete
[../]
[truss]
type = LinearElasticTruss
block = '2 '
youngs_modulus = 2e11
temperature = T
thermal_expansion_coeff = 11.3e-6
temperature_ref = 10.6
[]
[]
[UserObjects]
[./visco_update]
type = LinearViscoelasticityManager
block = 1
viscoelastic_model = logcreep
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = '2000 2005'
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = '2000 2001'
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = '2000 2005'
value = 0.0
[../]
[./T]
type = FunctionDirichletBC
variable = T
boundary = '101 102 103 104 105 106'
function = ramp_temp
[../]
[./rh]
type = FunctionDirichletBC
variable = rh
boundary = '101 102 103 104 105 106'
function = ramp_humidity
[../]
[]
[Postprocessors]
[./nelem]
type = NumElems
[../]
[./ndof]
type = NumDOFs
[../]
[./ASR_strain]
type = ElementAverageValue
variable = ASR_vstrain
block = 1
[../]
[./ASR_strain_xx]
type = ElementAverageValue
variable = ASR_strain_xx
block = 1
[../]
[./ASR_strain_yy]
type = ElementAverageValue
variable = ASR_strain_yy
block = 1
[../]
[./ASR_strain_zz]
type = ElementAverageValue
variable = ASR_strain_zz
block = 1
[../]
[ASR_ext]
type = ElementAverageValue
variable = ASR_ex
block = 1
[]
[./vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 1
[../]
[./vstrain]
type = ElementAverageValue
variable = volumetric_strain
block = 1
[../]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 1
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
block = 1
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
block = 1
[../]
[./temp]
type = ElementAverageValue
variable = T
block = 1
[../]
[./humidity]
type = ElementAverageValue
variable = rh
block = 1
[../]
[./thermal_strain_xx]
type = ElementAverageValue
variable = thermal_strain_xx
block = 1
[../]
[./thermal_strain_yy]
type = ElementAverageValue
variable = thermal_strain_yy
block = 1
[../]
[./thermal_strain_zz]
type = ElementAverageValue
variable = thermal_strain_zz
block = 1
[../]
[./disp_x_101]
type = SideAverageValue
variable = disp_x
boundary = 101
[../]
[./disp_x_102]
type = SideAverageValue
variable = disp_x
boundary = 102
[../]
[./disp_x_103]
type = SideAverageValue
variable = disp_x
boundary = 103
[../]
[./disp_x_104]
type = SideAverageValue
variable = disp_x
boundary = 104
[../]
[./disp_x_105]
type = SideAverageValue
variable = disp_x
boundary = 105
[../]
[./disp_x_106]
type = SideAverageValue
variable = disp_x
boundary = 106
[../]
[./disp_y_101]
type = SideAverageValue
variable = disp_y
boundary = 101
[../]
[./disp_y_102]
type = SideAverageValue
variable = disp_y
boundary = 102
[../]
[./disp_y_103]
type = SideAverageValue
variable = disp_y
boundary = 103
[../]
[./disp_y_104]
type = SideAverageValue
variable = disp_y
boundary = 104
[../]
[./disp_y_105]
type = SideAverageValue
variable = disp_y
boundary = 105
[../]
[./disp_y_106]
type = SideAverageValue
variable = disp_y
boundary = 106
[../]
[./disp_z_101]
type = SideAverageValue
variable = disp_z
boundary = 101
[../]
[./disp_z_102]
type = SideAverageValue
variable = disp_z
boundary = 102
[../]
[./disp_z_103]
type = SideAverageValue
variable = disp_z
boundary = 103
[../]
[./disp_z_104]
type = SideAverageValue
variable = disp_z
boundary = 104
[../]
[./disp_z_105]
type = SideAverageValue
variable = disp_z
boundary = 105
[../]
[./disp_z_106]
type = SideAverageValue
variable = disp_z
boundary = 106
[../]
[disp_x_p1_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.08 -0.08'
[../]
[disp_x_p1_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.08 -0.08'
[../]
[disp_x_p2_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.08 0.08'
[../]
[disp_x_p2_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.08 0.08'
[../]
[disp_x_p3_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 -0.08'
[../]
[disp_x_p3_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 -0.08'
[../]
[disp_x_p4_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 0.08'
[../]
[disp_x_p4_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 0.08'
[../]
[disp_x_p5_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 -0.235'
[../]
[disp_x_p5_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 -0.235'
[../]
[disp_x_p6_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 0.235'
[../]
[disp_x_p6_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 0.235'
[../]
[disp_y_p1_pos]
type = PointValue
variable = disp_y
point = '-0.08 0.24 -0.08'
[../]
[disp_y_p1_neg]
type = PointValue
variable = disp_y
point = '-0.08 -0.24 -0.08'
[../]
[disp_y_p2_pos]
type = PointValue
variable = disp_y
point = '-0.08 0.24 0.08'
[../]
[disp_y_p2_neg]
type = PointValue
variable = disp_y
point = '-0.08 -0.24 0.08'
[../]
[disp_y_p3_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 -0.08'
[../]
[disp_y_p3_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 -0.08'
[../]
[disp_y_p4_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 0.08'
[../]
[disp_y_p4_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 0.08'
[../]
[disp_y_p5_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 -0.235'
[../]
[disp_y_p5_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 -0.235'
[../]
[disp_y_p6_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 0.235'
[../]
[disp_y_p6_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 0.235'
[../]
[disp_y_p7_pos]
type = PointValue
variable = disp_y
point = '-0.235 0.24 0.08'
[../]
[disp_y_p7_neg]
type = PointValue
variable = disp_y
point = '-0.235 -0.24 0.08'
[../]
[disp_y_p8_pos]
type = PointValue
variable = disp_y
point = '0.235 0.24 0.08'
[../]
[disp_y_p8_neg]
type = PointValue
variable = disp_y
point = '0.235 -0.24 0.08'
[../]
[disp_z_p1_pos]
type = PointValue
variable = disp_z
point = '-0.08 -0.08 0.24'
[../]
[disp_z_p1_neg]
type = PointValue
variable = disp_z
point = '-0.08 -0.08 -0.24'
[../]
[disp_z_p2_pos]
type = PointValue
variable = disp_z
point = '-0.08 0.08 0.24'
[../]
[disp_z_p2_neg]
type = PointValue
variable = disp_z
point = '-0.08 0.08 -0.24'
[../]
[disp_z_p3_pos]
type = PointValue
variable = disp_z
point = '0.08 -0.08 0.24'
[../]
[disp_z_p3_neg]
type = PointValue
variable = disp_z
point = '0.08 -0.08 -0.24'
[../]
[disp_z_p4_pos]
type = PointValue
variable = disp_z
point = '0.08 0.08 0.24'
[../]
[disp_z_p4_neg]
type = PointValue
variable = disp_z
point = '0.08 0.08 -0.24'
[../]
[disp_z_p5_pos]
type = PointValue
variable = disp_z
point = '0.235 0.08 0.24'
[../]
[disp_z_p5_neg]
type = PointValue
variable = disp_z
point = '0.235 0.08 -0.24'
[../]
[disp_z_p6_pos]
type = PointValue
variable = disp_z
point = '-0.235 0.08 0.24'
[../]
[disp_z_p6_neg]
type = PointValue
variable = disp_z
point = '-0.235 0.08 -0.24'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
start_time = 2419200
dt = 1000000
automatic_scaling = true
end_time = 38880000
l_max_its = 20
nl_max_its = 10
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
[]
[Outputs]
perf_graph = true
csv = true
#exodus = true #Turned off to save space
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/asr_validation/wald2017b/analysis/A1-uniaxial.i) [GlobalParams]
displacements = 'disp_x disp_y disp_z'
penalty = 1e12
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y disp_z'
[]
[Mesh]
file = A1-biaxial.e
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 10.6
[../]
[./rh]
order = FIRST
family = LAGRANGE
initial_condition = 0.8
block = 1
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[./resid_z]
[../]
[./ASR_ex]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_vstrain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_xx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_yy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_zz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_xy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_yz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_zx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_xx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_yy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_zz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_conductivity]
order = CONSTANT
family = Monomial
[../]
[./thermal_capacity]
order = CONSTANT
family = Monomial
[../]
[./moisture_capacity]
order = CONSTANT
family = Monomial
[../]
[./humidity_diffusivity]
order = CONSTANT
family = Monomial
[../]
[./water_content]
order = CONSTANT
family = Monomial
[../]
[./water_hydrated]
order = CONSTANT
family = Monomial
[../]
[damage_index]
order = CONSTANT
family = MONOMIAL
[]
[./area]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./concrete]
block = 1
strain = FINITE
add_variables = true
eigenstrain_names = 'asr_expansion thermal_expansion'
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx vonmises_stress hydrostatic_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[../]
[]
[Modules/TensorMechanics/LineElementMaster]
[./Reinforcement_block]
block = '2 3'
truss = true
area = area
displacements = 'disp_x disp_y disp_z'
#Note: Intentially not including this here to have it give a nonzero
# displacement reference residual since it's an unrestrained problem
#extra_vector_tags = 'ref'
[../]
[]
[Constraints]
[./rebar_x2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_x'
primary_variable = 'disp_x'
formulation = penalty
[../]
[./rebar_y2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_y'
primary_variable = 'disp_y'
formulation = penalty
[../]
[./rebar_z2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_z'
primary_variable = 'disp_z'
formulation = penalty
[../]
[./rebar_T2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'T'
primary_variable = 'T'
formulation = penalty
penalty = 1e6
[../]
[./rebar_x3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'disp_x'
primary_variable = 'disp_x'
formulation = penalty
[../]
[./rebar_y3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'disp_y'
primary_variable = 'disp_y'
formulation = penalty
[../]
[./rebar_z3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'disp_z'
primary_variable = 'disp_z'
formulation = penalty
[../]
[./rebar_T3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'T'
primary_variable = 'T'
formulation = penalty
penalty = 1e6
[../]
[]
[Kernels]
[./T_td]
type = ConcreteThermalTimeIntegration
variable = T
block = 1
extra_vector_tags = 'ref'
[../]
[./T_diff]
type = ConcreteThermalConduction
variable = T
block = 1
extra_vector_tags = 'ref'
[../]
[./T_conv]
type = ConcreteThermalConvection
variable = T
relative_humidity = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./T_adsorption]
type = ConcreteLatentHeat
variable = T
H = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./rh_td]
type = ConcreteMoistureTimeIntegration
variable = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./rh_diff]
type = ConcreteMoistureDiffusion
variable = rh
temperature = T
block = 1
extra_vector_tags = 'ref'
[../]
[./heat_dt]
type = TimeDerivative
variable = T
block = '2 3'
extra_vector_tags = 'ref'
[../]
[./heat_conduction]
type = HeatConduction
variable = T
diffusion_coefficient = 53.0
block = '2 3'
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./ASR_ex]
type = MaterialRealAux
variable = ASR_ex
block = 1
property = ASR_extent
execute_on = 'timestep_end'
[../]
[./ASR_vstrain]
type = MaterialRealAux
block = 1
variable = ASR_vstrain
property = ASR_volumetric_strain
execute_on = 'timestep_end'
[../]
[./ASR_strain_xx]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./ASR_strain_yy]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./ASR_strain_zz]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./ASR_strain_xy]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_xy
index_i = 0
index_j = 1
execute_on = 'timestep_end'
[../]
[./ASR_strain_yz]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_yz
index_i = 1
index_j = 2
execute_on = 'timestep_end'
[../]
[./ASR_strain_zx]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_zx
index_i = 0
index_j = 2
execute_on = 'timestep_end'
[../]
[./thermal_strain_xx]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./thermal_strain_yy]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./thermal_strain_zz]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./volumetric_strain]
type = RankTwoScalarAux
scalar_type = VolumetricStrain
rank_two_tensor = total_strain
variable = volumetric_strain
block = 1
[../]
[./k]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'timestep_end'
block = 1
[../]
[./capacity]
type = MaterialRealAux
variable = thermal_capacity
property = thermal_capacity
execute_on = 'timestep_end'
block = 1
[../]
[./rh_capacity]
type = MaterialRealAux
variable = moisture_capacity
property = moisture_capacity
execute_on = 'timestep_end'
block = 1
[../]
[./rh_duff]
type = MaterialRealAux
variable = humidity_diffusivity
property = humidity_diffusivity
execute_on = 'timestep_end'
block = 1
[../]
[./wc_duff]
type = MaterialRealAux
variable = water_content
property = moisture_content
execute_on = 'timestep_end'
block = 1
[../]
[./hydrw_duff]
type = MaterialRealAux
variable = water_hydrated
property = hydrated_water
execute_on = 'timestep_end'
block = 1
[../]
[damage_index]
type = MaterialRealAux
block = 1
variable = damage_index
property = damage_index
execute_on = timestep_end
[]
[./areax]
type = ConstantAux
block = '2'
variable = area
value = 1.33e-4
execute_on = 'initial timestep_begin'
[../]
[./areaz]
type = ConstantAux
block = '3'
variable = area
value = 1.33e-4
execute_on = 'initial timestep_begin'
[../]
[./axial_stress]
type = MaterialRealAux
block = '2 3'
variable = axial_stress
property = axial_stress
[../]
[]
[Functions]
[./ramp_temp]
type = PiecewiseLinear
data_file = temperature_history.csv
format = columns
[../]
[./ramp_humidity]
type = PiecewiseLinear
data_file = humidity_history.csv
format = columns
[../]
[]
[Materials]
[./concrete]
type = ConcreteThermalMoisture
block = 1
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
thermal_conductivity_model = KODUR-2004
thermal_capacity_model = KODUR-2004
aggregate_type = Siliceous #options: Siliceous Carbonate
ref_density_of_concrete = 2231.0 # in kg/m^3
ref_specific_heat_of_concrete = 1100.0 # in J/(Kg.0C)
ref_thermal_conductivity_of_concrete = 3 # in W/(m.0C)
# setup moisture capacity and humidity diffusivity models
aggregate_pore_type = dense #options: dense porous
aggregate_mass = 1877.0 #mass of aggregate (kg) per m^3 of concrete
cement_type = 1 #options: 1 2 3 4
cement_mass = 354.0 #mass of cement (kg) per m^3 of concrete
water_to_cement_ratio = 0.5
concrete_cure_time = 28.0 #curing time in (days)
# options available for humidity diffusivity:
moisture_diffusivity_model = Bazant #options: Bazant Mensi
D1 = 3.0e-8
coupled_moisture_diffusivity_factor = 1.0e-2 # factor for mositure diffusivity due to heat
# coupled nonlinear variables
relative_humidity = rh
temperature = T
[../]
[./creep]
type = LinearViscoelasticStressUpdate
block = 1
[../]
[./logcreep]
type = ConcreteLogarithmicCreepModel
block = 1
poissons_ratio = 0.22
youngs_modulus = 37.3e9
recoverable_youngs_modulus = 37.3e9
recoverable_viscosity = 1
long_term_viscosity = 1
long_term_characteristic_time = 1
humidity = rh
temperature = T
activation_temperature = 23.0
[../]
[ASR_expansion]
type = ConcreteASREigenstrain
block = 1
expansion_type = Anisotropic
reference_temperature = 35.0
temperature_unit = Celsius
max_volumetric_expansion = 2.2e-2
characteristic_time = 18.9
latency_time = 18.0
characteristic_activation_energy = 5400.0
latency_activation_energy = 9400.0
stress_latency_factor = 1.0
compressive_strength = 31.0e6
compressive_stress_exponent = 0.0
expansion_stress_limit = 8.0e6
tensile_strength = 3.2e6
tensile_retention_factor = 1.0
tensile_absorption_factor = 1.0
ASR_dependent_tensile_strength = false
residual_tensile_strength_fraction = 1.0
temperature = T
relative_humidity = rh
rh_exponent = 1.0
eigenstrain_name = asr_expansion
absolute_tolerance = 1e-10
output_iteration_info_on_error = true
[]
[thermal_strain_concrete]
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = T
thermal_expansion_coeff = 8.0e-6
stress_free_temperature = 10.6
eigenstrain_name = thermal_expansion
[]
[ASR_damage_concrete]
type = ConcreteASRMicrocrackingDamage
residual_youngs_modulus_fraction = 0.1
block = 1
[]
[./stress]
type = ComputeMultipleInelasticStress
block = 1
inelastic_models = 'creep'
damage_model = ASR_damage_concrete
[../]
[truss]
type = LinearElasticTruss
block = '2 3'
youngs_modulus = 2e11
temperature = T
thermal_expansion_coeff = 11.3e-6
temperature_ref = 10.6
[]
[]
[UserObjects]
[./visco_update]
type = LinearViscoelasticityManager
block = 1
viscoelastic_model = logcreep
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = '2000 2005'
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = '2000 2001'
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = '2000 2005'
value = 0.0
[../]
[./T]
type = FunctionDirichletBC
variable = T
boundary = '101 102 103 104 105 106'
function = ramp_temp
[../]
[./rh]
type = FunctionDirichletBC
variable = rh
boundary = '101 102 103 104 105 106'
function = ramp_humidity
[../]
[]
[Postprocessors]
[./nelem]
type = NumElems
[../]
[./ndof]
type = NumDOFs
[../]
[./ASR_strain]
type = ElementAverageValue
variable = ASR_vstrain
block = 1
[../]
[./ASR_strain_xx]
type = ElementAverageValue
variable = ASR_strain_xx
block = 1
[../]
[./ASR_strain_yy]
type = ElementAverageValue
variable = ASR_strain_yy
block = 1
[../]
[./ASR_strain_zz]
type = ElementAverageValue
variable = ASR_strain_zz
block = 1
[../]
[ASR_ext]
type = ElementAverageValue
variable = ASR_ex
block = 1
[]
[./vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 1
[../]
[./vstrain]
type = ElementAverageValue
variable = volumetric_strain
block = 1
[../]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 1
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
block = 1
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
block = 1
[../]
[./temp]
type = ElementAverageValue
variable = T
block = 1
[../]
[./humidity]
type = ElementAverageValue
variable = rh
block = 1
[../]
[./thermal_strain_xx]
type = ElementAverageValue
variable = thermal_strain_xx
block = 1
[../]
[./thermal_strain_yy]
type = ElementAverageValue
variable = thermal_strain_yy
block = 1
[../]
[./thermal_strain_zz]
type = ElementAverageValue
variable = thermal_strain_zz
block = 1
[../]
[./disp_x_101]
type = SideAverageValue
variable = disp_x
boundary = 101
[../]
[./disp_x_102]
type = SideAverageValue
variable = disp_x
boundary = 102
[../]
[./disp_x_103]
type = SideAverageValue
variable = disp_x
boundary = 103
[../]
[./disp_x_104]
type = SideAverageValue
variable = disp_x
boundary = 104
[../]
[./disp_x_105]
type = SideAverageValue
variable = disp_x
boundary = 105
[../]
[./disp_x_106]
type = SideAverageValue
variable = disp_x
boundary = 106
[../]
[./disp_y_101]
type = SideAverageValue
variable = disp_y
boundary = 101
[../]
[./disp_y_102]
type = SideAverageValue
variable = disp_y
boundary = 102
[../]
[./disp_y_103]
type = SideAverageValue
variable = disp_y
boundary = 103
[../]
[./disp_y_104]
type = SideAverageValue
variable = disp_y
boundary = 104
[../]
[./disp_y_105]
type = SideAverageValue
variable = disp_y
boundary = 105
[../]
[./disp_y_106]
type = SideAverageValue
variable = disp_y
boundary = 106
[../]
[./disp_z_101]
type = SideAverageValue
variable = disp_z
boundary = 101
[../]
[./disp_z_102]
type = SideAverageValue
variable = disp_z
boundary = 102
[../]
[./disp_z_103]
type = SideAverageValue
variable = disp_z
boundary = 103
[../]
[./disp_z_104]
type = SideAverageValue
variable = disp_z
boundary = 104
[../]
[./disp_z_105]
type = SideAverageValue
variable = disp_z
boundary = 105
[../]
[./disp_z_106]
type = SideAverageValue
variable = disp_z
boundary = 106
[../]
[disp_x_p1_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.08 -0.08'
[../]
[disp_x_p1_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.08 -0.08'
[../]
[disp_x_p2_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.08 0.08'
[../]
[disp_x_p2_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.08 0.08'
[../]
[disp_x_p3_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 -0.08'
[../]
[disp_x_p3_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 -0.08'
[../]
[disp_x_p4_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 0.08'
[../]
[disp_x_p4_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 0.08'
[../]
[disp_x_p5_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 -0.235'
[../]
[disp_x_p5_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 -0.235'
[../]
[disp_x_p6_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 0.235'
[../]
[disp_x_p6_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 0.235'
[../]
[disp_y_p1_pos]
type = PointValue
variable = disp_y
point = '-0.08 0.24 -0.08'
[../]
[disp_y_p1_neg]
type = PointValue
variable = disp_y
point = '-0.08 -0.24 -0.08'
[../]
[disp_y_p2_pos]
type = PointValue
variable = disp_y
point = '-0.08 0.24 0.08'
[../]
[disp_y_p2_neg]
type = PointValue
variable = disp_y
point = '-0.08 -0.24 0.08'
[../]
[disp_y_p3_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 -0.08'
[../]
[disp_y_p3_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 -0.08'
[../]
[disp_y_p4_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 0.08'
[../]
[disp_y_p4_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 0.08'
[../]
[disp_y_p5_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 -0.235'
[../]
[disp_y_p5_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 -0.235'
[../]
[disp_y_p6_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 0.235'
[../]
[disp_y_p6_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 0.235'
[../]
[disp_y_p7_pos]
type = PointValue
variable = disp_y
point = '-0.235 0.24 0.08'
[../]
[disp_y_p7_neg]
type = PointValue
variable = disp_y
point = '-0.235 -0.24 0.08'
[../]
[disp_y_p8_pos]
type = PointValue
variable = disp_y
point = '0.235 0.24 0.08'
[../]
[disp_y_p8_neg]
type = PointValue
variable = disp_y
point = '0.235 -0.24 0.08'
[../]
[disp_z_p1_pos]
type = PointValue
variable = disp_z
point = '-0.08 -0.08 0.24'
[../]
[disp_z_p1_neg]
type = PointValue
variable = disp_z
point = '-0.08 -0.08 -0.24'
[../]
[disp_z_p2_pos]
type = PointValue
variable = disp_z
point = '-0.08 0.08 0.24'
[../]
[disp_z_p2_neg]
type = PointValue
variable = disp_z
point = '-0.08 0.08 -0.24'
[../]
[disp_z_p3_pos]
type = PointValue
variable = disp_z
point = '0.08 -0.08 0.24'
[../]
[disp_z_p3_neg]
type = PointValue
variable = disp_z
point = '0.08 -0.08 -0.24'
[../]
[disp_z_p4_pos]
type = PointValue
variable = disp_z
point = '0.08 0.08 0.24'
[../]
[disp_z_p4_neg]
type = PointValue
variable = disp_z
point = '0.08 0.08 -0.24'
[../]
[disp_z_p5_pos]
type = PointValue
variable = disp_z
point = '0.235 0.08 0.24'
[../]
[disp_z_p5_neg]
type = PointValue
variable = disp_z
point = '0.235 0.08 -0.24'
[../]
[disp_z_p6_pos]
type = PointValue
variable = disp_z
point = '-0.235 0.08 0.24'
[../]
[disp_z_p6_neg]
type = PointValue
variable = disp_z
point = '-0.235 0.08 -0.24'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
start_time = 2419200
dt = 1000000
automatic_scaling = true
end_time = 38880000
l_max_its = 20
nl_max_its = 10
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
[]
[Outputs]
perf_graph = true
csv = true
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/asr_validation/wald2017b/analysis/A1-biaxial.i) [GlobalParams]
displacements = 'disp_x disp_y disp_z'
penalty = 1e12
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y disp_z'
[]
[Mesh]
file = A1-triaxial.e
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 10.6
[../]
[./rh]
order = FIRST
family = LAGRANGE
initial_condition = 0.8
block = 1
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[./resid_z]
[../]
[./ASR_ex]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_vstrain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_xx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_yy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_zz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_xy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_yz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_zx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_xx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_yy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_zz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_conductivity]
order = CONSTANT
family = Monomial
[../]
[./thermal_capacity]
order = CONSTANT
family = Monomial
[../]
[./moisture_capacity]
order = CONSTANT
family = Monomial
[../]
[./humidity_diffusivity]
order = CONSTANT
family = Monomial
[../]
[./water_content]
order = CONSTANT
family = Monomial
[../]
[./water_hydrated]
order = CONSTANT
family = Monomial
[../]
[damage_index]
order = CONSTANT
family = MONOMIAL
[]
[./area]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./concrete]
block = 1
strain = FINITE
add_variables = true
eigenstrain_names = 'asr_expansion thermal_expansion'
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx vonmises_stress hydrostatic_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[../]
[]
[Modules/TensorMechanics/LineElementMaster]
[./Reinforcement_block]
block = '2 3 4'
truss = true
area = area
displacements = 'disp_x disp_y disp_z'
#Note: Intentially not including this here to have it give a nonzero
# displacement reference residual since it's an unrestrained problem
#extra_vector_tags = 'ref'
[../]
[]
[Constraints]
[./rebar_x2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_x'
primary_variable = 'disp_x'
formulation = penalty
[../]
[./rebar_y2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_y'
primary_variable = 'disp_y'
formulation = penalty
[../]
[./rebar_z2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_z'
primary_variable = 'disp_z'
formulation = penalty
[../]
[./rebar_T2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'T'
primary_variable = 'T'
formulation = penalty
penalty = 1e6
[../]
[./rebar_x3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'disp_x'
primary_variable = 'disp_x'
formulation = penalty
[../]
[./rebar_y3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'disp_y'
primary_variable = 'disp_y'
formulation = penalty
[../]
[./rebar_z3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'disp_z'
primary_variable = 'disp_z'
formulation = penalty
[../]
[./rebar_T3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'T'
primary_variable = 'T'
formulation = penalty
penalty = 1e6
[../]
[./rebar_x4]
type = EqualValueEmbeddedConstraint
secondary = 4
primary = 1
variable = 'disp_x'
primary_variable = 'disp_x'
formulation = penalty
[../]
[./rebar_y4]
type = EqualValueEmbeddedConstraint
secondary = 4
primary = 1
variable = 'disp_y'
primary_variable = 'disp_y'
formulation = penalty
[../]
[./rebar_z4]
type = EqualValueEmbeddedConstraint
secondary = 4
primary = 1
variable = 'disp_z'
primary_variable = 'disp_z'
formulation = penalty
[../]
[./rebar_T4]
type = EqualValueEmbeddedConstraint
secondary = 4
primary = 1
variable = 'T'
primary_variable = 'T'
formulation = penalty
penalty = 1e6
[../]
[]
[Kernels]
[./T_td]
type = ConcreteThermalTimeIntegration
variable = T
block = 1
extra_vector_tags = 'ref'
[../]
[./T_diff]
type = ConcreteThermalConduction
variable = T
block = 1
extra_vector_tags = 'ref'
[../]
[./T_conv]
type = ConcreteThermalConvection
variable = T
relative_humidity = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./T_adsorption]
type = ConcreteLatentHeat
variable = T
H = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./rh_td]
type = ConcreteMoistureTimeIntegration
variable = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./rh_diff]
type = ConcreteMoistureDiffusion
variable = rh
temperature = T
block = 1
extra_vector_tags = 'ref'
[../]
[./heat_dt]
type = TimeDerivative
variable = T
block = '2 3 4'
extra_vector_tags = 'ref'
[../]
[./heat_conduction]
type = HeatConduction
variable = T
diffusion_coefficient = 53.0
block = '2 3 4'
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./ASR_ex]
type = MaterialRealAux
variable = ASR_ex
block = 1
property = ASR_extent
execute_on = 'timestep_end'
[../]
[./ASR_vstrain]
type = MaterialRealAux
block = 1
variable = ASR_vstrain
property = ASR_volumetric_strain
execute_on = 'timestep_end'
[../]
[./ASR_strain_xx]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./ASR_strain_yy]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./ASR_strain_zz]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./ASR_strain_xy]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_xy
index_i = 0
index_j = 1
execute_on = 'timestep_end'
[../]
[./ASR_strain_yz]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_yz
index_i = 1
index_j = 2
execute_on = 'timestep_end'
[../]
[./ASR_strain_zx]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_zx
index_i = 0
index_j = 2
execute_on = 'timestep_end'
[../]
[./thermal_strain_xx]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./thermal_strain_yy]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./thermal_strain_zz]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./volumetric_strain]
type = RankTwoScalarAux
scalar_type = VolumetricStrain
rank_two_tensor = total_strain
variable = volumetric_strain
block = 1
[../]
[./k]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'timestep_end'
block = 1
[../]
[./capacity]
type = MaterialRealAux
variable = thermal_capacity
property = thermal_capacity
execute_on = 'timestep_end'
block = 1
[../]
[./rh_capacity]
type = MaterialRealAux
variable = moisture_capacity
property = moisture_capacity
execute_on = 'timestep_end'
block = 1
[../]
[./rh_duff]
type = MaterialRealAux
variable = humidity_diffusivity
property = humidity_diffusivity
execute_on = 'timestep_end'
block = 1
[../]
[./wc_duff]
type = MaterialRealAux
variable = water_content
property = moisture_content
execute_on = 'timestep_end'
block = 1
[../]
[./hydrw_duff]
type = MaterialRealAux
variable = water_hydrated
property = hydrated_water
execute_on = 'timestep_end'
block = 1
[../]
[damage_index]
type = MaterialRealAux
block = 1
variable = damage_index
property = damage_index
execute_on = timestep_end
[]
[./areax]
type = ConstantAux
block = '2'
variable = area
value = 1.33e-4
execute_on = 'initial timestep_begin'
[../]
[./areaz]
type = ConstantAux
block = '3'
variable = area
value = 1.33e-4
execute_on = 'initial timestep_begin'
[../]
[./areay]
type = ConstantAux
block = '4'
variable = area
value = 1.33e-4
execute_on = 'initial timestep_begin'
[../]
[./axial_stress]
type = MaterialRealAux
block = '2 3 4'
variable = axial_stress
property = axial_stress
[../]
[]
[Functions]
[./ramp_temp]
type = PiecewiseLinear
data_file = temperature_history.csv
format = columns
[../]
[./ramp_humidity]
type = PiecewiseLinear
data_file = humidity_history.csv
format = columns
[../]
[]
[Materials]
[./concrete]
type = ConcreteThermalMoisture
block = 1
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
thermal_conductivity_model = KODUR-2004
thermal_capacity_model = KODUR-2004
aggregate_type = Siliceous #options: Siliceous Carbonate
ref_density_of_concrete = 2231.0 # in kg/m^3
ref_specific_heat_of_concrete = 1100.0 # in J/(Kg.0C)
ref_thermal_conductivity_of_concrete = 3 # in W/(m.0C)
# setup moisture capacity and humidity diffusivity models
aggregate_pore_type = dense #options: dense porous
aggregate_mass = 1877.0 #mass of aggregate (kg) per m^3 of concrete
cement_type = 1 #options: 1 2 3 4
cement_mass = 354.0 #mass of cement (kg) per m^3 of concrete
water_to_cement_ratio = 0.5
concrete_cure_time = 28.0 #curing time in (days)
# options available for humidity diffusivity:
moisture_diffusivity_model = Bazant #options: Bazant Mensi
D1 = 3.0e-8
coupled_moisture_diffusivity_factor = 1.0e-2 # factor for mositure diffusivity due to heat
# coupled nonlinear variables
relative_humidity = rh
temperature = T
[../]
[./creep]
type = LinearViscoelasticStressUpdate
block = 1
[../]
[./logcreep]
type = ConcreteLogarithmicCreepModel
block = 1
poissons_ratio = 0.22
youngs_modulus = 37.3e9
recoverable_youngs_modulus = 37.3e9
recoverable_viscosity = 1
long_term_viscosity = 1
long_term_characteristic_time = 1
humidity = rh
temperature = T
activation_temperature = 23.0
[../]
[ASR_expansion]
type = ConcreteASREigenstrain
block = 1
expansion_type = Anisotropic
reference_temperature = 35.0
temperature_unit = Celsius
max_volumetric_expansion = 2.2e-2
characteristic_time = 18.9
latency_time = 18.0
characteristic_activation_energy = 5400.0
latency_activation_energy = 9400.0
stress_latency_factor = 1.0
compressive_strength = 31.0e6
compressive_stress_exponent = 0.0
expansion_stress_limit = 8.0e6
tensile_strength = 3.2e6
tensile_retention_factor = 1.0
tensile_absorption_factor = 1.0
ASR_dependent_tensile_strength = false
residual_tensile_strength_fraction = 1.0
temperature = T
relative_humidity = rh
rh_exponent = 1.0
eigenstrain_name = asr_expansion
absolute_tolerance = 1e-10
output_iteration_info_on_error = true
[]
[thermal_strain_concrete]
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = T
thermal_expansion_coeff = 8.0e-6
stress_free_temperature = 10.6
eigenstrain_name = thermal_expansion
[]
[ASR_damage_concrete]
type = ConcreteASRMicrocrackingDamage
residual_youngs_modulus_fraction = 0.1
block = 1
[]
[./stress]
type = ComputeMultipleInelasticStress
block = 1
inelastic_models = 'creep'
damage_model = ASR_damage_concrete
[../]
[truss]
type = LinearElasticTruss
block = '2 3 4'
youngs_modulus = 2e11
temperature = T
thermal_expansion_coeff = 11.3e-6
temperature_ref = 10.6
[]
[]
[UserObjects]
[./visco_update]
type = LinearViscoelasticityManager
block = 1
viscoelastic_model = logcreep
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = '2000 2005'
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = '2000 2001'
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = '2000 2005'
value = 0.0
[../]
[./T]
type = FunctionDirichletBC
variable = T
boundary = '101 102 103 104 105 106'
function = ramp_temp
[../]
[./rh]
type = FunctionDirichletBC
variable = rh
boundary = '101 102 103 104 105 106'
function = ramp_humidity
[../]
[]
[Postprocessors]
[./nelem]
type = NumElems
[../]
[./ndof]
type = NumDOFs
[../]
[./ASR_strain]
type = ElementAverageValue
variable = ASR_vstrain
block = 1
[../]
[./ASR_strain_xx]
type = ElementAverageValue
variable = ASR_strain_xx
block = 1
[../]
[./ASR_strain_yy]
type = ElementAverageValue
variable = ASR_strain_yy
block = 1
[../]
[./ASR_strain_zz]
type = ElementAverageValue
variable = ASR_strain_zz
block = 1
[../]
[ASR_ext]
type = ElementAverageValue
variable = ASR_ex
block = 1
[]
[./vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 1
[../]
[./vstrain]
type = ElementAverageValue
variable = volumetric_strain
block = 1
[../]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 1
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
block = 1
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
block = 1
[../]
[./temp]
type = ElementAverageValue
variable = T
block = 1
[../]
[./humidity]
type = ElementAverageValue
variable = rh
block = 1
[../]
[./thermal_strain_xx]
type = ElementAverageValue
variable = thermal_strain_xx
block = 1
[../]
[./thermal_strain_yy]
type = ElementAverageValue
variable = thermal_strain_yy
block = 1
[../]
[./thermal_strain_zz]
type = ElementAverageValue
variable = thermal_strain_zz
block = 1
[../]
[./disp_x_101]
type = SideAverageValue
variable = disp_x
boundary = 101
[../]
[./disp_x_102]
type = SideAverageValue
variable = disp_x
boundary = 102
[../]
[./disp_x_103]
type = SideAverageValue
variable = disp_x
boundary = 103
[../]
[./disp_x_104]
type = SideAverageValue
variable = disp_x
boundary = 104
[../]
[./disp_x_105]
type = SideAverageValue
variable = disp_x
boundary = 105
[../]
[./disp_x_106]
type = SideAverageValue
variable = disp_x
boundary = 106
[../]
[./disp_y_101]
type = SideAverageValue
variable = disp_y
boundary = 101
[../]
[./disp_y_102]
type = SideAverageValue
variable = disp_y
boundary = 102
[../]
[./disp_y_103]
type = SideAverageValue
variable = disp_y
boundary = 103
[../]
[./disp_y_104]
type = SideAverageValue
variable = disp_y
boundary = 104
[../]
[./disp_y_105]
type = SideAverageValue
variable = disp_y
boundary = 105
[../]
[./disp_y_106]
type = SideAverageValue
variable = disp_y
boundary = 106
[../]
[./disp_z_101]
type = SideAverageValue
variable = disp_z
boundary = 101
[../]
[./disp_z_102]
type = SideAverageValue
variable = disp_z
boundary = 102
[../]
[./disp_z_103]
type = SideAverageValue
variable = disp_z
boundary = 103
[../]
[./disp_z_104]
type = SideAverageValue
variable = disp_z
boundary = 104
[../]
[./disp_z_105]
type = SideAverageValue
variable = disp_z
boundary = 105
[../]
[./disp_z_106]
type = SideAverageValue
variable = disp_z
boundary = 106
[../]
[disp_x_p1_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.08 -0.08'
[../]
[disp_x_p1_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.08 -0.08'
[../]
[disp_x_p2_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.08 0.08'
[../]
[disp_x_p2_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.08 0.08'
[../]
[disp_x_p3_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 -0.08'
[../]
[disp_x_p3_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 -0.08'
[../]
[disp_x_p4_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 0.08'
[../]
[disp_x_p4_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 0.08'
[../]
[disp_x_p5_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 -0.235'
[../]
[disp_x_p5_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 -0.235'
[../]
[disp_x_p6_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 0.235'
[../]
[disp_x_p6_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 0.235'
[../]
[disp_y_p1_pos]
type = PointValue
variable = disp_y
point = '-0.08 0.24 -0.08'
[../]
[disp_y_p1_neg]
type = PointValue
variable = disp_y
point = '-0.08 -0.24 -0.08'
[../]
[disp_y_p2_pos]
type = PointValue
variable = disp_y
point = '-0.08 0.24 0.08'
[../]
[disp_y_p2_neg]
type = PointValue
variable = disp_y
point = '-0.08 -0.24 0.08'
[../]
[disp_y_p3_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 -0.08'
[../]
[disp_y_p3_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 -0.08'
[../]
[disp_y_p4_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 0.08'
[../]
[disp_y_p4_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 0.08'
[../]
[disp_y_p5_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 -0.235'
[../]
[disp_y_p5_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 -0.235'
[../]
[disp_y_p6_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 0.235'
[../]
[disp_y_p6_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 0.235'
[../]
[disp_y_p7_pos]
type = PointValue
variable = disp_y
point = '-0.235 0.24 0.08'
[../]
[disp_y_p7_neg]
type = PointValue
variable = disp_y
point = '-0.235 -0.24 0.08'
[../]
[disp_y_p8_pos]
type = PointValue
variable = disp_y
point = '0.235 0.24 0.08'
[../]
[disp_y_p8_neg]
type = PointValue
variable = disp_y
point = '0.235 -0.24 0.08'
[../]
[disp_z_p1_pos]
type = PointValue
variable = disp_z
point = '-0.08 -0.08 0.24'
[../]
[disp_z_p1_neg]
type = PointValue
variable = disp_z
point = '-0.08 -0.08 -0.24'
[../]
[disp_z_p2_pos]
type = PointValue
variable = disp_z
point = '-0.08 0.08 0.24'
[../]
[disp_z_p2_neg]
type = PointValue
variable = disp_z
point = '-0.08 0.08 -0.24'
[../]
[disp_z_p3_pos]
type = PointValue
variable = disp_z
point = '0.08 -0.08 0.24'
[../]
[disp_z_p3_neg]
type = PointValue
variable = disp_z
point = '0.08 -0.08 -0.24'
[../]
[disp_z_p4_pos]
type = PointValue
variable = disp_z
point = '0.08 0.08 0.24'
[../]
[disp_z_p4_neg]
type = PointValue
variable = disp_z
point = '0.08 0.08 -0.24'
[../]
[disp_z_p5_pos]
type = PointValue
variable = disp_z
point = '0.235 0.08 0.24'
[../]
[disp_z_p5_neg]
type = PointValue
variable = disp_z
point = '0.235 0.08 -0.24'
[../]
[disp_z_p6_pos]
type = PointValue
variable = disp_z
point = '-0.235 0.08 0.24'
[../]
[disp_z_p6_neg]
type = PointValue
variable = disp_z
point = '-0.235 0.08 -0.24'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
start_time = 2419200
dt = 1000000
automatic_scaling = true
end_time = 38880000
l_max_its = 20
nl_max_its = 10
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
[]
[Outputs]
perf_graph = true
csv = true
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/asr_validation/wald2017b/analysis/A1-triaxial.i) [GlobalParams]
displacements = 'disp_x disp_y disp_z'
penalty = 1e12
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y disp_z'
[]
[Mesh]
file = A3-biaxial.e
[]
[Variables]
[./T]
order = FIRST
family = LAGRANGE
initial_condition = 10.6
[../]
[./rh]
order = FIRST
family = LAGRANGE
initial_condition = 0.8
block = 1
[../]
[]
[AuxVariables]
[./resid_x]
[../]
[./resid_y]
[../]
[./resid_z]
[../]
[./ASR_ex]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_vstrain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_xx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_yy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_zz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_xy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_yz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./ASR_strain_zx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./volumetric_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_xx]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_yy]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_strain_zz]
order = CONSTANT
family = MONOMIAL
block = 1
[../]
[./thermal_conductivity]
order = CONSTANT
family = Monomial
[../]
[./thermal_capacity]
order = CONSTANT
family = Monomial
[../]
[./moisture_capacity]
order = CONSTANT
family = Monomial
[../]
[./humidity_diffusivity]
order = CONSTANT
family = Monomial
[../]
[./water_content]
order = CONSTANT
family = Monomial
[../]
[./water_hydrated]
order = CONSTANT
family = Monomial
[../]
[damage_index]
order = CONSTANT
family = MONOMIAL
[]
[./area]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_stress]
order = CONSTANT
family = MONOMIAL
[../]
[./axial_strain]
order = CONSTANT
family = MONOMIAL
[../]
[]
[Modules/TensorMechanics/Master]
[./concrete]
block = 1
strain = FINITE
add_variables = true
eigenstrain_names = 'asr_expansion thermal_expansion'
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx vonmises_stress hydrostatic_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[../]
[]
[Modules/TensorMechanics/LineElementMaster]
[./Reinforcement_block]
block = '2 3'
truss = true
area = area
displacements = 'disp_x disp_y disp_z'
#Note: Intentially not including this here to have it give a nonzero
# displacement reference residual since it's an unrestrained problem
#extra_vector_tags = 'ref'
[../]
[]
[Constraints]
[./rebar_x2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_x'
primary_variable = 'disp_x'
formulation = penalty
[../]
[./rebar_y2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_y'
primary_variable = 'disp_y'
formulation = penalty
[../]
[./rebar_z2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'disp_z'
primary_variable = 'disp_z'
formulation = penalty
[../]
[./rebar_T2]
type = EqualValueEmbeddedConstraint
secondary = 2
primary = 1
variable = 'T'
primary_variable = 'T'
formulation = penalty
penalty = 1e6
[../]
[./rebar_x3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'disp_x'
primary_variable = 'disp_x'
formulation = penalty
[../]
[./rebar_y3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'disp_y'
primary_variable = 'disp_y'
formulation = penalty
[../]
[./rebar_z3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'disp_z'
primary_variable = 'disp_z'
formulation = penalty
[../]
[./rebar_T3]
type = EqualValueEmbeddedConstraint
secondary = 3
primary = 1
variable = 'T'
primary_variable = 'T'
formulation = penalty
penalty = 1e6
[../]
[]
[Kernels]
[./T_td]
type = ConcreteThermalTimeIntegration
variable = T
block = 1
extra_vector_tags = 'ref'
[../]
[./T_diff]
type = ConcreteThermalConduction
variable = T
block = 1
extra_vector_tags = 'ref'
[../]
[./T_conv]
type = ConcreteThermalConvection
variable = T
relative_humidity = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./T_adsorption]
type = ConcreteLatentHeat
variable = T
H = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./rh_td]
type = ConcreteMoistureTimeIntegration
variable = rh
block = 1
extra_vector_tags = 'ref'
[../]
[./rh_diff]
type = ConcreteMoistureDiffusion
variable = rh
temperature = T
block = 1
extra_vector_tags = 'ref'
[../]
[./heat_dt]
type = TimeDerivative
variable = T
block = '2 3'
extra_vector_tags = 'ref'
[../]
[./heat_conduction]
type = HeatConduction
variable = T
diffusion_coefficient = 53.0
block = '2 3'
extra_vector_tags = 'ref'
[../]
[]
[AuxKernels]
[./ASR_ex]
type = MaterialRealAux
variable = ASR_ex
block = 1
property = ASR_extent
execute_on = 'timestep_end'
[../]
[./ASR_vstrain]
type = MaterialRealAux
block = 1
variable = ASR_vstrain
property = ASR_volumetric_strain
execute_on = 'timestep_end'
[../]
[./ASR_strain_xx]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./ASR_strain_yy]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./ASR_strain_zz]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./ASR_strain_xy]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_xy
index_i = 0
index_j = 1
execute_on = 'timestep_end'
[../]
[./ASR_strain_yz]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_yz
index_i = 1
index_j = 2
execute_on = 'timestep_end'
[../]
[./ASR_strain_zx]
type = RankTwoAux
block = 1
rank_two_tensor = asr_expansion
variable = ASR_strain_zx
index_i = 0
index_j = 2
execute_on = 'timestep_end'
[../]
[./thermal_strain_xx]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_xx
index_i = 0
index_j = 0
execute_on = 'timestep_end'
[../]
[./thermal_strain_yy]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_yy
index_i = 1
index_j = 1
execute_on = 'timestep_end'
[../]
[./thermal_strain_zz]
type = RankTwoAux
block = 1
rank_two_tensor = thermal_expansion
variable = thermal_strain_zz
index_i = 2
index_j = 2
execute_on = 'timestep_end'
[../]
[./volumetric_strain]
type = RankTwoScalarAux
scalar_type = VolumetricStrain
rank_two_tensor = total_strain
variable = volumetric_strain
block = 1
[../]
[./k]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'timestep_end'
block = 1
[../]
[./capacity]
type = MaterialRealAux
variable = thermal_capacity
property = thermal_capacity
execute_on = 'timestep_end'
block = 1
[../]
[./rh_capacity]
type = MaterialRealAux
variable = moisture_capacity
property = moisture_capacity
execute_on = 'timestep_end'
block = 1
[../]
[./rh_duff]
type = MaterialRealAux
variable = humidity_diffusivity
property = humidity_diffusivity
execute_on = 'timestep_end'
block = 1
[../]
[./wc_duff]
type = MaterialRealAux
variable = water_content
property = moisture_content
execute_on = 'timestep_end'
block = 1
[../]
[./hydrw_duff]
type = MaterialRealAux
variable = water_hydrated
property = hydrated_water
execute_on = 'timestep_end'
block = 1
[../]
[damage_index]
type = MaterialRealAux
block = 1
variable = damage_index
property = damage_index
execute_on = timestep_end
[]
[./areax]
type = ConstantAux
block = '2'
variable = area
value = 1.33e-4
execute_on = 'initial timestep_begin'
[../]
[./areaz]
type = ConstantAux
block = '3'
variable = area
value = 2.84e-4
execute_on = 'initial timestep_begin'
[../]
[./axial_stress]
type = MaterialRealAux
block = '2 3'
variable = axial_stress
property = axial_stress
[../]
[]
[Functions]
[./ramp_temp]
type = PiecewiseLinear
data_file = temperature_history.csv
format = columns
[../]
[./ramp_humidity]
type = PiecewiseLinear
data_file = humidity_history.csv
format = columns
[../]
[]
[Materials]
[./concrete]
type = ConcreteThermalMoisture
block = 1
# setup thermal property models and parameters
# options available: CONSTANT ASCE-1992 KODUR-2004 EUROCODE-2004 KIM-2003
thermal_conductivity_model = KODUR-2004
thermal_capacity_model = KODUR-2004
aggregate_type = Siliceous #options: Siliceous Carbonate
ref_density_of_concrete = 2231.0 # in kg/m^3
ref_specific_heat_of_concrete = 1100.0 # in J/(Kg.0C)
ref_thermal_conductivity_of_concrete = 3 # in W/(m.0C)
# setup moisture capacity and humidity diffusivity models
aggregate_pore_type = dense #options: dense porous
aggregate_mass = 1877.0 #mass of aggregate (kg) per m^3 of concrete
cement_type = 1 #options: 1 2 3 4
cement_mass = 354.0 #mass of cement (kg) per m^3 of concrete
water_to_cement_ratio = 0.5
concrete_cure_time = 28.0 #curing time in (days)
# options available for humidity diffusivity:
moisture_diffusivity_model = Bazant #options: Bazant Mensi
D1 = 3.0e-8
coupled_moisture_diffusivity_factor = 1.0e-2 # factor for mositure diffusivity due to heat
# coupled nonlinear variables
relative_humidity = rh
temperature = T
[../]
[./creep]
type = LinearViscoelasticStressUpdate
block = 1
[../]
[./logcreep]
type = ConcreteLogarithmicCreepModel
block = 1
poissons_ratio = 0.22
youngs_modulus = 37.3e9
recoverable_youngs_modulus = 37.3e9
recoverable_viscosity = 1
long_term_viscosity = 1
long_term_characteristic_time = 1
humidity = rh
temperature = T
activation_temperature = 23.0
[../]
[ASR_expansion]
type = ConcreteASREigenstrain
block = 1
expansion_type = Anisotropic
reference_temperature = 35.0
temperature_unit = Celsius
max_volumetric_expansion = 2.2e-2
characteristic_time = 18.9
latency_time = 18.0
characteristic_activation_energy = 5400.0
latency_activation_energy = 9400.0
stress_latency_factor = 1.0
compressive_strength = 31.0e6
compressive_stress_exponent = 0.0
expansion_stress_limit = 8.0e6
tensile_strength = 3.2e6
tensile_retention_factor = 1.0
tensile_absorption_factor = 1.0
ASR_dependent_tensile_strength = false
residual_tensile_strength_fraction = 1.0
temperature = T
relative_humidity = rh
rh_exponent = 1.0
eigenstrain_name = asr_expansion
absolute_tolerance = 1e-10
output_iteration_info_on_error = true
[]
[thermal_strain_concrete]
type = ComputeThermalExpansionEigenstrain
block = 1
temperature = T
thermal_expansion_coeff = 8.0e-6
stress_free_temperature = 10.6
eigenstrain_name = thermal_expansion
[]
[ASR_damage_concrete]
type = ConcreteASRMicrocrackingDamage
residual_youngs_modulus_fraction = 0.1
block = 1
[]
[./stress]
type = ComputeMultipleInelasticStress
block = 1
inelastic_models = 'creep'
damage_model = ASR_damage_concrete
[../]
[truss]
type = LinearElasticTruss
block = '2 3'
youngs_modulus = 2e11
temperature = T
thermal_expansion_coeff = 11.3e-6
temperature_ref = 10.6
[]
[]
[UserObjects]
[./visco_update]
type = LinearViscoelasticityManager
block = 1
viscoelastic_model = logcreep
[../]
[]
[BCs]
[./left]
type = DirichletBC
variable = disp_x
boundary = '2000 2005'
value = 0.0
[../]
[./bottom]
type = DirichletBC
variable = disp_y
boundary = '2000 2001'
value = 0.0
[../]
[./back]
type = DirichletBC
variable = disp_z
boundary = '2000 2005'
value = 0.0
[../]
[./T]
type = FunctionDirichletBC
variable = T
boundary = '101 102 103 104 105 106'
function = ramp_temp
[../]
[./rh]
type = FunctionDirichletBC
variable = rh
boundary = '101 102 103 104 105 106'
function = ramp_humidity
[../]
[]
[Postprocessors]
[./nelem]
type = NumElems
[../]
[./ndof]
type = NumDOFs
[../]
[./ASR_strain]
type = ElementAverageValue
variable = ASR_vstrain
block = 1
[../]
[./ASR_strain_xx]
type = ElementAverageValue
variable = ASR_strain_xx
block = 1
[../]
[./ASR_strain_yy]
type = ElementAverageValue
variable = ASR_strain_yy
block = 1
[../]
[./ASR_strain_zz]
type = ElementAverageValue
variable = ASR_strain_zz
block = 1
[../]
[ASR_ext]
type = ElementAverageValue
variable = ASR_ex
block = 1
[]
[./vonmises]
type = ElementAverageValue
variable = vonmises_stress
block = 1
[../]
[./vstrain]
type = ElementAverageValue
variable = volumetric_strain
block = 1
[../]
[./strain_xx]
type = ElementAverageValue
variable = strain_xx
block = 1
[../]
[./strain_yy]
type = ElementAverageValue
variable = strain_yy
block = 1
[../]
[./strain_zz]
type = ElementAverageValue
variable = strain_zz
block = 1
[../]
[./temp]
type = ElementAverageValue
variable = T
block = 1
[../]
[./humidity]
type = ElementAverageValue
variable = rh
block = 1
[../]
[./thermal_strain_xx]
type = ElementAverageValue
variable = thermal_strain_xx
block = 1
[../]
[./thermal_strain_yy]
type = ElementAverageValue
variable = thermal_strain_yy
block = 1
[../]
[./thermal_strain_zz]
type = ElementAverageValue
variable = thermal_strain_zz
block = 1
[../]
[./disp_x_101]
type = SideAverageValue
variable = disp_x
boundary = 101
[../]
[./disp_x_102]
type = SideAverageValue
variable = disp_x
boundary = 102
[../]
[./disp_x_103]
type = SideAverageValue
variable = disp_x
boundary = 103
[../]
[./disp_x_104]
type = SideAverageValue
variable = disp_x
boundary = 104
[../]
[./disp_x_105]
type = SideAverageValue
variable = disp_x
boundary = 105
[../]
[./disp_x_106]
type = SideAverageValue
variable = disp_x
boundary = 106
[../]
[./disp_y_101]
type = SideAverageValue
variable = disp_y
boundary = 101
[../]
[./disp_y_102]
type = SideAverageValue
variable = disp_y
boundary = 102
[../]
[./disp_y_103]
type = SideAverageValue
variable = disp_y
boundary = 103
[../]
[./disp_y_104]
type = SideAverageValue
variable = disp_y
boundary = 104
[../]
[./disp_y_105]
type = SideAverageValue
variable = disp_y
boundary = 105
[../]
[./disp_y_106]
type = SideAverageValue
variable = disp_y
boundary = 106
[../]
[./disp_z_101]
type = SideAverageValue
variable = disp_z
boundary = 101
[../]
[./disp_z_102]
type = SideAverageValue
variable = disp_z
boundary = 102
[../]
[./disp_z_103]
type = SideAverageValue
variable = disp_z
boundary = 103
[../]
[./disp_z_104]
type = SideAverageValue
variable = disp_z
boundary = 104
[../]
[./disp_z_105]
type = SideAverageValue
variable = disp_z
boundary = 105
[../]
[./disp_z_106]
type = SideAverageValue
variable = disp_z
boundary = 106
[../]
[disp_x_p1_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.08 -0.08'
[../]
[disp_x_p1_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.08 -0.08'
[../]
[disp_x_p2_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.08 0.08'
[../]
[disp_x_p2_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.08 0.08'
[../]
[disp_x_p3_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 -0.08'
[../]
[disp_x_p3_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 -0.08'
[../]
[disp_x_p4_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 0.08'
[../]
[disp_x_p4_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 0.08'
[../]
[disp_x_p5_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 -0.235'
[../]
[disp_x_p5_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 -0.235'
[../]
[disp_x_p6_pos]
type = PointValue
variable = disp_x
point = '0.24 0.08 0.235'
[../]
[disp_x_p6_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.08 0.235'
[../]
[disp_x_p7_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.08 -0.235'
[../]
[disp_x_p7_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.08 -0.235'
[../]
[disp_x_p8_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.08 0.235'
[../]
[disp_x_p8_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.08 0.235'
[../]
[disp_x_p9_pos]
type = PointValue
variable = disp_x
point = '0.24 0.235 -0.235'
[../]
[disp_x_p9_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.235 -0.235'
[../]
[disp_x_p10_pos]
type = PointValue
variable = disp_x
point = '0.24 0.235 0.235'
[../]
[disp_x_p10_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.235 0.235'
[../]
[disp_x_p11_pos]
type = PointValue
variable = disp_x
point = '0.24 0.235 -0.08'
[../]
[disp_x_p11_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.235 -0.08'
[../]
[disp_x_p12_pos]
type = PointValue
variable = disp_x
point = '0.24 0.235 0.08'
[../]
[disp_x_p12_neg]
type = PointValue
variable = disp_x
point = '-0.24 0.235 0.08'
[../]
[disp_x_p13_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.235 -0.235'
[../]
[disp_x_p13_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.235 -0.235'
[../]
[disp_x_p14_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.235 0.235'
[../]
[disp_x_p14_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.235 0.235'
[../]
[disp_x_p15_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.235 -0.08'
[../]
[disp_x_p15_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.235 -0.08'
[../]
[disp_x_p16_pos]
type = PointValue
variable = disp_x
point = '0.24 -0.235 0.08'
[../]
[disp_x_p16_neg]
type = PointValue
variable = disp_x
point = '-0.24 -0.235 0.08'
[../]
[disp_y_p1_pos]
type = PointValue
variable = disp_y
point = '-0.08 0.24 -0.08'
[../]
[disp_y_p1_neg]
type = PointValue
variable = disp_y
point = '-0.08 -0.24 -0.08'
[../]
[disp_y_p2_pos]
type = PointValue
variable = disp_y
point = '-0.08 0.24 0.08'
[../]
[disp_y_p2_neg]
type = PointValue
variable = disp_y
point = '-0.08 -0.24 0.08'
[../]
[disp_y_p3_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 -0.08'
[../]
[disp_y_p3_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 -0.08'
[../]
[disp_y_p4_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 0.08'
[../]
[disp_y_p4_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 0.08'
[../]
[disp_y_p5_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 -0.235'
[../]
[disp_y_p5_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 -0.235'
[../]
[disp_y_p6_pos]
type = PointValue
variable = disp_y
point = '0.08 0.24 0.235'
[../]
[disp_y_p6_neg]
type = PointValue
variable = disp_y
point = '0.08 -0.24 0.235'
[../]
[disp_y_p7_pos]
type = PointValue
variable = disp_y
point = '-0.235 0.24 0.08'
[../]
[disp_y_p7_neg]
type = PointValue
variable = disp_y
point = '-0.235 -0.24 0.08'
[../]
[disp_y_p8_pos]
type = PointValue
variable = disp_y
point = '0.235 0.24 0.08'
[../]
[disp_y_p8_neg]
type = PointValue
variable = disp_y
point = '0.235 -0.24 0.08'
[../]
[disp_y_p9_pos]
type = PointValue
variable = disp_y
point = '-0.08 0.24 -0.235'
[../]
[disp_y_p9_neg]
type = PointValue
variable = disp_y
point = '-0.08 -0.24 -0.235'
[../]
[disp_y_p10_pos]
type = PointValue
variable = disp_y
point = '-0.08 0.24 0.235'
[../]
[disp_y_p10_neg]
type = PointValue
variable = disp_y
point = '-0.08 -0.24 0.235'
[../]
[disp_y_p11_pos]
type = PointValue
variable = disp_y
point = '-0.235 0.24 -0.08'
[../]
[disp_y_p11_neg]
type = PointValue
variable = disp_y
point = '-0.235 -0.24 -0.08'
[../]
[disp_y_p12_pos]
type = PointValue
variable = disp_y
point = '0.235 0.24 -0.08'
[../]
[disp_y_p12_neg]
type = PointValue
variable = disp_y
point = '0.235 -0.24 -0.08'
[../]
[disp_z_p1_pos]
type = PointValue
variable = disp_z
point = '-0.08 -0.08 0.24'
[../]
[disp_z_p1_neg]
type = PointValue
variable = disp_z
point = '-0.08 -0.08 -0.24'
[../]
[disp_z_p2_pos]
type = PointValue
variable = disp_z
point = '-0.08 0.08 0.24'
[../]
[disp_z_p2_neg]
type = PointValue
variable = disp_z
point = '-0.08 0.08 -0.24'
[../]
[disp_z_p3_pos]
type = PointValue
variable = disp_z
point = '0.08 -0.08 0.24'
[../]
[disp_z_p3_neg]
type = PointValue
variable = disp_z
point = '0.08 -0.08 -0.24'
[../]
[disp_z_p4_pos]
type = PointValue
variable = disp_z
point = '0.08 0.08 0.24'
[../]
[disp_z_p4_neg]
type = PointValue
variable = disp_z
point = '0.08 0.08 -0.24'
[../]
[disp_z_p5_pos]
type = PointValue
variable = disp_z
point = '0.235 0.08 0.24'
[../]
[disp_z_p5_neg]
type = PointValue
variable = disp_z
point = '0.235 0.08 -0.24'
[../]
[disp_z_p6_pos]
type = PointValue
variable = disp_z
point = '-0.235 0.08 0.24'
[../]
[disp_z_p6_neg]
type = PointValue
variable = disp_z
point = '-0.235 0.08 -0.24'
[../]
[disp_z_p7_pos]
type = PointValue
variable = disp_z
point = '-0.235 -0.08 0.24'
[../]
[disp_z_p7_neg]
type = PointValue
variable = disp_z
point = '-0.235 -0.08 -0.24'
[../]
[disp_z_p8_pos]
type = PointValue
variable = disp_z
point = '0.235 -0.08 0.24'
[../]
[disp_z_p8_neg]
type = PointValue
variable = disp_z
point = '0.235 -0.08 -0.24'
[../]
[disp_z_p9_pos]
type = PointValue
variable = disp_z
point = '0.235 0.235 0.24'
[../]
[disp_z_p9_neg]
type = PointValue
variable = disp_z
point = '0.235 0.235 -0.24'
[../]
[disp_z_p10_pos]
type = PointValue
variable = disp_z
point = '-0.235 0.235 0.24'
[../]
[disp_z_p10_neg]
type = PointValue
variable = disp_z
point = '-0.235 0.235 -0.24'
[../]
[disp_z_p11_pos]
type = PointValue
variable = disp_z
point = '0.08 0.235 0.24'
[../]
[disp_z_p11_neg]
type = PointValue
variable = disp_z
point = '0.08 0.235 -0.24'
[../]
[disp_z_p12_pos]
type = PointValue
variable = disp_z
point = '-0.08 0.235 0.24'
[../]
[disp_z_p12_neg]
type = PointValue
variable = disp_z
point = '-0.08 0.235 -0.24'
[../]
[disp_z_p13_pos]
type = PointValue
variable = disp_z
point = '0.235 -0.235 0.24'
[../]
[disp_z_p13_neg]
type = PointValue
variable = disp_z
point = '0.235 -0.235 -0.24'
[../]
[disp_z_p14_pos]
type = PointValue
variable = disp_z
point = '-0.235 -0.235 0.24'
[../]
[disp_z_p14_neg]
type = PointValue
variable = disp_z
point = '-0.235 -0.235 -0.24'
[../]
[disp_z_p15_pos]
type = PointValue
variable = disp_z
point = '0.08 -0.235 0.24'
[../]
[disp_z_p15_neg]
type = PointValue
variable = disp_z
point = '0.08 -0.235 -0.24'
[../]
[disp_z_p16_pos]
type = PointValue
variable = disp_z
point = '-0.08 -0.235 0.24'
[../]
[disp_z_p16_neg]
type = PointValue
variable = disp_z
point = '-0.08 -0.235 -0.24'
[../]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
line_search = none
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
start_time = 14391759
dt = 1000000
automatic_scaling = true
end_time = 38880000
l_max_its = 20
nl_max_its = 10
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
[]
[Outputs]
perf_graph = true
csv = true
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/asr_validation/wald2017b/analysis/A3-biaxial.i)References
- Victor Saouma and Luigi Perotti.
Constitutive model for alkali-aggregate reactions.
ACI Materials Journal, 2006.
doi:10.14359/15853.[BibTeX]
- 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]
- David M. Wald, Morgan T. Allford, Oguzhan Bayrak, and Trevor D. Hrynyk.
Development and multiaxial distribution of expansions in reinforced concrete elements affected by alkali–silica reaction.
Structural Concrete, 18:914–928, 2017.[BibTeX]
- Wilma Wallau, Stephen Pirskawetz, Katja Voland, and Birgit Meng.
Continuous expansion measurement in accelerated concrete prism testing verifying asr-expansion models.
Materials and Structures, 2018.[BibTeX]