Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,10 @@ The coordinate type in the Problem block of the input file must be set to

The common use of the `ComputeAxisymmetric1DFiniteStrain` class is with the
[Generalized Plane Strain](solid_mechanics/generalized_plane_strain.md) system;
this type of simulation uses the scalar strain variables
this type of simulation uses the scalar strain variables. The material is created automatically by the
solid mechanics `Physics` when a small strain model is selected with an axisymmetric coordinate system.

!listing modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_finite.i block=Materials/strain
!listing modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_finite.i block=Mesh Physics

which uses a scalar variable for the coupled out-of-plane strain; the argument
for the `scalar_out_of_plane_strain` parameter is the name of the scalar strain
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,10 @@ The coordinate type in the Problem block of the input file must be set to

The common use of the `ComputeAxisymmetric1DIncrementalStrain` class is with the
[Generalized Plane Strain](solid_mechanics/generalized_plane_strain.md) system;
this type of simulation uses the scalar strain variables
this type of simulation uses the scalar strain variables. The `ComputeAxisymmetric1DIncrementalStrain`
is automatically created by the solid mechanics action when specifying and incremental strain model in an axisymmetric coordinate system.

!listing modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_incremental.i block=Materials/strain
!listing modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_incremental.i block=Physics/SolidMechanics/QuasiStatic

which uses a scalar variable for the coupled out-of-plane strain; the argument
for the `scalar_out_of_plane_strain` parameter is the name of the scalar strain
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,10 @@ The coordinate type in the Problem block of the input file must be set to

The common use of the `ComputeAxisymmetric1DSmallStrain` class is with the
[Generalized Plane Strain](solid_mechanics/generalized_plane_strain.md) system;
this type of simulation uses the scalar strain variables
this type of simulation uses the scalar strain variables. The material is creates automatically by the
solid mechanics `Physics` when a small strain model is selected with an axisymmetric coordinate system.

!listing modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_small.i block=Materials/strain
!listing modules/solid_mechanics/test/tests/1D_axisymmetric/axisymm_gps_small.i block=Mesh Physics

which uses a scalar variable for the coupled out-of-plane strain; the argument
for the `scalar_out_of_plane_strain` parameter is the name of the scalar strain
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,12 +179,6 @@ selected strain formulation. We recommend that users employ the
[Solid Mechanics Physics](/Physics/SolidMechanics/QuasiStatic/index.md) whenever possible
to ensure consistency between the test function gradients and the strain formulation selected.

Although not recommended, it is possible to directly use the `ComputeFiniteStrain` material
in the input file.

!listing modules/solid_mechanics/test/tests/volumetric_deform_grad/elastic_stress.i
block=Materials/strain

When directly using `ComputeFiniteStrain` in an input file as shown above, the
[StressDivergenceTensors](/StressDivergenceTensors.md) kernel must be modified
from the default by setting the parameter `use_displaced_mesh = true`. This setting
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,6 @@ selected strain formulation. We recommend that users employ the
[Solid Mechanics Physics](/Physics/SolidMechanics/QuasiStatic/index.md) whenever possible
to ensure consistency between the test function gradients and the strain formulation selected.

Although not recommended, it is possible to directly use the `ComputeIncrementalStrain` material
in the input file.

!listing modules/solid_mechanics/test/tests/thermal_expansion/multiple_thermal_eigenstrains.i block=Materials/small_strain

!syntax parameters /Materials/ComputeIncrementalStrain

!syntax inputs /Materials/ComputeIncrementalStrain
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,6 @@ selected strain formulation. We recommend that users employ the
[Solid Mechanics Physics](/Physics/SolidMechanics/QuasiStatic/index.md) whenever possible
to ensure consistency between the test function gradients and the strain formulation selected.

Although not recommended, it is possible to directly use the `ComputeSmallStrain` material in an
input file.

!listing modules/solid_mechanics/test/tests/elastic_patch/elastic_patch_quadratic.i
block=Materials/strain

!syntax parameters /Materials/ComputeSmallStrain

!syntax inputs /Materials/ComputeSmallStrain
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,9 @@ The `GeneralizedPlaneStrain` Action is used to construct the kernels, user objec
### Subblocks

The subblocks of the GeneralizedPlaneStrain action are what triggers MOOSE objects to be built.
If a generalized plane strain model is applied for the whole simulation domain, a single subblock should be used

