ADComputeISoilStress

Compute total stress for the nonlinear material model I-Soil using a backbone curve and automatically computes the Jacobian.

Description

This material object computes the stress of an I-Soil element and automatically calculates the Jacobian for the element. Please refer to the MASTODON theory manual for more details.

Input Parameters

  • layer_idsVector of layer ids that map one-to-one to the rest of the soil layer parameters provided as input.

    C++ Type:std::vector<unsigned int>

    Controllable:No

    Description:Vector of layer ids that map one-to-one to the rest of the soil layer parameters provided as input.

  • layer_variableThe auxvariable providing the soil layer identification.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The auxvariable providing the soil layer identification.

  • poissons_ratioPoissons's ratio for the soil layers. The size of the vector should be same as the size of layer_ids.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Poissons's ratio for the soil layers. The size of the vector should be same as the size of layer_ids.

  • soil_typeThis parameter determines the type of backbone curve used. Use 'user_defined' for a user defined backbone curve provided in a data file, 'darendeli' if the backbone curve is to be determined using Darandeli equations, 'gqh' if the backbone curve is determined using the GQ/H approach and 'thin_layer' if the soil is being used to simulate a thin-layer friction interface.

    C++ Type:MooseEnum

    Options:user_defined, darendeli, gqh, thin_layer

    Controllable:No

    Description:This parameter determines the type of backbone curve used. Use 'user_defined' for a user defined backbone curve provided in a data file, 'darendeli' if the backbone curve is to be determined using Darandeli equations, 'gqh' if the backbone curve is determined using the GQ/H approach and 'thin_layer' if the soil is being used to simulate a thin-layer friction interface.

Required Parameters

  • a01The first coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1 = 0 and a2=0 for one soil layer, then the yield strength of that layer is independent of pressure.

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The first coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1 = 0 and a2=0 for one soil layer, then the yield strength of that layer is independent of pressure.

  • a10The second coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1 = 0, a2 = 0 for one soil layer, then the yield strength of that layer is independent of pressure.

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The second coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1 = 0, a2 = 0 for one soil layer, then the yield strength of that layer is independent of pressure.

  • a20The third coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1=0 and a2=0 for one soil layer, then the yield strength of that layer is independent of pressure.

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The third coefficient for pressure dependent yield strength calculation for all the soil layers. If a0 = 1, a1=0 and a2=0 for one soil layer, then the yield strength of that layer is independent of pressure.

  • b_exp0The exponential factors for pressure dependent stiffness for all the soil layers.

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The exponential factors for pressure dependent stiffness for all the soil layers.

  • backbone_curve_filesThe vector of file names of the files containing stress-strain backbone curves for the different soil layers. The size of the vector should be same as the size of layer_ids. All files should contain the same number of stress-strain points. Headers are not expected and it is assumed that the first column corresponds to strain values and the second column corresponds to the stress values. Additionally, two segments of a backbone curve cannot have the same slope.

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

    Controllable:No

    Description:The vector of file names of the files containing stress-strain backbone curves for the different soil layers. The size of the vector should be same as the size of layer_ids. All files should contain the same number of stress-strain points. Headers are not expected and it is assumed that the first column corresponds to strain values and the second column corresponds to the stress values. Additionally, two segments of a backbone curve cannot have the same slope.

  • 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

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

  • extra_stress_namesMaterial property names of rank two tensors to be added to the stress.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Material property names of rank two tensors to be added to the stress.

  • friction_coefficientFriction coefficients of the thin layers.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Friction coefficients of the thin layers.

  • hardening_ratioPost-yield hardening ratios of the layers.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Post-yield hardening ratios of the layers.

  • initial_shear_modulusThe initial shear modulus of the soil layers. This is required if Darandeli or GQ/H type backbone curves are used.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The initial shear modulus of the soil layers. This is required if Darandeli or GQ/H type backbone curves are used.

  • initial_soil_stressA list of functions describing the initial stress. There must be 9 functions, corresponding to the xx, yx, zx, xy, yy, zy, xz, yz, zz components respectively. If not provided, all components of the initial stress will be zero.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:A list of functions describing the initial stress. There must be 9 functions, corresponding to the xx, yx, zx, xy, yy, zy, xz, yz, zz components respectively. If not provided, all components of the initial stress will be zero.

  • number_of_pointsThe total number of data points in which the backbone curve needs to be split for all soil layers (required for Darandeli or GQ/H type backbone curves).

    C++ Type:unsigned int

    Controllable:No

    Description:The total number of data points in which the backbone curve needs to be split for all soil layers (required for Darandeli or GQ/H type backbone curves).

  • over_consolidation_ratioThe over consolidation ratio of the soil layers. Required for Darandeli backbone curve.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The over consolidation ratio of the soil layers. Required for Darandeli backbone curve.

  • p_refThe reference pressure at which the parameters are defined for each soil layer. If 'soil_type = darendeli', then the reference pressure must be input in kilopascals.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The reference pressure at which the parameters are defined for each soil layer. If 'soil_type = darendeli', then the reference pressure must be input in kilopascals.

  • plasticity_indexThe plasticity index of the soil layers. Required for Darandeli backbone curve.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The plasticity index of the soil layers. Required for Darandeli backbone curve.

  • pressure_dependencyFalseSet to true to turn on pressure dependent stiffness and yield strength calculation.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Set to true to turn on pressure dependent stiffness and yield strength calculation.

  • taumaxThe ultimate shear strength of the soil layers. Required for GQ/H model

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The ultimate shear strength of the soil layers. Required for GQ/H model

  • tension_pressure_cut_off-1The tension cut-off for all the soil layers. If the pressure becomes lower than this value, then the stiffness of the soil reduces to zero. A negative pressure indicates tension. The default value is -1.0 for all the soil layers.

    Default:-1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The tension cut-off for all the soil layers. If the pressure becomes lower than this value, then the stiffness of the soil reduces to zero. A negative pressure indicates tension. The default value is -1.0 for all the soil layers.

  • theta_1The curve fit coefficient for GQ/H modelfor each soil layer.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The curve fit coefficient for GQ/H modelfor each soil layer.

  • theta_2The curve fit coefficient for GQ/H modelfor each soil layer.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The curve fit coefficient for GQ/H modelfor each soil layer.

  • theta_3The curve fit coefficient for GQ/H modelfor each soil layer.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The curve fit coefficient for GQ/H modelfor each soil layer.

  • theta_4The curve fit coefficient for GQ/H modelfor each soil layer.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The curve fit coefficient for GQ/H modelfor each soil layer.

  • theta_5The curve fit coefficient for GQ/H modelfor each soil layer.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The curve fit coefficient for GQ/H modelfor each soil layer.

  • wave_speed_calculationTrueSet to false to turn off P and S wave speed calculation.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set to false to turn off P and S wave speed calculation.

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

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

Input Files