ConcreteLogarithmicCreepModel

Logarithmic viscoelastic model for cementitious materials.

Description

This material represents a logarithmic viscoelastic behavior for concrete and other cementitious materials.

The strain is decomposed into three components: an elastic strain , a recoverable viscoelastic strain and an irrecoverable creep strain . This corresponds to a Burgers type of material with an elastic spring, a Kelvin-Voigt module, and a dashpot placed in series.

The implementation uses the linear viscoelasticity framework defined in the MOOSE solid mechanics module.

Elastic Strain

The elastic strain is directly related to the stress with the usual Hooke's law, where is the fourth-order elasticity tensor of the material. In the current model, is calculated using the youngs_modulus and poissons_ratio parameters provided by the user.

Irrecoverable Creep Strain

This strain corresponds to the long-term visco-elastic strain of the material. It is linear with the logarithm of time, and cannot be recovered upon unloading. It is calculated using an aging dashpot: is the same elasticity tensor used for the calculation of the elastic strain.

is defined using the long_term_viscosity parameter, and controls the slope of the creep curve in the logarithmic space.

is defined using the long_term_characteristic_time parameter (default value of 1 day) and controls when the logarithmic behavior starts.

Recoverable Creep Strain

This strain corresponds to the short-term visco-elastic strain of the material, which can be partially recovered upon unloading. It is calculated using a single Kelvin-Voigt module, where is the fourth-order elasticity tensor of the spring and the characteristic time of the dashpot.

is calculated using the recoverable_youngs_modulus and recoverable_poissons_ratio parameters provided by the user, or using youngs_modulus and poissons_ratio parameters if they are undefined.

is defined using the recoverable_viscosity parameter, or with the long_term_characteristic_time parameter if it is undefined.

To disable the recoverable strain, the user must set the use_recovery parameter to FALSE.

Creep At Elevated Temperature

The model can include the effect on temperature on creep.

The creep strain rates are increased using an Arrhenius-type law, with the activation_temperature parameter controlling the increase of strain rate with temperature.

The model assumes that temperature and reference_temperature are in Celsius, while activation_temperature is in Kelvin.

Creep Under Low Relative Humidity

The model can include the effect of a constant low relative humidity on creep.

In this case, the irrecoverable creep strain rate is decreased linearly with the current relative humidity.

This effect is automatically activated when the user defines a humidity coupled variable.

Drying Creep

The model can include the effect of drying on the concrete creep, also known as the Pickett effect.

In this case, the characteristic time of the irrecoverable creep strain is modified to account for the increase of the irrecoverable creep strain rate on drying. The new characteristic time depends on , with the drying_creep_viscosity parameter provided by the user, and the rate of drying.

This effect if accounted in the simulation when the user defines a humidity coupled variable, and .

!!! The calculation of the drying creep requires either humidity to be computed on timestep_begin (for example using an AuxKernel or a MultiApp transfer), or the force_recompute_properties parameter to be set to TRUE.

Time Integration

The visco-elastic strains are integrated in time using a time-stepping procedure defined for linear viscoelastic materials in the tensor_mechanics module.

For the time-stepping scheme to be properly updated, a LinearViscoelasticityManager object must be included in the input file, and linked to the ConcreteLogarithmicCreepModel material

The ConcreteLogarithmicCreepModel is compatible with either the total small strain approximation, or either of the incremental strain approximation (incremental small strains or finite strains). It needs the following stress calculators:

StrainStressAdditional Materials
ComputeSmallStrainComputeLinearViscoelasticStressnone
ComputeIncrementalSmallStrainComputeMultipleInelasticStressLinearViscoelasticStressUpdate
ComputeFiniteStrainComputeMultipleInelasticStressLinearViscoelasticStressUpdate

The stress calculators use the actual elasticity tensor of the material , which is provided by the ConcreteLogarithmicCreepModel itself.

Input Parameters

  • long_term_viscosityViscosity corresponding to the long-term part of the deformation

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Viscosity corresponding to the long-term part of the deformation

  • poissons_ratioInitial poisson ratio of the material

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Initial poisson ratio of the material

  • youngs_modulusInitial elastic modulus of the material

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Initial elastic modulus of the material

Required Parameters

  • activation_temperatureActivation temperature for the creep [in Kelvin]

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Activation temperature for the creep [in Kelvin]

  • 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

  • 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

  • creep_strain_namecreep_strainname of the true creep strain of the material(computed by LinearViscoelasticStressUpdate orComputeLinearViscoelasticStress)

    Default:creep_strain

    C++ Type:std::string

    Controllable:No

    Description:name of the true creep strain of the material(computed by LinearViscoelasticStressUpdate orComputeLinearViscoelasticStress)

  • 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.

  • driving_eigenstrainname of the eigenstrain that increases the creep strains

    C++ Type:std::string

    Controllable:No

    Description:name of the eigenstrain that increases the creep strains

  • drying_creep_viscosityViscosity corresponding to the drying creep

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Viscosity corresponding to the drying creep

  • elastic_strain_nameelastic_strainname of the true elastic strain of the material

    Default:elastic_strain

    C++ Type:std::string

    Controllable:No

    Description:name of the true elastic strain of the material

  • force_recompute_propertiesFalseforces the computation of the viscoelastic properties at each step ofthe solver (default: false)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:forces the computation of the viscoelastic properties at each step ofthe solver (default: false)

  • humidityHumidity variable

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Humidity variable

  • integration_rulebackward-eulerdescribes how the viscoelastic behavior is integrated through time

    Default:backward-euler

    C++ Type:MooseEnum

    Options:backward-euler, mid-point, newmark, zienkiewicz

    Controllable:No

    Description:describes how the viscoelastic behavior is integrated through time

  • long_term_characteristic_time1Rate at which the long_term viscosity increases

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Rate at which the long_term viscosity increases

  • recoverable_poissons_ratioPoisson coefficient of the recoverable part of the deformation

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Poisson coefficient of the recoverable part of the deformation

  • recoverable_viscosityViscosity corresponding to the recoverable part of the deformation

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Viscosity corresponding to the recoverable part of the deformation

  • recoverable_youngs_modulusModulus corresponding to the recoverable part of the deformation

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Modulus corresponding to the recoverable part of the deformation

  • reference_temperature20Reference temperature [in Celsius]

    Default:20

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Reference temperature [in Celsius]

  • temperatureTemperature variable [in Celsius]

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Temperature variable [in Celsius]

  • theta1coefficient for Newmark integration rule (between 0 and 1)

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:coefficient for Newmark integration rule (between 0 and 1)

  • use_recoveryTrueEnables or disables creep recovery

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Enables or disables creep recovery

Optional Parameters

  • 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

  • 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

  • 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