!listing modules/solid_mechanics/test/tests/generalized_plane_strain/out_of_plane_pressure.i block=Physics/SolidMechanics/GeneralizedPlaneStrain

if different mesh subdomain has different generalized plane strain model, multiple subblocks with subdomain restrictions can be used.
If a generalized plane strain model is applied for the whole simulation domain, a single subblock should be used.
If different mesh subdomain has different generalized plane strain model, multiple subblocks with subdomain restrictions can be used.
This syntax is paired with the `[Kernels/SolidMechanics]` syntax which is deprecated.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So is there no way to do this with non-deprecated syntax? That is an important feature, so we should properly support that if we can't. Can't we do this with multiple blocks with generalized plane strain nested under
[Physics/SolidMechanics/QuasiStatic]?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dont think but feel free to try it

Copy link
Copy Markdown
Contributor

@GiudGiud GiudGiud Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just tried

do you see an error in that? This does not converge (in generalized_plain_strain_squares.i)
I think the other action syntax (all in a single Physics/SolidMechanics/QuasiStatic with the generalized_plain_.. strain parameters) is nicer


[Physics]
  [SolidMechanics]
    [./GeneralizedPlaneStrain]
      [./gps1]
        use_displaced_mesh = true
        displacements = 'disp_x disp_y' # moved to globalParams
        scalar_out_of_plane_strain = scalar_strain_zz1
        block = '1'
      [../]
      [./gps2]
        use_displaced_mesh = true
        displacements = 'disp_x disp_y'
        scalar_out_of_plane_strain = scalar_strain_zz2
        block = '2'
      [../]
    [../]

    [QuasiStatic]
      [gps1]
        use_displaced_mesh = false
        temperature = temp
        save_in = 'saved_x saved_y'

        strain = small
        incremental = false
        eigenstrain_names = eigenstrain
        block = '1'
      []
      [gps2]
        use_displaced_mesh = false
        temperature = temp
        save_in = 'saved_x saved_y'

        strain = small
        incremental = false
        eigenstrain_names = eigenstrain
        block = '2'
      []
    []
  []
[]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@GiudGiud can you point me to the test case you tried this on? I can take a look.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

modules/solid_mechanics/test/tests/generalized_plane_strain/generalized_plane_strain_squares.i

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bwspenc , @GiudGiud - i have been away on holidays, but am back to work now. Is there anything i need to do to progress this PR?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you check if there is a way to make this syntax work

