From fde8253c908294311784242cac6d72a994407395 Mon Sep 17 00:00:00 2001 From: tophmatthews Date: Thu, 18 Apr 2019 15:08:04 -0600 Subject: [PATCH] module test fixup (#13260) --- framework/include/bcs/ADIntegratedBC.h | 8 +- framework/include/bcs/ADNodalBC.h | 6 +- framework/include/bcs/PresetNodalBC.h | 2 +- framework/src/bcs/ADFunctionPresetBC.C | 2 +- framework/src/bcs/ADPresetNodalBC.C | 2 +- .../gold/power_law_creep_out.e | 1 + .../gold/power_law_creep_restart2_tm_out.e | 1 + .../gold/power_law_creep_smallstrain_out.e | 1 + .../ad_power_law_creep/power_law_creep.i | 146 +++++++++++++++++ .../power_law_creep_restart1.i | 144 +++++++++++++++++ .../power_law_creep_restart2.i | 145 +++++++++++++++++ .../power_law_creep_smallstrain.i | 149 ++++++++++++++++++ .../test/tests/ad_power_law_creep/tests | 58 +++++++ .../gold/power_law_creep_test_out.e | Bin 49336 -> 0 bytes .../gold/power_law_creep_test_tm_out.e | Bin 57764 -> 0 bytes .../materials/ADPowerLawCreepStressUpdate.h | 5 +- modules/tensor_mechanics/src/bcs/ADPressure.C | 2 +- .../materials/ADPowerLawCreepStressUpdate.C | 12 +- .../ad-finiteStrain_1DSphere_hollow.i | 4 +- .../1D_spherical/ad-smallStrain_1DSphere.i | 4 +- .../2D_geometries/ad-2D-RZ_centerline_VLC.i | 4 +- .../ad-2D-RZ_finiteStrain_resid.i | 6 +- .../ad-2D-RZ_finiteStrain_test.i | 4 +- .../test/tests/2D_geometries/ad-2D-RZ_test.i | 8 +- .../ad-3D-RZ_finiteStrain_test.i | 7 +- .../test/tests/2D_geometries/tests | 66 ++++---- .../test/tests/ad_plastic/power_law_creep.i | 2 +- .../ad-2D-axisymmetric_rz_test.i | 139 ++++++++++++++++ .../ad-bulk_modulus_shear_modulus_test.i | 89 +++++++++++ .../ad-lambda_shear_modulus_test.i | 89 +++++++++++ .../ad-youngs_modulus_poissons_ratio_test.i | 98 ++++++++++++ .../gold/ad-2D-axisymmetric_rz_test_out.e | 1 + .../ad-bulk_modulus_shear_modulus_test_out.e | 1 + .../gold/ad-lambda_shear_modulus_test_out.e | 1 + ...d-youngs_modulus_poissons_ratio_test_out.e | 1 + .../tests/isotropic_elasticity_tensor/tests | 70 ++++++++ 36 files changed, 1202 insertions(+), 76 deletions(-) create mode 120000 modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_out.e create mode 120000 modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_restart2_tm_out.e create mode 120000 modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_smallstrain_out.e create mode 100644 modules/combined/test/tests/ad_power_law_creep/power_law_creep.i create mode 100644 modules/combined/test/tests/ad_power_law_creep/power_law_creep_restart1.i create mode 100644 modules/combined/test/tests/ad_power_law_creep/power_law_creep_restart2.i create mode 100644 modules/combined/test/tests/ad_power_law_creep/power_law_creep_smallstrain.i create mode 100644 modules/combined/test/tests/ad_power_law_creep/tests delete mode 100644 modules/combined/test/tests/power_law_creep/gold/power_law_creep_test_out.e delete mode 100644 modules/combined/test/tests/power_law_creep/gold/power_law_creep_test_tm_out.e create mode 100644 modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-2D-axisymmetric_rz_test.i create mode 100644 modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-bulk_modulus_shear_modulus_test.i create mode 100644 modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-lambda_shear_modulus_test.i create mode 100644 modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-youngs_modulus_poissons_ratio_test.i create mode 120000 modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-2D-axisymmetric_rz_test_out.e create mode 120000 modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-bulk_modulus_shear_modulus_test_out.e create mode 120000 modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-lambda_shear_modulus_test_out.e create mode 120000 modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-youngs_modulus_poissons_ratio_test_out.e diff --git a/framework/include/bcs/ADIntegratedBC.h b/framework/include/bcs/ADIntegratedBC.h index 065ec782101d..ff1a83d00001 100644 --- a/framework/include/bcs/ADIntegratedBC.h +++ b/framework/include/bcs/ADIntegratedBC.h @@ -24,10 +24,10 @@ class ADIntegratedBCTempl : public IntegratedBCBase, public MooseVariableInterfa virtual MooseVariableFE & variable() override { return _var; } - void computeResidual() override; - void computeJacobian() override; - void computeJacobianBlock(MooseVariableFEBase & jvar) override; - void computeJacobianBlockScalar(unsigned int jvar) override; + virtual void computeResidual() override; + virtual void computeJacobian() override; + virtual void computeJacobianBlock(MooseVariableFEBase & jvar) override; + virtual void computeJacobianBlockScalar(unsigned int jvar) override; protected: /** diff --git a/framework/include/bcs/ADNodalBC.h b/framework/include/bcs/ADNodalBC.h index e79aee3e5f99..0805dfb38471 100644 --- a/framework/include/bcs/ADNodalBC.h +++ b/framework/include/bcs/ADNodalBC.h @@ -24,9 +24,9 @@ class ADNodalBCTempl : public NodalBCBase, public MooseVariableInterface virtual MooseVariableFE & variable() override { return _var; } - void computeResidual() override; - void computeJacobian() override; - void computeOffDiagJacobian(unsigned int jvar) override; + virtual void computeResidual() override; + virtual void computeJacobian() override; + virtual void computeOffDiagJacobian(unsigned int jvar) override; protected: /** diff --git a/framework/include/bcs/PresetNodalBC.h b/framework/include/bcs/PresetNodalBC.h index a4d447da6c0a..0cbd5de933b0 100644 --- a/framework/include/bcs/PresetNodalBC.h +++ b/framework/include/bcs/PresetNodalBC.h @@ -18,7 +18,7 @@ template <> InputParameters validParams(); /** - * TODO + * Base class for nodal BCs that (pre)set the solution vector entries. */ class PresetNodalBC : public NodalBC { diff --git a/framework/src/bcs/ADFunctionPresetBC.C b/framework/src/bcs/ADFunctionPresetBC.C index bbcbc2a7e9d2..077b13b56ccb 100644 --- a/framework/src/bcs/ADFunctionPresetBC.C +++ b/framework/src/bcs/ADFunctionPresetBC.C @@ -17,7 +17,7 @@ defineADValidParams( ADPresetNodalBC, params.addRequiredParam("function", "The forcing function."); params.addClassDescription( - "The same as FunctionDirichletBC except the value is applied before the solve begins");); + "The same as ADFunctionDirichletBC except the value is applied before the solve begins");); template ADFunctionPresetBC::ADFunctionPresetBC(const InputParameters & parameters) diff --git a/framework/src/bcs/ADPresetNodalBC.C b/framework/src/bcs/ADPresetNodalBC.C index 2f005075940b..9ae0aac20cdf 100644 --- a/framework/src/bcs/ADPresetNodalBC.C +++ b/framework/src/bcs/ADPresetNodalBC.C @@ -41,4 +41,4 @@ ADPresetNodalBC::computeQpResidual() } // explicit instantiation is required for AD base classes -adBaseClass(ADPresetBC); +adBaseClass(ADPresetNodalBC); diff --git a/modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_out.e b/modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_out.e new file mode 120000 index 000000000000..22cadb8a3746 --- /dev/null +++ b/modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_out.e @@ -0,0 +1 @@ +../../power_law_creep/gold/power_law_creep_out.e \ No newline at end of file diff --git a/modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_restart2_tm_out.e b/modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_restart2_tm_out.e new file mode 120000 index 000000000000..7780a80d62f8 --- /dev/null +++ b/modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_restart2_tm_out.e @@ -0,0 +1 @@ +../../power_law_creep/gold/power_law_creep_restart2_tm_out.e \ No newline at end of file diff --git a/modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_smallstrain_out.e b/modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_smallstrain_out.e new file mode 120000 index 000000000000..ba3e1793efcf --- /dev/null +++ b/modules/combined/test/tests/ad_power_law_creep/gold/power_law_creep_smallstrain_out.e @@ -0,0 +1 @@ +../../power_law_creep/gold/power_law_creep_smallstrain_out.e \ No newline at end of file diff --git a/modules/combined/test/tests/ad_power_law_creep/power_law_creep.i b/modules/combined/test/tests/ad_power_law_creep/power_law_creep.i new file mode 100644 index 000000000000..6b5931b1ada0 --- /dev/null +++ b/modules/combined/test/tests/ad_power_law_creep/power_law_creep.i @@ -0,0 +1,146 @@ +# 1x1x1 unit cube with uniform pressure on top face + +[GlobalParams] + displacements = 'disp_x disp_y disp_z' +[] + +[Mesh] + type = GeneratedMesh + dim = 3 + nx = 1 + ny = 1 + nz = 1 +[] + +[Variables] + [./temp] + order = FIRST + family = LAGRANGE + initial_condition = 1000.0 + [../] +[] + +[Modules/TensorMechanics/Master] + [./all] + strain = FINITE + incremental = true + add_variables = true + generate_output = 'stress_yy creep_strain_xx creep_strain_yy creep_strain_zz elastic_strain_yy' + use_automatic_differentiation = true + [../] +[] + +[Functions] + [./top_pull] + type = PiecewiseLinear + x = '0 1' + y = '1 1' + [../] +[] + +[Kernels] + [./heat] + type = ADHeatConduction + variable = temp + [../] + [./heat_ie] + type = ADHeatConductionTimeDerivative + variable = temp + [../] +[] + +[BCs] + [./u_top_pull] + type = ADPressure + variable = disp_y + component = 1 + boundary = top + constant = -10.0e6 + function = top_pull + [../] + [./u_bottom_fix] + type = ADPresetBC + variable = disp_y + boundary = bottom + value = 0.0 + [../] + [./u_yz_fix] + type = ADPresetBC + variable = disp_x + boundary = left + value = 0.0 + [../] + [./u_xy_fix] + type = ADPresetBC + variable = disp_z + boundary = back + value = 0.0 + [../] + [./temp_fix] + type = DirichletBC + variable = temp + boundary = 'bottom top' + value = 1000.0 + [../] +[] + +[Materials] + [./elasticity_tensor] + type = ComputeIsotropicElasticityTensor + youngs_modulus = 2e11 + poissons_ratio = 0.3 + [../] + [./radial_return_stress] + type = ADComputeMultipleInelasticStress + inelastic_models = 'power_law_creep' + [../] + [./power_law_creep] + type = ADPowerLawCreepStressUpdate + coefficient = 1.0e-15 + n_exponent = 4 + activation_energy = 3.0e5 + temperature = temp + [../] + + [./thermal] + type = HeatConductionMaterial + specific_heat = 1.0 + thermal_conductivity = 100. + [../] + [./density] + type = ADDensity + density = 1.0 + [../] +[] + +[Preconditioning] + [./smp] + type = SMP + full = true + [../] +[] + +[Executioner] + type = Transient + solve_type = 'PJFNK' + + petsc_options = '-snes_ksp' + petsc_options_iname = '-ksp_gmres_restart' + petsc_options_value = '101' + + line_search = 'none' + + l_max_its = 20 + nl_max_its = 20 + nl_rel_tol = 1e-6 + nl_abs_tol = 1e-6 + l_tol = 1e-5 + start_time = 0.0 + end_time = 1.0 + num_steps = 10 + dt = 0.1 +[] + +[Outputs] + exodus = true +[] diff --git a/modules/combined/test/tests/ad_power_law_creep/power_law_creep_restart1.i b/modules/combined/test/tests/ad_power_law_creep/power_law_creep_restart1.i new file mode 100644 index 000000000000..d47881583df2 --- /dev/null +++ b/modules/combined/test/tests/ad_power_law_creep/power_law_creep_restart1.i @@ -0,0 +1,144 @@ +# 1x1x1 unit cube with uniform pressure on top face + +[GlobalParams] + displacements = 'disp_x disp_y disp_z' +[] + +[Mesh] + type = GeneratedMesh + dim = 3 + nx = 1 + ny = 1 + nz = 1 +[] + +[Variables] + [./temp] + order = FIRST + family = LAGRANGE + initial_condition = 1000.0 + [../] +[] + +[Modules/TensorMechanics/Master] + [./all] + strain = FINITE + incremental = true + add_variables = true + generate_output = 'stress_yy creep_strain_xx creep_strain_yy creep_strain_zz elastic_strain_yy' + use_automatic_differentiation = true + [../] +[] + +[Functions] + [./top_pull] + type = PiecewiseLinear + x = '0 1' + y = '1 1' + [../] +[] + +[Kernels] + [./heat] + type = ADHeatConduction + variable = temp + [../] + [./heat_ie] + type = ADHeatConductionTimeDerivative + variable = temp + [../] +[] + +[BCs] + [./u_top_pull] + type = ADPressure + variable = disp_y + component = 1 + boundary = top + constant = -10.0e6 + function = top_pull + [../] + [./u_bottom_fix] + type = ADPresetBC + variable = disp_y + boundary = bottom + value = 0.0 + [../] + [./u_yz_fix] + type = ADPresetBC + variable = disp_x + boundary = left + value = 0.0 + [../] + [./u_xy_fix] + type = ADPresetBC + variable = disp_z + boundary = back + value = 0.0 + [../] + [./temp_fix] + type = DirichletBC + variable = temp + boundary = 'bottom top' + value = 1000.0 + [../] +[] + +[Materials] + [./elasticity_tensor] + type = ComputeIsotropicElasticityTensor + youngs_modulus = 2e11 + poissons_ratio = 0.3 + [../] + [./radial_return_stress] + type = ADComputeMultipleInelasticStress + inelastic_models = 'power_law_creep' + [../] + [./power_law_creep] + type = ADPowerLawCreepStressUpdate + coefficient = 1.0e-15 + n_exponent = 4 + activation_energy = 3.0e5 + temperature = temp + [../] + + [./thermal] + type = HeatConductionMaterial + specific_heat = 1.0 + thermal_conductivity = 100. + [../] + [./density] + type = ADDensity + density = 1.0 + [../] +[] + +[Executioner] + type = Transient + solve_type = 'PJFNK' + + petsc_options = '-snes_ksp' + petsc_options_iname = '-ksp_gmres_restart' + petsc_options_value = '101' + + line_search = 'none' + + l_max_its = 20 + nl_max_its = 20 + nl_rel_tol = 1e-6 + nl_abs_tol = 1e-6 + l_tol = 1e-5 + start_time = 0.0 + end_time = 1.0 + num_steps = 6 + dt = 0.1 +[] + +[Outputs] + exodus = true + csv = true + [./out] + type = Checkpoint + num_files = 1 + [../] +[] diff --git a/modules/combined/test/tests/ad_power_law_creep/power_law_creep_restart2.i b/modules/combined/test/tests/ad_power_law_creep/power_law_creep_restart2.i new file mode 100644 index 000000000000..1df47d37fa02 --- /dev/null +++ b/modules/combined/test/tests/ad_power_law_creep/power_law_creep_restart2.i @@ -0,0 +1,145 @@ +# 1x1x1 unit cube with uniform pressure on top face + +[GlobalParams] + displacements = 'disp_x disp_y disp_z' +[] + +[Mesh] + type = GeneratedMesh + dim = 3 + nx = 1 + ny = 1 + nz = 1 +[] + +[Variables] + [./temp] + order = FIRST + family = LAGRANGE + initial_condition = 1000.0 + [../] +[] + +[Modules/TensorMechanics/Master] + [./all] + strain = FINITE + incremental = true + add_variables = true + generate_output = 'stress_yy creep_strain_xx creep_strain_yy creep_strain_zz elastic_strain_yy' + use_automatic_differentiation = true + [../] +[] + +[Functions] + [./top_pull] + type = PiecewiseLinear + x = '0 1' + y = '1 1' + [../] +[] + +[Kernels] + [./heat] + type = ADHeatConduction + variable = temp + [../] + [./heat_ie] + type = ADHeatConductionTimeDerivative + variable = temp + [../] +[] + +[BCs] + [./u_top_pull] + type = ADPressure + variable = disp_y + component = 1 + boundary = top + constant = -10.0e6 + function = top_pull + [../] + [./u_bottom_fix] + type = ADPresetBC + variable = disp_y + boundary = bottom + value = 0.0 + [../] + [./u_yz_fix] + type = ADPresetBC + variable = disp_x + boundary = left + value = 0.0 + [../] + [./u_xy_fix] + type = ADPresetBC + variable = disp_z + boundary = back + value = 0.0 + [../] + [./temp_fix] + type = DirichletBC + variable = temp + boundary = 'bottom top' + value = 1000.0 + [../] +[] + +[Materials] + [./elasticity_tensor] + type = ComputeIsotropicElasticityTensor + youngs_modulus = 2e11 + poissons_ratio = 0.3 + [../] + [./radial_return_stress] + type = ADComputeMultipleInelasticStress + inelastic_models = 'power_law_creep' + [../] + [./power_law_creep] + type = ADPowerLawCreepStressUpdate + coefficient = 1.0e-15 + n_exponent = 4 + activation_energy = 3.0e5 + temperature = temp + [../] + + [./thermal] + type = HeatConductionMaterial + specific_heat = 1.0 + thermal_conductivity = 100. + [../] + [./density] + type = ADDensity + density = 1.0 + [../] +[] + +[Executioner] + type = Transient + + solve_type = 'PJFNK' + + petsc_options = '-snes_ksp' + petsc_options_iname = '-ksp_gmres_restart' + petsc_options_value = '101' + + line_search = 'none' + + l_max_its = 20 + nl_max_its = 20 + nl_rel_tol = 1e-6 + nl_abs_tol = 1e-6 + l_tol = 1e-5 + start_time = 0.6 + end_time = 1.0 + num_steps = 12 + dt = 0.1 +[] + +[Outputs] + file_base = power_law_creep_out + exodus = true +[] + +[Problem] + restart_file_base = power_law_creep_restart1_out_cp/0006 +[] diff --git a/modules/combined/test/tests/ad_power_law_creep/power_law_creep_smallstrain.i b/modules/combined/test/tests/ad_power_law_creep/power_law_creep_smallstrain.i new file mode 100644 index 000000000000..a495ba32587d --- /dev/null +++ b/modules/combined/test/tests/ad_power_law_creep/power_law_creep_smallstrain.i @@ -0,0 +1,149 @@ +# 1x1x1 unit cube with uniform pressure on top face for the case of small strain. +# This test does not have a solid mechanics analog because there is not an equvialent +# small strain with rotations strain calculator material in solid mechanics + +[GlobalParams] + displacements = 'disp_x disp_y disp_z' +[] + +[Mesh] + type = GeneratedMesh + dim = 3 + nx = 1 + ny = 1 + nz = 1 +[] + +[Variables] + [./temp] + order = FIRST + family = LAGRANGE + initial_condition = 1000.0 + [../] +[] + +[Modules/TensorMechanics/Master] + [./all] + strain = SMALL + incremental = true + add_variables = true + generate_output = 'stress_yy creep_strain_xx creep_strain_yy creep_strain_zz elastic_strain_yy' + use_automatic_differentiation = true + [../] +[] + +[Functions] + [./top_pull] + type = PiecewiseLinear + x = '0 1' + y = '1 1' + [../] +[] + +[Kernels] + [./heat] + type = ADHeatConduction + variable = temp + [../] + [./heat_ie] + type = ADHeatConductionTimeDerivative + variable = temp + [../] +[] + +[BCs] + [./u_top_pull] + type = ADPressure + variable = disp_y + component = 1 + boundary = top + constant = -10.0e6 + function = top_pull + [../] + [./u_bottom_fix] + type = ADPresetBC + variable = disp_y + boundary = bottom + value = 0.0 + [../] + [./u_yz_fix] + type = ADPresetBC + variable = disp_x + boundary = left + value = 0.0 + [../] + [./u_xy_fix] + type = ADPresetBC + variable = disp_z + boundary = back + value = 0.0 + [../] + [./temp_fix] + type = DirichletBC + variable = temp + boundary = 'bottom top' + value = 1000.0 + [../] +[] + +[Materials] + [./elasticity_tensor] + type = ComputeIsotropicElasticityTensor + youngs_modulus = 2e11 + poissons_ratio = 0.3 + [../] + [./radial_return_stress] + type = ADComputeMultipleInelasticStress + inelastic_models = 'power_law_creep' + [../] + [./power_law_creep] + type = ADPowerLawCreepStressUpdate + coefficient = 1.0e-15 + n_exponent = 4 + activation_energy = 3.0e5 + temperature = temp + [../] + + [./thermal] + type = HeatConductionMaterial + specific_heat = 1.0 + thermal_conductivity = 100. + [../] + [./density] + type = ADDensity + density = 1.0 + [../] +[] + +[Preconditioning] + [./smp] + type = SMP + full = true + [../] +[] + +[Executioner] + type = Transient + + solve_type = 'PJFNK' + + petsc_options = '-snes_ksp_ew' + petsc_options_iname = '-ksp_gmres_restart' + petsc_options_value = '101' + + line_search = 'none' + + l_max_its = 20 + nl_max_its = 20 + nl_rel_tol = 1e-6 + nl_abs_tol = 1e-6 + l_tol = 1e-5 + start_time = 0.0 + end_time = 1.0 + num_steps = 10 + dt = 0.1 +[] + +[Outputs] + exodus = true +[] diff --git a/modules/combined/test/tests/ad_power_law_creep/tests b/modules/combined/test/tests/ad_power_law_creep/tests new file mode 100644 index 000000000000..dde6510ad965 --- /dev/null +++ b/modules/combined/test/tests/ad_power_law_creep/tests @@ -0,0 +1,58 @@ +[Tests] + [./power_law_creep_tm] + type = 'Exodiff' + input = 'power_law_creep.i' + exodiff = 'power_law_creep_out.e' + issues = "#8642" + requirement = 'Moose shall be able to calculate a coupled thermo-mechanics solve with power law creep and finite strain using the AD formulation and match non-AD formulation results' + [../] + [./testRestart1_tm] + type = 'RunApp' + input = 'power_law_creep_restart1.i' + recover = false + issues = "#8642" + design = "PowerLawCreep.md" + requirement = 'Moose shall be able to restart a thermo-mechanics solve with power law creep and finite strain using the AD formulation and match non-AD formulations (precurser)' + [../] + [./testRestart2_tm] + type = 'Exodiff' + input = 'power_law_creep_restart2.i' + prereq = 'testRestart1_tm' + exodiff = 'power_law_creep_restart2_tm_out.e' + cli_args = 'Outputs/file_base=power_law_creep_restart2_tm_out' + exodiff_opts = '-TM' + issues = "#8642" + design = "PowerLawCreep.md" + requirement = 'Moose shall be able to restart a thermo-mechanics solve with power law creep and finite strain using the AD formulation and match non-AD formulations' + [../] + [./small_strain_tm] + type = Exodiff + input = 'power_law_creep_smallstrain.i' + exodiff = 'power_law_creep_smallstrain_out.e' + issues = "#8642" + requirement = 'Moose shall be able to calculate a coupled thermo-mechanics solve with power law creep and small strain using the AD formulation and match non-AD formulation results' + [../] + + [./power_law_creep_tm-jac] + type = 'PetscJacobianTester' + input = 'power_law_creep.i' + ratio_tol = 1e-8 + difference_tol = 1e-8 + run_sim = True + petsc_version = '>=3.9.4' + issues = '#12650' + design = 'jacobian_definitions.md' + requirement = 'Moose shall be able to calculate a coupled thermo-mechanics solve with power law creep and finite strain using the AD formulation and calculate a perfect Jacobian' + [../] + [./small_strain_tm-jac] + type = PetscJacobianTester + input = 'power_law_creep_smallstrain.i' + ratio_tol = 1e-8 + difference_tol = 1e-8 + run_sim = True + petsc_version = '>=3.9.4' + issues = '#12650' + design = 'jacobian_definitions.md' + requirement = 'Moose shall be able to calculate a coupled thermo-mechanics solve with power law creep and small strain using the AD formulation and calculate a perfect Jacobian' + [../] +[] diff --git a/modules/combined/test/tests/power_law_creep/gold/power_law_creep_test_out.e b/modules/combined/test/tests/power_law_creep/gold/power_law_creep_test_out.e deleted file mode 100644 index d1ac93c71c1c2a419ff9877624a8acb910f26b25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49336 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 diff --git a/modules/combined/test/tests/power_law_creep/gold/power_law_creep_test_tm_out.e b/modules/combined/test/tests/power_law_creep/gold/power_law_creep_test_tm_out.e deleted file mode 100644 index 8837e141846018d591c3ef2dc04261ec102e0985..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57764 zcmeHQ3zQ^Pc^=;TMnFK+gQbvwfql&Ei&xt_?#}E^n3)}RXE!_~WleSUOtIZvo$Bg& z#Rvz`6OKeVN28)9F-HPRf(9cZ#wASviHWR&0TdO)z@p1*!vR(v3*`U*Th(2UTU~W) zYS-y(-#IF0>0;Nv>F?UK#~gN5}i&HwXO+ zdP#%l3*dKn-l&>r!*8yo7d1$rmBC>fieFNS7$4IgRjL-{oL!{9d;-6bQZRnQ0U z@rQm|LBmLgz;7ON%Oizt;9`CYopf?Vv+T4;1Nm3<9MIwMUu0wGC4}j$;~Z_{$Ysrh zcTxb-umJrTP6a)Y4!2(y$8R~uZ-wnQ-+51o;D}!?KZNu9A)Mb2;kFD(wu6?XyV9m@!d0%Z@&0?WuQLwI6-r_xi$f+4Vx$L{#ZV}Jas?f4eP2OhcOBag!3 zzY1aVkSFyN?EP35{b_RG2WH{N;NJq&moh4pqEZI8pFfyZf*+WLPr$!9s!=Lws)cfi zdB*yH<>r*#T+$iVRM}Pcj@Zz1;aLy|jSFuPx))G<@B2}wI0ob656mJ7{>`EImAW2X zh#|Id$2}GN=J<4OSlrVwu8r&HVj_-%d!`FFD(*5DuA|S7wlUFi(~HX3p*Jcn^3tIf z(_xvRJUYgWdmeZ?xKVM}U|c2-b^adXfP#&<_InnsbH#P|aBN82VOLxyZ^wni&AH+_ z^u9ABt_A)J$CU!q5+jH06bdC6(u-h+)boeF0%4wXm;o?R>3#`uJn1kqU?S2z{9cIT zNrxE&6P4~G5N81@04INTn&ZL7vTzLIT+JMd&|XMsNTBT&oxSS>2=k}g&e9!?y6YI? zrIW5x8}acI>$+o*x0nXZ!^lr>+OF7XZwRDa9y{$VfwU`Pr@bwZc4h3eJ0LC7Tfkn~ zQbxdyWq|xZ9y^sS(rb5eA0XL>O5q?;I9Rq&%KENDD-wQT|@qXCX z!1RuO_s797jDs{BQF{XZg9)>7S5<^|DQ!1KzZ}X7`Ra< zVB3xLAWpaw$1S@k&*(*!qBnOEXq_=gz2aV zFy7Um4>!fSo*YuxPz0hWFqWL0494(8;Nf^8OtXHg2SzI>6-!rPFhDQiVPJfB8PM}7 z9OD5Nb(|utH8sW3a?;3@G_Y~w<{s%3Q4CLf4uLZUl-3%>qEgC9{V**db(^ErqE@mh z61>av?s$&Hdc1hCV}%T2m!$ok*aQV40;8m@Y$`zNgXS(F=Nh=ZCUk&cc3>O9nMIg1 zFiPh%!iArh=-JZ}=SU4Rs#}r@#Shl1Rocp~k+USDBy}z8T(x-F%Eg_l!`?L1GrU=K zGVKOjzGUSRyQ>$Lmg~Q^YMLN*(lAVcx$&goswNF6Q&Q(@sk7^xm7V7-UrqFJQCyxq zlbTwEeo8?jOqeh!mI>GkxP19J%T~n#bYaiZN0h_9Qn_kLy)c0^V=3GZxxD1kltCqF zq+qDq8UpQq%1C{KTf6)18Kda8OHdtfS`J6^ek^ilqzf;)I2xxOLz42EtSaglA5M}o z(z1HwI1iGvO*2bcK~@c@(8?&Fk7;feWF&hG69*0AND?R*&D51JNO3?MjB&ZgJTua1 zOd}1M22{}EX%Uo467(r7#k6Fa868n7K6LR?Hm8AqSkN&2SqYMwkuHj$$r~(5p#tM% zxwps8tv6+eOOmP;oR1w<)G4`Y$Vzn*2rfe9rp5rpMpUr9fO<){pvd)U8!rJMj+#Md z%fLp>!UftG0$U;sSIk(vZNgr%H8O)&?n zg~H~tqWa`IfpS2=5HRGUxVF(s)QCET;J3wE3 z0;qE)k#Q*n1#6h928l^U_~}cM}a@VT-sUdpI#pj>gOQ{gHHu|_KOoQ889Yx;&WKbLkf!ZkM%tv5whd1hz?%R$91jF++MyG#DFA3xOF6}yLhyh| z0@$<>fHtKr2b>%RypW=%DptJe0U!;2G*GgE45L2m?;Gst-V`7u!~-GpQcjzcbq*SM z#nsdfegp8b^Z-o|G})RkV3E62F?<>)Be})ip(ETzvML%(+k}}USw@YB({BZ6=5sPE zp^mxGlK{d@ydK&%d$Y`)X!GPBmBW&yGg1d0y!0JG^))p$BYKhjZT006LU=qV)t6XT z1R2KkVW|2N2W+b^zZ|+Xc9Z144j{9G6X*;)t9}MBW8;mLw$(@ zw$)ct^~GDH^b}W%sIS1n>I@VZGOXSE@{7$uICvEAEFI|HmsjjP6_?|{B5nD>qc_V@ z{jU~LU-i8yGf-PjfnzDR)faN1VGhdP*X&ncOza)Ojk2*gTV8$DYkE{}DLi%c)f%f6 zTkZM7*|}bUg_8PeMe2(Sd8Mcq_)7~onKrO-aN|HB+=ixy)G2X5zOkAA*?V1v)AyRKfBi|?*A=sv*FbCVNDNY?> zcDtrTie-z`l)xmw493kU8||9Xt|`LXR$HR?RUdE8poTbFqg_+HwFF)5HpP*SP&@TD zr3EH2KD>5z&Rx_Ci8`G4S*AQYCMxB^{FQN}gc*^X|H z5uX)-S>g~Z0!{>&_LfW9An(bi%K>7uY?;8fSE(ylPYI>rXlNVDD8o$J%v23fgxreI zHY=GBtMhVY9;g}@D+tl@8UQsRoS9Nt-Gt%Nt z?Tlrir^R^7m^JkIYDx8PZ*T!R_1vG7@5Y2>qhi77sw#+EkkCY<(OEvcZ4r$+9vYQ%(k|Xq==dJ-?O%9fu&4#ULoxF)y$cXZAoJ{9hl*g`Y?R8Srci*3-^d9-of{$XU*- z181ZzZEZ zt15|jh=3{b(2(JLR8zwyz%PWv!}$C|CP0?)-YHNGyb`esh0iU%Z;Z417H=Nx*({&G zd5DkT^YsC;QwH5R2lWM5^7?^IfC|6i?oCZUe(?hadSWOxA_@@zbydNmQ9;Y{N?KfO zY``$#20$N|nmg+hhRGsPxa_RvD6UXCU>15Bq0POx`m&FsWZyIKPONpkKE@-gf5S1q zp^YeN8_{iAtQQyBOUy_^f80BGehk`J6rd3HXjyo_nOmG2&j~23u(OT1Qb-CGno*Hb zhKmWTVt98+yp-9g#G$<#aX^H^yYzIp-3K~Oek~@>LpLB%>xG;VpcjgjbTUAvg@OaE zOTI&J#e1-D>jT~dXA4h50PQF7LctZOVzmJ0C6~(_9U%?~2X~Jc{zI%Ago*+ll*3!> zH^6!io*&-eT;mCNIJr8no}KGDYgwFqel5VmUVF)G*6w*``wvrFp=T>Tp$!z4H8fJX zrfL&R4=wBbTxvI2pEwm)Nw$E--u6QM2zXh zdtY?qHe4FuC(U+eB-5C{%f4b7Ojc19xbrk*l{pE8O(t2eluuhGbw*t~&>$Zvgb4z6 z2yTf}G@=@t0Ab?+6f`~tO%geTl~%Y?iLOY1gSUN$5+vcF55h|&@UT;qhe#kDB+Tcb z=qMoNHK`V80@fFd5v4Gszy(36v;v@O>=TLEolo8(1{ahvTmO*QHW`Vny@pnu7U1FR zKBOI#4mG30bd2?Yrj98kU7cBBW2xd0lE zP_QG$%U<<04AYJ4V774_?pzw@EFdCa3#c#XE1?46UOShOax6GzAz_wN*N3TV8*KF8 zT0yunjFa(<s|&VT~QpNQrkv zB0e+_U2J9F_*8>CZCK??GCLPB3aATKtfEIU>_T?bf!9t#Ar8Rh`oWuCyhJnY1Q<56 zn}I1>j1Vio5DDoaz_4k~j6LTi3^?t}s^iSqvu7fJsrMXGZ|K>1u(%cn>(-X;y^u1= zBu2ymv!Ywwpy!bGxgrtmvS{C?CB`ZCVSw1(WLNCXpfSJ-5iw3#OP3vMeH8;P+=cx^ zJq4v=;SoSnY-ZG3hY;{U&v4FyHf5w**d`Z^T(wXQ?!`z__3Rzl$j+ci(gdX5NCm_Y zcZoaehDowK`xR_KDUReq)(I0eqqARQmkk|0f1e2%U1XN%c zWro$gByyN?n<7b5aPRGCC4@xWRdq&Zd=-YHfEKtOv}{ahrd&`aWV$|Z22B*}A4W7% zn>1TtZc<>%sIW=1s%B{jY3Nrb)|#5;>5QTr!k${A0K)*>(iqt61_~BF)`URJ#V>4vl&`vl(eQZb6UTA3?x_uo-o&Q6LArh80SzuOO&Tf~g~#(b(nT0&IHe zq4-!Y^;U0Gf&G@Cu`PvjibX~`YsvD?6|t2z@-X#rN>SD(Lr>XAGWW%{vqLS$+UM_o zWh8-*Q=ptN%TR@zQ5gR#E|ePtv>STevWbN4H~D&Nnk36yK>Q?7Gfg;kLk!YI;Vd3J z!Z!xAIMPI8$FI+r<@CEE_~BL9Cw5{*Vz+wDwcvT&==wAqQKXV$PL`;7QZ{}DA@Fe zw-oAyvDC9iFlB5Ypc{JJ*8XMTB=%u7O+FQ<80P!?-FIFfGR5iTYi{Wu0 zU|VA&7aAssK1^L>;}TLqQQ_OnQt$wQB)d#gADX4!1k8Soow|a>J}(ZU;3Uh2{5elB znYKFi*cNIvrgH&8A2IJhF*^~Uy`>U{ka(<%v-Q#ej6X&}wS%b+#wNhtmzqi&fIN(7 z0ycQ|5<9av9=-2!AYgl+19G8Z;EGje1C5JQ;g6WItzaAc!>5ci3zpP9o8!FnB^#P~ z0Ab0xuD|KP7CL%1{-=~k5JLC~tGkm7e0ZDSU4Wv84grO{UG+(Gj+D&qCZH8|_i2@} zR2maoqp=-Jq1{caDPrI2*)58!dxwm5F$6%-t!~sr@%LgQYyv=7$jm7wd_2k}at46D zExLBD#Q|yI!-Ow_WH`W1lM8yqlIim463h{h6S5t@2PR3QV{n?amV?VRDC@pWRS9?) z1jMxfoY|%u#>KN-RxEW4vOCS`4^t_xh@W2&Zk!VVF6QL0>&iv=hm{2Yx9M1$Zx6sj-=H4Q!2$TqBo z=X6tJN3DyOazn7|lFS6VF6WT#_|v8lXC)vHBbeq3Mt#UV{=?xStbqHHG1a zYS#=0$g$zX+MeF-E&UwZvc*b>=}}K2G@livH@+%By9Q(<6zP@ zMaK1oAa&>?F4&{RlnZ6FR4o^burr4e)a5bgs`GP8zT#PiO01c1{ALKKcuh&YU3Rwb zOv3;NkKTfAEIYotj+a2&FhJ;zjKR^5N@*0vKr`F3!~kLL zJ}(!H;K`KYb-6NTOoWs$dW-XrHiY7Q{TK`z4b!uMlK_PVQXMexnJTHY9jH+dNSR~A z``DJIrd##Kt!)l9JX^d_CPVkf6MhmvZqL=BRur%WdS6@Zvlr6qe+4>ZGxMMiQE@gi ztqC=a4^5WcK$P$(*gEwSH*eXg5MZAMnL>#}!z zk))=y>oOce+OErSRTsvicA1?H*{;jB%H9v{vS0C3WgOXbFt*F= zh}U*q#_|W#uFJ7%O1qC8$)=_e_Tv=6n$N7ES0}Zb(*6G^F#Fx>(R?W>pPY12EUCTk z`SBM!fBOj8U2_*Rd)_`~uQ?7Dm2s{h&j?x~6Fe;y!yEq>+R z-EThf$r{+ty!-H8w0H06Urp{~AKK~9M>f0Rq&>I1aR=EqZaSA6zWpAR!f!wEc*1*m zZrLA?@aG?{lYLzF0bcm-H~-=1#IMJ%xV46S+I!Rcv*#keuHQ-Sm#>}962ETWo&E3S zXjV9KlGOIo;dj?ozP_sK*`a>2U#spW`zdt|*?aH4(jPzDd&3KJU*7#SvR}FQXWa0; z-`_{!Z>-uwIJ-XhygwfK?|I@YWWT69$PIt)R~qBjsn6F|ynXpuuUPFP3o zSH6B8@#~})zLtIT0Lj;RuU+`NKl%K04egITw}$L3OLvm}@s(fo=Oa6CW9R92?yHe~ z$I};c!|$-ZK;ie@d@12vni==UBmdIX?`~EwXk)yL&dzLVO1I{fZh&!2zd{u@61O|rlH#jDBQ{@HzG z-#PwI{`lD~554ffL;ZI!`{)0~4S(>~YbpHEp$&v{={%XFd~(wH>GZp68(!bJ<6l3tk?bEW z>LUBD>mDKd!Nptr@v|3gJ>{ykfBhF^_kQ6Ix#8U}zD41Ele-A#dsa}N<9mO2$Zsh8 z{->AtamfGP>{Cp>cKy1x;d1@%admI@LbMkto3LA3O9svj1c8Uy=Q!`AvWP>_>ijP48Xbc#`aU?>dzm{%?Q#rxbqQAu8eQ z_`n{2Jo5j=*a+FbeBs}@;XiohB_?0jtg4~jdgab%vzMU$+O?b9FE4zG@#}@}WS_gA zOj15M>HKu~-L;Lcy>sd4F~R27wnjO(Kimind}|k&Xawc{Bg2tw`}#t&nnMbN9_Fc zJhC4cS;!5)fAQxj{3l2LlyGhtzQP}m{J;0{3fVjE54?x`zx@eYe=YrD4fXugkB-SI SX!ioWsP}7Y7{7je`u_o8#kI2l diff --git a/modules/tensor_mechanics/include/materials/ADPowerLawCreepStressUpdate.h b/modules/tensor_mechanics/include/materials/ADPowerLawCreepStressUpdate.h index 62f588cb7a94..8febd1bf3e9e 100644 --- a/modules/tensor_mechanics/include/materials/ADPowerLawCreepStressUpdate.h +++ b/modules/tensor_mechanics/include/materials/ADPowerLawCreepStressUpdate.h @@ -41,11 +41,8 @@ class ADPowerLawCreepStressUpdate : public ADRadialReturnCreepStressUpdateBase ADResidual ADPressure::computeQpResidual() { - Real factor = _constant; + ADReal factor = _constant; if (_function) factor *= _function->value(_t + _alpha * _dt, _q_point[_qp]); diff --git a/modules/tensor_mechanics/src/materials/ADPowerLawCreepStressUpdate.C b/modules/tensor_mechanics/src/materials/ADPowerLawCreepStressUpdate.C index 03493dc5be13..89b60baa9a0a 100644 --- a/modules/tensor_mechanics/src/materials/ADPowerLawCreepStressUpdate.C +++ b/modules/tensor_mechanics/src/materials/ADPowerLawCreepStressUpdate.C @@ -9,6 +9,8 @@ #include "ADPowerLawCreepStressUpdate.h" +#include "MooseVariableFE.h" + registerADMooseObject("TensorMechanicsApp", ADPowerLawCreepStressUpdate); defineADValidParams( @@ -16,9 +18,8 @@ defineADValidParams( ADRadialReturnCreepStressUpdateBase, params.addClassDescription( "This class uses the stress update material in a radial return isotropic power law creep " - "model. This class can be used in conjunction with other creep and plasticity materials " - "for " - "more complex simulations."); + "model. This class can be used in conjunction with other creep and plasticity materials " + "for more complex simulations."); // Linear strain hardening parameters params.addCoupledVar("temperature", 0.0, "Coupled temperature"); @@ -34,8 +35,7 @@ template ADPowerLawCreepStressUpdate::ADPowerLawCreepStressUpdate( const InputParameters & parameters) : ADRadialReturnCreepStressUpdateBase(parameters), - _has_temp(parameters.isParamSetByUser("temperature")), - _temperature(_has_temp ? coupledValue("temperature") : _zero), + _temperature(adCoupledValue("temperature")), _coefficient(adGetParam("coefficient")), _n_exponent(adGetParam("n_exponent")), _m_exponent(adGetParam("m_exponent")), @@ -54,7 +54,7 @@ void ADPowerLawCreepStressUpdate::computeStressInitialize( const ADReal & /*effective_trial_stress*/, const ADRankFourTensor & /*elasticity_tensor*/) { - if (_has_temp) + if (_temperature[_qp] != 0.0) _exponential = std::exp(-_activation_energy / (_gas_constant * _temperature[_qp])); else _exponential = 1.0; diff --git a/modules/tensor_mechanics/test/tests/1D_spherical/ad-finiteStrain_1DSphere_hollow.i b/modules/tensor_mechanics/test/tests/1D_spherical/ad-finiteStrain_1DSphere_hollow.i index 1dc79c351e37..6aa537169541 100644 --- a/modules/tensor_mechanics/test/tests/1D_spherical/ad-finiteStrain_1DSphere_hollow.i +++ b/modules/tensor_mechanics/test/tests/1D_spherical/ad-finiteStrain_1DSphere_hollow.i @@ -72,7 +72,7 @@ [BCs] [./innerDisp] - type = PresetBC + type = ADPresetBC boundary = left variable = disp_r value = 0.0 @@ -82,7 +82,7 @@ boundary = right variable = disp_r component = 0 - factor = 2 + constant = 2 [../] [] diff --git a/modules/tensor_mechanics/test/tests/1D_spherical/ad-smallStrain_1DSphere.i b/modules/tensor_mechanics/test/tests/1D_spherical/ad-smallStrain_1DSphere.i index 6847876fb285..f87c175bf0c1 100644 --- a/modules/tensor_mechanics/test/tests/1D_spherical/ad-smallStrain_1DSphere.i +++ b/modules/tensor_mechanics/test/tests/1D_spherical/ad-smallStrain_1DSphere.i @@ -75,7 +75,7 @@ [BCs] [./innerDisp] - type = PresetBC + type = ADPresetBC boundary = left variable = disp_r value = 0.0 @@ -85,7 +85,7 @@ boundary = right variable = disp_r component = 0 - factor = 1 + constant = 1 [../] [] diff --git a/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_centerline_VLC.i b/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_centerline_VLC.i index 764fb4cf0104..8bbb92e7d8ee 100644 --- a/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_centerline_VLC.i +++ b/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_centerline_VLC.i @@ -31,13 +31,13 @@ [BCs] [./symmetry_x] - type = PresetBC + type = ADPresetBC variable = disp_r value = 0 boundary = left [../] [./roller_z] - type = PresetBC + type = ADPresetBC variable = disp_z value = 0 boundary = bottom diff --git a/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_finiteStrain_resid.i b/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_finiteStrain_resid.i index 722657567657..121e030ab27e 100644 --- a/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_finiteStrain_resid.i +++ b/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_finiteStrain_resid.i @@ -117,19 +117,19 @@ [BCs] [./no_disp_r_left] - type = PresetBC + type = ADPresetBC variable = disp_r boundary = left value = 0.0 [../] [./no_disp_r_right] - type = PresetBC + type = ADPresetBC variable = disp_r boundary = right value = 0.0 [../] [./no_disp_z_bottom] - type = PresetBC + type = ADPresetBC variable = disp_z boundary = bottom value = 0.0 diff --git a/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_finiteStrain_test.i b/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_finiteStrain_test.i index fc4b402f56a2..af2622d4ae20 100644 --- a/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_finiteStrain_test.i +++ b/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_finiteStrain_test.i @@ -103,14 +103,14 @@ [BCs] # pin particle along symmetry planes [./no_disp_r] - type = PresetBC + type = ADPresetBC variable = disp_r boundary = xzero value = 0.0 [../] [./no_disp_z] - type = PresetBC + type = ADPresetBC variable = disp_z boundary = yzero value = 0.0 diff --git a/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_test.i b/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_test.i index 1ef49215e927..33c8578464da 100644 --- a/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_test.i +++ b/modules/tensor_mechanics/test/tests/2D_geometries/ad-2D-RZ_test.i @@ -73,7 +73,7 @@ variable = disp_r boundary = outer component = 0 - factor = 200000 + constant = 200000 [../] [./exterior_pressure_z] @@ -81,7 +81,7 @@ variable = disp_z boundary = outer component = 1 - factor = 200000 + constant = 200000 [../] [./interior_pressure_r] @@ -89,7 +89,7 @@ variable = disp_r boundary = inner component = 0 - factor = 100000 + constant = 100000 [../] [./interior_pressure_z] @@ -97,7 +97,7 @@ variable = disp_z boundary = inner component = 1 - factor = 100000 + constant = 100000 [../] [] diff --git a/modules/tensor_mechanics/test/tests/2D_geometries/ad-3D-RZ_finiteStrain_test.i b/modules/tensor_mechanics/test/tests/2D_geometries/ad-3D-RZ_finiteStrain_test.i index b5886a7c085c..4e15e3328bb6 100644 --- a/modules/tensor_mechanics/test/tests/2D_geometries/ad-3D-RZ_finiteStrain_test.i +++ b/modules/tensor_mechanics/test/tests/2D_geometries/ad-3D-RZ_finiteStrain_test.i @@ -47,6 +47,7 @@ add_variables = true block = 1 use_displaced_mesh = true + use_automatic_differentiation = true [../] [] @@ -97,21 +98,21 @@ [BCs] # pin particle along symmetry planes [./no_disp_x] - type = PresetBC + type = ADPresetBC variable = disp_x boundary = xzero value = 0.0 [../] [./no_disp_y] - type = PresetBC + type = ADPresetBC variable = disp_y boundary = yzero value = 0.0 [../] [./no_disp_z] - type = PresetBC + type = ADPresetBC variable = disp_z boundary = zzero value = 0.0 diff --git a/modules/tensor_mechanics/test/tests/2D_geometries/tests b/modules/tensor_mechanics/test/tests/2D_geometries/tests index 2bd5586dbbb4..55bda5fec026 100644 --- a/modules/tensor_mechanics/test/tests/2D_geometries/tests +++ b/modules/tensor_mechanics/test/tests/2D_geometries/tests @@ -110,48 +110,45 @@ requirement = 'The volumetric locking correction option in ComputeAxisymmetricRZFiniteStrain shall reinit material properties without inverting a zero tensor when called from a side postprocessor applied to the axis of rotation in an axisymmetric simulation.' [../] - - - - [./ad-axisym_smallstrain] type = Exodiff input = 'ad-2D-RZ_test.i' exodiff = 'ad-2D-RZ_test_out.e' cli_args = 'Modules/TensorMechanics/Master/all/incremental=false - Materials/stress/type=ComputeLinearElasticStress' - design = 'source/materials/ComputeAxisymmetricRZSmallStrain.md' - requirement = 'The ComputeAxisymmetricRZSmallStrain class shall compute the mechanical response for a pressurized hollow cylinder with a small total axisymmetric strain formulation.' + Materials/stress/type=ADComputeLinearElasticStress' + design = 'source/materials/ADComputeAxisymmetricRZSmallStrain.md' + requirement = 'The ADComputeAxisymmetricRZSmallStrain class shall compute the mechanical response for a pressurized hollow cylinder with a small total axisymmetric strain formulation.' [../] [./ad-axisym_incremental_strain] type = Exodiff input = 'ad-2D-RZ_test.i' exodiff = 'ad-2D-RZ_incremental_strain_test_out.e' cli_args = 'Modules/TensorMechanics/Master/all/incremental=true - Materials/stress/type=ComputeFiniteStrainElasticStress - Outputs/file_base=2D-RZ_incremental_strain_test_out' + Materials/stress/type=ADComputeFiniteStrainElasticStress + Outputs/file_base=ad-2D-RZ_incremental_strain_test_out' prereq = 'ad-axisym_smallstrain' - design = 'source/materials/ComputeAxisymmetricRZIncrementalStrain.md' - requirement = 'The ComputeAxisymmetricRZIncrementalStrain class shall compute the mechanical response for a pressurized hollow cylinder with a small incremental axisymmetric strain formulation.' + design = 'source/materials/ADComputeAxisymmetricRZIncrementalStrain.md' + requirement = 'The ADComputeAxisymmetricRZIncrementalStrain class shall compute the mechanical response for a pressurized hollow cylinder with a small incremental axisymmetric strain formulation.' [../] [./ad-axisym_finitestrain] type = Exodiff input = 'ad-2D-RZ_finiteStrain_test.i' exodiff = 'ad-2D-RZ_finiteStrain_test_out.e' rel_err = 5E-4 - design = 'source/materials/ComputeAxisymmetricRZFiniteStrain.md' - requirement = 'The ComputeAxisymmetricRZFiniteStrain class shall compute the mechanical response for a pressurized hollow cylinder with a small incremental axisymmetric strain formulation.' + design = 'source/materials/ADComputeAxisymmetricRZFiniteStrain.md' + requirement = 'The ADComputeAxisymmetricRZFiniteStrain class shall compute the mechanical response for a pressurized hollow cylinder with a small incremental axisymmetric strain formulation.' [../] [./ad-3D_RZ_finitestrain] type = Exodiff input = 'ad-3D-RZ_finiteStrain_test.i' exodiff = 'ad-3D-RZ_finiteStrain_test_out.e' + skip = 'Exceeds AD_MAX_DOFS_PER_ELEM' valgrind = 'HEAVY' heavy = true abs_zero = 1e-5 rel_err = 3E-3 design = 'syntax/Modules/TensorMechanics/Master/index.md' - requirement = 'The TensorMechanics MasterAction shall calculate the elastic stress and strain response for a 3D pressurized hollow cylinder with a large strain incremental strain formulation.' + requirement = 'The TensorMechanics MasterAction shall calculate the elastic stress and strain response for a 3D pressurized hollow cylinder with a large strain incremental strain formulation using AD.' [../] [./ad-axisym_resid] type = Exodiff @@ -160,8 +157,8 @@ use_old_floor = true abs_zero = 1e-8 compiler = 'GCC CLANG' - design = 'source/materials/ComputeAxisymmetricRZFiniteStrain.md' - requirement = 'The ComputeAxisymmetricRZFiniteStrain class shall compute the reaction forces on the top surface of a cylinder which is loaded axially in tension.' + design = 'source/materials/ADComputeAxisymmetricRZFiniteStrain.md' + requirement = 'The ADComputeAxisymmetricRZFiniteStrain class shall compute the reaction forces on the top surface of a cylinder which is loaded axially in tension.' [../] [./ad-axisym_resid_Bbar] type = Exodiff @@ -170,10 +167,10 @@ use_old_floor = true abs_zero = 1e-8 compiler = 'GCC CLANG' - cli_args = 'GlobalParams/volumetric_locking_correction=true Outputs/file_base=2D-RZ_finiteStrain_resid_bbar_out' + cli_args = 'GlobalParams/volumetric_locking_correction=true Outputs/file_base=ad-2D-RZ_finiteStrain_resid_bbar_out' prereq = 'ad-axisym_resid' - design = 'source/materials/ComputeAxisymmetricRZFiniteStrain.md VolumetricLocking.md' - requirement = 'The ComputeAxisymmetricRZFiniteStrain class shall compute the reaction forces on the top surface of a cylinder which is loaded axially in tension when using the B-bar volumetric locking correction.' + design = 'source/materials/ADComputeAxisymmetricRZFiniteStrain.md VolumetricLocking.md' + requirement = 'The ADComputeAxisymmetricRZFiniteStrain class shall compute the reaction forces on the top surface of a cylinder which is loaded axially in tension when using the B-bar volumetric locking correction.' [../] [./ad-axisymmetric_vlc_centerline_pp] type = CSVDiff @@ -181,21 +178,17 @@ csvdiff = 'ad-2D-RZ_centerline_VLC_out.csv' design = 'VolumetricLocking.md source/postprocessors/AxisymmetricCenterlineAverageValue.md' issues = '#12437 #10866' - requirement = 'The volumetric locking correction option in ComputeAxisymmetricRZFiniteStrain shall reinit material properties without inverting a zero tensor when called from a side postprocessor applied to the axis of rotation in an axisymmetric simulation.' + requirement = 'The volumetric locking correction option in ADComputeAxisymmetricRZFiniteStrain shall reinit material properties without inverting a zero tensor when called from a side postprocessor applied to the axis of rotation in an axisymmetric simulation.' [../] - - - - [./ad-axisym_smallstrain-jac] type = PetscJacobianTester input = 'ad-2D-RZ_test.i' cli_args = 'Modules/TensorMechanics/Master/all/incremental=false Materials/stress/type=ADComputeLinearElasticStress' run_sim = 'True' - ratio_tol = 1e-8 - difference_tol = 1e-8 + ratio_tol = 5e-8 + difference_tol = 1e7 petsc_version = '>=3.9.4' issues = '#12650' design = 'jacobian_definitions.md' @@ -207,28 +200,29 @@ cli_args = 'Modules/TensorMechanics/Master/all/incremental=true Materials/stress/type=ADComputeFiniteStrainElasticStress' run_sim = 'True' - ratio_tol = 1e-8 - difference_tol = 1e-8 + ratio_tol = 5e-8 + difference_tol = 1e7 petsc_version = '>=3.9.4' issues = '#12650' design = 'jacobian_definitions.md' - requirement = 'The ComputeAxisymmetricRZIncrementalStrain class shall compute the mechanical response for a pressurized hollow cylinder with a small incremental axisymmetric strain formulation and shall produce perfect jacobians.' + requirement = 'The ADComputeAxisymmetricRZIncrementalStrain class shall compute the mechanical response for a pressurized hollow cylinder with a small incremental axisymmetric strain formulation and shall produce perfect jacobians.' [../] [./ad-axisym_finitestrain-jac] type = PetscJacobianTester input = 'ad-2D-RZ_finiteStrain_test.i' run_sim = 'True' - ratio_tol = 1e-8 - difference_tol = 1e-8 + ratio_tol = 5e-8 + difference_tol = 1e7 petsc_version = '>=3.9.4' issues = '#12650' design = 'jacobian_definitions.md' - requirement = 'The ComputeAxisymmetricRZFiniteStrain class shall compute the mechanical response for a pressurized hollow cylinder with a small incremental axisymmetric strain formulation and shall produce perfect jacobians.' + requirement = 'The ADComputeAxisymmetricRZFiniteStrain class shall compute the mechanical response for a pressurized hollow cylinder with a small incremental axisymmetric strain formulation and shall produce perfect jacobians.' [../] [./ad-3D_RZ_finitestrain-jac] type = PetscJacobianTester input = 'ad-3D-RZ_finiteStrain_test.i' valgrind = 'HEAVY' + skip = 'Exceeds AD_MAX_DOFS_PER_ELEM' heavy = true run_sim = 'True' ratio_tol = 1e-8 @@ -236,7 +230,7 @@ petsc_version = '>=3.9.4' issues = '#12650' design = 'jacobian_definitions.md' - requirement = 'The TensorMechanics MasterAction shall calculate the elastic stress and strain response for a 3D pressurized hollow cylinder with a large strain incremental strain formulation and shall produce perfect jacobians.' + requirement = 'The TensorMechanics MasterAction shall calculate the elastic stress and strain response for a 3D pressurized hollow cylinder with a large strain incremental strain formulation with AD and shall produce perfect jacobians.' [../] [./ad-axisym_resid-jac] type = PetscJacobianTester @@ -248,7 +242,7 @@ petsc_version = '>=3.9.4' issues = '#12650' design = 'jacobian_definitions.md' - requirement = 'The ComputeAxisymmetricRZFiniteStrain class shall compute the reaction forces on the top surface of a cylinder which is loaded axially in tension and shall produce perfect jacobians.' + requirement = 'The ADComputeAxisymmetricRZFiniteStrain class shall compute the reaction forces on the top surface of a cylinder which is loaded axially in tension and shall produce perfect jacobians.' [../] [./ad-axisym_resid_Bbar-jac] type = PetscJacobianTester @@ -261,7 +255,7 @@ petsc_version = '>=3.9.4' issues = '#12650' design = 'jacobian_definitions.md' - requirement = 'The ComputeAxisymmetricRZFiniteStrain class shall compute the reaction forces on the top surface of a cylinder which is loaded axially in tension when using the B-bar volumetric locking correction and shall produce perfect jacobians.' + requirement = 'The ADComputeAxisymmetricRZFiniteStrain class shall compute the reaction forces on the top surface of a cylinder which is loaded axially in tension when using the B-bar volumetric locking correction and shall produce perfect jacobians.' [../] [./ad-axisymmetric_vlc_centerline_pp-jac] type = PetscJacobianTester @@ -273,6 +267,6 @@ petsc_version = '>=3.9.4' issues = '#12650' design = 'jacobian_definitions.md' - requirement = 'The volumetric locking correction option in ComputeAxisymmetricRZFiniteStrain shall reinit material properties without inverting a zero tensor when called from a side postprocessor applied to the axis of rotation in an axisymmetric simulation and shall produce perfect jacobians.' + requirement = 'The volumetric locking correction option in ADComputeAxisymmetricRZFiniteStrain shall reinit material properties without inverting a zero tensor when called from a side postprocessor applied to the axis of rotation in an axisymmetric simulation and shall produce perfect jacobians.' [../] [] diff --git a/modules/tensor_mechanics/test/tests/ad_plastic/power_law_creep.i b/modules/tensor_mechanics/test/tests/ad_plastic/power_law_creep.i index 1113b92a5d0f..b4fc3fff64c9 100644 --- a/modules/tensor_mechanics/test/tests/ad_plastic/power_law_creep.i +++ b/modules/tensor_mechanics/test/tests/ad_plastic/power_law_creep.i @@ -109,7 +109,7 @@ [../] [] -[ADBCs] +[BCs] [./no_disp_x] type = ADPresetBC variable = disp_x diff --git a/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-2D-axisymmetric_rz_test.i b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-2D-axisymmetric_rz_test.i new file mode 100644 index 000000000000..b7caf7f42d63 --- /dev/null +++ b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-2D-axisymmetric_rz_test.i @@ -0,0 +1,139 @@ +[Mesh] + type = GeneratedMesh + dim = 2 + elem_type = QUAD8 +[] + +[GlobalParams] + displacements = 'disp_r disp_z' +[] + +[Problem] + coord_type = RZ +[] + +[Modules/TensorMechanics/Master] + [./all] + strain = SMALL + add_variables = true + use_automatic_differentiation = true + [../] +[] + +[AuxVariables] + [./stress_theta] + order = CONSTANT + family = MONOMIAL + [../] +[] + +[AuxKernels] + [./stress_theta] + type = RankTwoAux + rank_two_tensor = stress + index_i = 2 + index_j = 2 + variable = stress_theta + execute_on = timestep_end + [../] +[] + +[Materials] + [./elasticity_tensor] + #Material constants selected to match isotropic lambda and shear modulus case + type = ComputeElasticityTensor + C_ijkl = '1022726 113636 113636 1022726 454545' + fill_method = axisymmetric_rz + [../] + [./elastic_stress] + type = ADComputeLinearElasticStress + [../] +[] + +[BCs] +# pin particle along symmetry planes + [./no_disp_r] + type = DirichletBC + variable = disp_r + boundary = left + value = 0.0 + [../] + + [./no_disp_z] + type = DirichletBC + variable = disp_z + boundary = bottom + value = 0.0 + [../] + +# exterior and internal pressures + [./exterior_pressure_r] + type = ADPressure + variable = disp_r + boundary = right + component = 0 + constant = 200000 + [../] +[] + +[Debug] + show_var_residual_norms = true +[] + +[Preconditioning] + [./smp] + type = SMP + full = true + [../] +[] + +[Executioner] + type = Transient + + petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter' + petsc_options_value = ' 201 hypre boomeramg 10' + + line_search = 'none' + + #Preconditioned JFNK (default) + solve_type = 'PJFNK' + + nl_rel_tol = 5e-9 + nl_abs_tol = 1e-10 + nl_max_its = 15 + + l_tol = 1e-3 + l_max_its = 50 + + start_time = 0.0 + end_time = 1 + num_steps = 1000 + + dtmax = 5e6 + dtmin = 1 + + [./TimeStepper] + type = IterationAdaptiveDT + dt = 1 + optimal_iterations = 6 + iteration_window = 0 + linear_iteration_ratio = 100 + [../] + + [./Predictor] + type = SimplePredictor + scale = 1.0 + [../] + +[] + +[Postprocessors] + [./dt] + type = TimestepSize + [../] +[] + +[Outputs] + file_base = ad-2D-axisymmetric_rz_test_out + exodus = true +[] diff --git a/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-bulk_modulus_shear_modulus_test.i b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-bulk_modulus_shear_modulus_test.i new file mode 100644 index 000000000000..1b072ce7855a --- /dev/null +++ b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-bulk_modulus_shear_modulus_test.i @@ -0,0 +1,89 @@ +[Mesh] + type = GeneratedMesh + dim = 3 +[] + +[GlobalParams] + displacements = 'disp_x disp_y disp_z' +[] + +[AuxVariables] + [./stress_11] + order = CONSTANT + family = MONOMIAL + [../] +[] + +[Modules/TensorMechanics/Master] + [./all] + strain = SMALL + add_variables = true + use_automatic_differentiation = true + [../] +[] + +[AuxKernels] + [./stress_11] + type = RankTwoAux + variable = stress_11 + rank_two_tensor = stress + index_j = 1 + index_i = 1 + [../] +[] + +[BCs] + [./bottom] + type = ADPresetBC + variable = disp_y + boundary = bottom + value = 0 + [../] + [./left] + type = ADPresetBC + variable = disp_x + boundary = left + value = 0 + [../] + [./back] + type = ADPresetBC + variable = disp_z + boundary = back + value = 0 + [../] + [./top] + type = ADPresetBC + variable = disp_y + boundary = top + value = 0.001 + [../] +[] + +[Materials] + [./stress] + type = ADComputeLinearElasticStress + [../] + [./elasticity_tensor] + type = ComputeIsotropicElasticityTensor + bulk_modulus = 416666 + shear_modulus = 454545 + [../] +[] + +[Preconditioning] + [./SMP] + type = SMP + full = true + [../] +[] + +[Executioner] + type = Steady + l_max_its = 20 + nl_max_its = 10 + solve_type = NEWTON +[] + +[Outputs] + exodus = true +[] diff --git a/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-lambda_shear_modulus_test.i b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-lambda_shear_modulus_test.i new file mode 100644 index 000000000000..a40825ae75a6 --- /dev/null +++ b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-lambda_shear_modulus_test.i @@ -0,0 +1,89 @@ +[Mesh] + type = GeneratedMesh + dim = 3 +[] + +[GlobalParams] + displacements = 'disp_x disp_y disp_z' +[] + +[AuxVariables] + [./stress_11] + order = CONSTANT + family = MONOMIAL + [../] +[] + +[Modules/TensorMechanics/Master] + [./all] + strain = SMALL + add_variables = true + use_automatic_differentiation = true + [../] +[] + +[AuxKernels] + [./stress_11] + type = RankTwoAux + variable = stress_11 + rank_two_tensor = stress + index_j = 1 + index_i = 1 + [../] +[] + +[BCs] + [./bottom] + type = ADPresetBC + variable = disp_y + boundary = bottom + value = 0 + [../] + [./left] + type = ADPresetBC + variable = disp_x + boundary = left + value = 0 + [../] + [./back] + type = ADPresetBC + variable = disp_z + boundary = back + value = 0 + [../] + [./top] + type = ADPresetBC + variable = disp_y + boundary = top + value = 0.001 + [../] +[] + +[Materials] + [./stress] + type = ADComputeLinearElasticStress + [../] + [./elasticity_tensor] + type = ComputeIsotropicElasticityTensor + lambda = 113636 + shear_modulus = 454545 + [../] +[] + +[Preconditioning] + [./SMP] + type = SMP + full = true + [../] +[] + +[Executioner] + type = Steady + l_max_its = 20 + nl_max_its = 10 + solve_type = NEWTON +[] + +[Outputs] + exodus = true +[] diff --git a/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-youngs_modulus_poissons_ratio_test.i b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-youngs_modulus_poissons_ratio_test.i new file mode 100644 index 000000000000..11c2e62e5bca --- /dev/null +++ b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/ad-youngs_modulus_poissons_ratio_test.i @@ -0,0 +1,98 @@ +[Mesh] + type = GeneratedMesh + dim = 3 +[] + +[GlobalParams] + displacements = 'disp_x disp_y disp_z' +[] + +[Variables] + [./disp_x] + [../] + [./disp_y] + [../] + [./disp_z] + [../] +[] + +[AuxVariables] + [./stress_11] + order = CONSTANT + family = MONOMIAL + [../] +[] + +[Modules/TensorMechanics/Master] + [./all] + strain = SMALL + add_variables = true + use_automatic_differentiation = true + [../] +[] + +[AuxKernels] + [./stress_11] + type = RankTwoAux + variable = stress_11 + rank_two_tensor = stress + index_j = 1 + index_i = 1 + [../] +[] + +[BCs] + [./bottom] + type = ADPresetBC + variable = disp_y + boundary = bottom + value = 0 + [../] + [./left] + type = ADPresetBC + variable = disp_x + boundary = left + value = 0 + [../] + [./back] + type = ADPresetBC + variable = disp_z + boundary = back + value = 0 + [../] + [./top] + type = ADPresetBC + variable = disp_y + boundary = top + value = 0.001 + [../] +[] + +[Materials] + [./stress] + type = ADComputeLinearElasticStress + [../] + [./elasticity_tensor] + type = ComputeIsotropicElasticityTensor + poissons_ratio = 0.1 + youngs_modulus = 1e6 + [../] +[] + +[Preconditioning] + [./SMP] + type = SMP + full = true + [../] +[] + +[Executioner] + type = Steady + l_max_its = 20 + nl_max_its = 10 + solve_type = NEWTON +[] + +[Outputs] + exodus = true +[] diff --git a/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-2D-axisymmetric_rz_test_out.e b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-2D-axisymmetric_rz_test_out.e new file mode 120000 index 000000000000..5591ae82e1d3 --- /dev/null +++ b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-2D-axisymmetric_rz_test_out.e @@ -0,0 +1 @@ +2D-axisymmetric_rz_test_out.e \ No newline at end of file diff --git a/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-bulk_modulus_shear_modulus_test_out.e b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-bulk_modulus_shear_modulus_test_out.e new file mode 120000 index 000000000000..25c6c61046e8 --- /dev/null +++ b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-bulk_modulus_shear_modulus_test_out.e @@ -0,0 +1 @@ +bulk_modulus_shear_modulus_test_out.e \ No newline at end of file diff --git a/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-lambda_shear_modulus_test_out.e b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-lambda_shear_modulus_test_out.e new file mode 120000 index 000000000000..a34931b5bb0a --- /dev/null +++ b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-lambda_shear_modulus_test_out.e @@ -0,0 +1 @@ +lambda_shear_modulus_test_out.e \ No newline at end of file diff --git a/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-youngs_modulus_poissons_ratio_test_out.e b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-youngs_modulus_poissons_ratio_test_out.e new file mode 120000 index 000000000000..0e425a750eac --- /dev/null +++ b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/gold/ad-youngs_modulus_poissons_ratio_test_out.e @@ -0,0 +1 @@ +youngs_modulus_poissons_ratio_test_out.e \ No newline at end of file diff --git a/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/tests b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/tests index d7232212b6bb..a32daf292036 100644 --- a/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/tests +++ b/modules/tensor_mechanics/test/tests/isotropic_elasticity_tensor/tests @@ -26,4 +26,74 @@ requirement = 'The ComputeElasticityTensor class shall correctly compute the elasticity tensor for an isotropic axisymmetric problem.' design = 'ComputeElasticityTensor.md' [../] + + [./ad-lambda_shear] + type = Exodiff + input = 'ad-lambda_shear_modulus_test.i' + exodiff = 'ad-lambda_shear_modulus_test_out.e' + requirement = 'The ComputeIsotropicElasticityTensor class shall correctly compute the elasticity tensor from the lambda and shear modulus for an isotropic material using AD formulations.' + [../] + [./ad-youngs_poissons] + type = Exodiff + input = 'ad-youngs_modulus_poissons_ratio_test.i' + exodiff = 'ad-youngs_modulus_poissons_ratio_test_out.e' + requirement = "The ComputeIsotropicElasticityTensor class shall correctly compute the elasticity tensor from the Young's modulus and Poisson's ratio for an isotropic material using AD formulations." + [../] + [./ad-bulk_shear] + type = Exodiff + input = 'ad-bulk_modulus_shear_modulus_test.i' + exodiff = 'ad-bulk_modulus_shear_modulus_test_out.e' + requirement = 'The ComputeIsotropicElasticityTensor class shall correctly compute the elasticity tensor from their bulk modulus and shear modulus for an isotropic material using AD formulations.' + [../] + [./ad-axisymmetric_rz] + type = Exodiff + input = 'ad-2D-axisymmetric_rz_test.i' + exodiff = 'ad-2D-axisymmetric_rz_test_out.e' + requirement = 'The ComputeElasticityTensor class shall correctly compute the elasticity tensor for an isotropic axisymmetric problem.' + [../] + + [./ad-lambda_shear-jac] + type = PetscJacobianTester + input = 'ad-lambda_shear_modulus_test.i' + run_sim = 'True' + ratio_tol = 1e-8 + difference_tol = 1e-8 + petsc_version = '>=3.9.4' + issues = '#12650' + design = 'jacobian_definitions.md' + requirement = 'The ComputeIsotropicElasticityTensor class shall correctly compute the elasticity tensor from the lambda and shear modulus for an isotropic material using AD formulations and produce a perfect Jacobian.' + [../] + [./ad-youngs_poissons-jac] + type = PetscJacobianTester + input = 'ad-youngs_modulus_poissons_ratio_test.i' + run_sim = 'True' + ratio_tol = 1e-8 + difference_tol = 1e-8 + petsc_version = '>=3.9.4' + issues = '#12650' + design = 'jacobian_definitions.md' + requirement = "The ComputeIsotropicElasticityTensor class shall correctly compute the elasticity tensor from the Young's modulus and Poisson's ratio for an isotropic material using AD formulations and produce a perfect Jacobian." + [../] + [./ad-bulk_shear-jac] + type = PetscJacobianTester + input = 'ad-bulk_modulus_shear_modulus_test.i' + run_sim = 'True' + ratio_tol = 1e-8 + difference_tol = 1e-8 + petsc_version = '>=3.9.4' + issues = '#12650' + design = 'jacobian_definitions.md' + requirement = 'The ComputeIsotropicElasticityTensor class shall correctly compute the elasticity tensor from their bulk modulus and shear modulus for an isotropic material using AD formulations and produce a perfect Jacobian.' + [../] + [./ad-axisymmetric_rz-jac] + type = PetscJacobianTester + input = 'ad-2D-axisymmetric_rz_test.i' + run_sim = 'True' + ratio_tol = 1e-8 + difference_tol = 1e-8 + petsc_version = '>=3.9.4' + issues = '#12650' + design = 'jacobian_definitions.md' + requirement = 'The ComputeElasticityTensor class shall correctly compute the elasticity tensor for an isotropic axisymmetric problem and produce a perfect Jacobian.' + [../] []