Physics]
  [SolidMechanics]
    [./GeneralizedPlaneStrain

without using the deprecated Kernels/SolidMechanics syntax, but with the Physics syntax instead Physics/SolidMechanics/QuasiStatic

I imagine not. I imagine the only way is with the manual Kernels definition or the Kernels/SolidMechanics

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, @GiudGiud , i hope to do that in the next 7 hours, and will report back here.

Copy link
Copy Markdown
Contributor Author

@WilkAndy WilkAndy Mar 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @GiudGiud ,

I believe it is possible, with input files along the lines of:

[Physics/SolidMechanics/QuasiStatic]
  [gps1]
    add_variables = true
    strain = small
    incremental = false
    planar_formulation = GENERALIZED_PLANE_STRAIN
    scalar_out_of_plane_strain = scalar_strain_zz1
    temperature = temp
    eigenstrain_names = eigenstrain
    save_in = 'saved_x saved_y'
    block = 1
  []
 []

However, this frequently gives EXODIFFs because of some changes between the old and new Actions. Eg, using Problem/type=DumpObjectsProblem for the file test/tests/generalized_plane_strain/generalized_plane_strain_squares.i reveals the following changes:

OLD:

[Kernels]
  [TM_SolidMechanics0]
    type = StressDivergenceTensors
    block = '1 2'
    component = 0
    displacements = 'disp_x disp_y'
    save_in = saved_x
    temperature = temp
    use_displaced_mesh = false
    variable = disp_x
  []

NEW (with the QuasiStatic Physics) also includes eigenstrain_names = eigenstrain .

OLD:

[Kernels]
  [gps1GeneralizedPlaneStrainOffDiag_disp0]
    type = GeneralizedPlaneStrainOffDiag
    block = 1
    displacements = 'disp_x disp_y'
    scalar_out_of_plane_strain = scalar_strain_zz1
    use_displaced_mesh = true
    variable = disp_x
  []

NEW also includes temperature = temp and has use_displaced_mesh = false

OLD:

[UserObjects]
  [gps1_GeneralizedPlaneStrainUserObject]
    type = GeneralizedPlaneStrainUserObject
    block = 1
    execute_on = 'LINEAR NONLINEAR'
    use_displaced_mesh = true
  []
[]

NEW has use_displaced_mesh = false.

I feel uncomfortable making changes with gold files, and so on.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bwspenc thoughts?

I think what we have here works.
It's either physics syntax with the unique way of setting it up, or manual kernels + materials syntax. None of the options in between (Kernels/SolidMechanics or one physics for GeneralizedPlainStrain and one for QuasiStatic) are sanctioned (either deprecated or slightly wrong)


!listing modules/solid_mechanics/test/tests/generalized_plane_strain/generalized_plane_strain_squares.i block=Physics/SolidMechanics/GeneralizedPlaneStrain

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,13 @@ The `GeneralizedPlaneStrain` Action is used to construct the kernels, user objec
### Subblocks

The subblocks of the GeneralizedPlaneStrain action are what triggers MOOSE objects to be built.
If a generalized plane strain model is applied for the whole simulation domain, a single subblock should be used

!listing modules/solid_mechanics/test/tests/generalized_plane_strain/out_of_plane_pressure.i block=Physics/SolidMechanics/GeneralizedPlaneStrain

if different mesh subdomain has different generalized plane strain model, multiple subblocks with subdomain restrictions can be used.
If a generalized plane strain model is applied for the whole simulation domain, a single subblock should be used.
If different mesh subdomain has different generalized plane strain model, multiple subblocks with subdomain restrictions can be used.
This syntax is paired with the `[Kernels/SolidMechanics]` syntax which is deprecated.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as my comment on this in another file.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is the same action, just different syntax


!listing modules/solid_mechanics/test/tests/generalized_plane_strain/generalized_plane_strain_squares.i block=Physics/SolidMechanics/GeneralizedPlaneStrain

An example of using generalized plane strain action through the Solid Mechanics quasi-static physics block with a different `out_of_plane_direction` than the default of $z$ is given by:
The non-deprecated syntax is to use the generalized plane strain action through the Solid Mechanics quasi-static physics block with a different `out_of_plane_direction` than the default of $z$ is given by:

!listing modules/solid_mechanics/test/tests/2D_different_planes/gps_xz.i block=Physics/SolidMechanics/QuasiStatic/generalized_plane_strain

Expand Down
19 changes: 9 additions & 10 deletions modules/solid_mechanics/examples/bridge/bridge.i
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,14 @@
variable = disp_y
value = -9.81
[../]
[./TensorMechanics]
#Stress divergence kernels
displacements = 'disp_x disp_y disp_z'
[]

[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = false
incremental = false
strain = small
block = 1
[../]
[]

Expand Down Expand Up @@ -99,7 +104,7 @@
[]

[Materials]
active = 'density_concrete stress strain elasticity_tensor_concrete'
active = 'density_concrete stress elasticity_tensor_concrete'
[./elasticity_tensor_steel]
#Creates the elasticity tensor using steel parameters
youngs_modulus = 210e9 #Pa
Expand All @@ -114,12 +119,6 @@
type = ComputeIsotropicElasticityTensor
block = 1
[../]
[./strain]
#Computes the strain, assuming small strains
type = ComputeSmallStrain
block = 1
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
#Computes the stress, using linear elasticity
type = ComputeLinearElasticStress
Expand Down
19 changes: 9 additions & 10 deletions modules/solid_mechanics/examples/bridge/bridge_large_strain.i
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,14 @@
variable = disp_y
value = -9.81
[../]
[./SolidMechanics]
#Stress divergence kernels
displacements = 'disp_x disp_y disp_z'
[]

[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = false
incremental = true
strain = finite
block = 1
[../]
[]

Expand Down Expand Up @@ -99,7 +104,7 @@
[]

[Materials]
active = 'density_steel stress strain elasticity_tensor_steel'
active = 'density_steel stress elasticity_tensor_steel'
[./elasticity_tensor_steel]
#Creates the elasticity tensor using steel parameters
youngs_modulus = 210e9 #Pa
Expand All @@ -114,12 +119,6 @@
type = ComputeIsotropicElasticityTensor
block = 1
[../]
[./strain]
#Computes the strain, assuming small strains
type = ComputeFiniteStrain
block = 1
displacements = 'disp_x disp_y disp_z'
[../]
[./stress]
#Computes the stress, using linear elasticity
type = ComputeFiniteStrainElasticStress
Expand Down
16 changes: 6 additions & 10 deletions modules/solid_mechanics/examples/cframe_iga/cframe_iga.i
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,12 @@
[]
[]

[Kernels]
[SolidMechanics]
#Stress divergence kernels
displacements = 'disp_x disp_y disp_z'
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
add_variables = false
incremental = false
strain = small
[]
[]

[AuxVariables]
Expand Down Expand Up @@ -132,11 +133,6 @@
poissons_ratio = 0.33
type = ComputeIsotropicElasticityTensor
[]
[strain]
#Computes the strain, assuming small strains
type = ComputeSmallStrain
displacements = 'disp_x disp_y disp_z'
[]
[stress]
#Computes the stress, using linear elasticity
type = ComputeLinearElasticStress
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

[GlobalParams]
displacements = disp_x
scalar_out_of_plane_strain = scalar_strain_yy
[]

[Mesh]
Expand All @@ -11,8 +10,6 @@
[]

[Variables]
[./disp_x]
[../]
[./scalar_strain_yy]
order = FIRST
family = SCALAR
Expand Down Expand Up @@ -62,17 +59,14 @@
[../]
[]

[Kernels]
[SolidMechanics]
[../]
[]

[Physics]
[SolidMechanics]
[./GeneralizedPlaneStrain]
[./gps]
[../]
[../]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = finite
planar_formulation = GENERALIZED_PLANE_STRAIN
scalar_out_of_plane_strain = scalar_strain_yy
eigenstrain_names = eigenstrain
[../]
[]

Expand Down Expand Up @@ -151,13 +145,6 @@
youngs_modulus = 3600
poissons_ratio = 0.2
[../]

[./strain]
type = ComputeAxisymmetric1DFiniteStrain
eigenstrain_names = eigenstrain
scalar_out_of_plane_strain = scalar_strain_yy
[../]

[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-6
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

[GlobalParams]
displacements = disp_x
scalar_out_of_plane_strain = scalar_strain_yy
[]

[Mesh]
Expand All @@ -11,8 +10,6 @@
[]

[Variables]
[./disp_x]
[../]
[./scalar_strain_yy]
order = FIRST
family = SCALAR
Expand Down Expand Up @@ -62,17 +59,14 @@
[../]
[]

[Kernels]
[SolidMechanics]
[../]
[]

[Physics]
[SolidMechanics]
[./GeneralizedPlaneStrain]
[./gps]
[../]
[../]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = true
strain = small
planar_formulation = GENERALIZED_PLANE_STRAIN
scalar_out_of_plane_strain = scalar_strain_yy
eigenstrain_names = eigenstrain
[../]
[]

Expand Down Expand Up @@ -151,13 +145,6 @@
youngs_modulus = 3600
poissons_ratio = 0.2
[../]

[./strain]
type = ComputeAxisymmetric1DIncrementalStrain
eigenstrain_names = eigenstrain
scalar_out_of_plane_strain = scalar_strain_yy
[../]

[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-8
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

[GlobalParams]
displacements = disp_x
scalar_out_of_plane_strain = scalar_strain_yy
[]

[Mesh]
Expand All @@ -11,8 +10,6 @@
[]

[Variables]
[./disp_x]
[../]
[./scalar_strain_yy]
order = FIRST
family = SCALAR
Expand Down Expand Up @@ -62,17 +59,14 @@
[../]
[]

[Kernels]
[SolidMechanics]
[../]
[]

[Physics]
[SolidMechanics]
[./GeneralizedPlaneStrain]
[./gps]
[../]
[../]
[Physics/SolidMechanics/QuasiStatic]
[./all]
add_variables = true
incremental = false
strain = small
planar_formulation = GENERALIZED_PLANE_STRAIN
scalar_out_of_plane_strain = scalar_strain_yy
eigenstrain_names = eigenstrain
[../]
[]

Expand Down Expand Up @@ -151,13 +145,6 @@
youngs_modulus = 3600
poissons_ratio = 0.2
[../]

[./strain]
type = ComputeAxisymmetric1DSmallStrain
eigenstrain_names = eigenstrain
scalar_out_of_plane_strain = scalar_strain_yy
[../]

[./thermal_strain]
type = ComputeThermalExpansionEigenstrain
thermal_expansion_coeff = 1e-8
Expand Down
Loading