Strain-Stress calculation

239 views
Skip to first unread message

martin.ortiz...@gmail.com

unread,
Jul 15, 2020, 9:57:18 AM7/15/20
to moose-users

Dear all,

I am solving analytically and in moose a simple 2d beam problem using plane strain and plane stress.

For the plane strain case, I get the same results (computationally and analytically) for the strains (εxx, εxy, εyy) and stresses (σxx, σxy, σyy), but different von-mises stress. Can you explain me how the von mises stress is computed in moose? I am using the following equation for the analytical calculation (at the gauss points):
σvm = sqrt(σxx^2 + σyy^2 - σxx*σyy + 3τxy^2)

For the plain stress case, I get the same results (computationally and analytically) for the strains (εxy, εyy) and stresses (σxy, σyy), but different von-mises stress, σxx and εxx. Can you suggest what I might be doing wrong?

I am not sure if my input files are correct (see below).

Thanks in advance


plane strain:
[GlobalParams]
  displacements = 'moose_disp_x moose_disp_y'
[]

[Mesh]
  type = FileMesh
  # file = arc_tr1_coarse.msh
  file = arc_tr1_medium.msh
  # file = arc_tr1_fine.msh
[]

[Variables]
  [moose_disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [moose_disp_y]
    order = FIRST
    family = LAGRANGE
  []
[]

[AuxVariables]
  [moose_stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [moose_stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [moose_stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [moose_strain_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [moose_strain_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [moose_strain_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [moose_vm_stress]
    order = CONSTANT
    family = MONOMIAL
  []
[]

[AuxKernels]
  [moose_stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = moose_stress_xx
    index_i = 0
    index_j = 0
  []
  [moose_stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = moose_stress_xy
    index_i = 0
    index_j = 1
  []
  [moose_stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = moose_stress_yy
    index_i = 1
    index_j = 1
  []
  [moose_strain_xx]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = moose_strain_xx
    index_i = 0
    index_j = 0
  []
  [moose_strain_xy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = moose_strain_xy
    index_i = 0
    index_j = 1
  []
  [moose_strain_yy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = moose_strain_yy
    index_i = 1
    index_j = 1
  []
  [moose_stress_vm]
    type = RankTwoScalarAux
    rank_two_tensor = stress
    variable = moose_vm_stress
    scalar_type = VonMisesStress
  []
[]

[Modules/TensorMechanics/Master]
  [./block1]
    planar_formulation = PLANE_STRAIN
    strain = SMALL
    add_variables = true
  [../]
[]

[BCs]
  [fix_x]
    type = DirichletBC
    preset = true
    variable = moose_disp_x
    boundary = 'left right'
    value = 0.0
  []
  [fix_y]
    type = DirichletBC
    preset = true
    variable = moose_disp_y
    boundary = 'left right'
    value = 0.0
  []
  [top]
    type = DirichletBC
    variable = moose_disp_y
    boundary = top_node
    value = -1
  []
[]

[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1.0e7
    poissons_ratio = 0.2
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]

[Executioner]
  type = Steady
  solve_type = 'NEWTON' #'PJFNK'
[]

[Outputs]
  perf_graph = true
  [vtk]
    type = VTK
    use_displaced = true
    interval = 1
  []
[]

plane stress:
[GlobalParams]
  displacements = 'disp_x disp_y'
  out_of_plane_strain = strain_zz
[]

[Mesh]
  type = FileMesh
  file = beam.msh
[]

[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
  []
  [strain_zz]
  []
[]

[AuxVariables]
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [nl_strain_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [vm_stress]
    order = CONSTANT
    family = MONOMIAL
  []
[]

[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
  []
  [strain_xx]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = strain_xx
    index_i = 0
    index_j = 0
  []
  [strain_xy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = strain_xy
    index_i = 0
    index_j = 1
  []
  [strain_yy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = strain_yy
    index_i = 1
    index_j = 1
  []
  [strain_zz]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = nl_strain_zz
    index_i = 2
    index_j = 2
  []
  [stress_vm]
    type = RankTwoScalarAux
    rank_two_tensor = stress
    variable = vm_stress
    scalar_type = VonMisesStress
  []
[]

[Modules/TensorMechanics/Master]
  [./block1]
    planar_formulation = WEAK_PLANE_STRESS
    strain = SMALL
    add_variables = true
  [../]
[]

[BCs]
  [fix_x]
    type = DirichletBC
    preset = true
    variable = disp_x
    boundary = 'left right'
    value = 0.0
  []
  [fix_y]
    type = DirichletBC
    preset = true
    variable = disp_y
    boundary = 'left right'
    value = 0.0
  []
  [top]
    type = DirichletBC
    variable = disp_y
    boundary = top_node
    value = -1
  []
[]

[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1.0e7
    poissons_ratio = 0.2
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]

[Executioner]
  type = Steady
  solve_type = 'NEWTON'
[]

[Outputs]
  perf_graph = true
  [vtk]
    type = VTK
    use_displaced = true
    interval = 1
  []
[]

Gary Hu

unread,
Jul 15, 2020, 10:11:47 AM7/15/20
to moose...@googlegroups.com
I'll comment on plane strain. Plane strain has nonzero out-of-plane stress, but you are neglecting those in your analytical formula.

-Gary

--
You received this message because you are subscribed to the Google Groups "moose-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to moose-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/moose-users/041b8c08-f12d-49b0-b52d-ba343281af4bn%40googlegroups.com.

martin.ortiz...@gmail.com

unread,
Jul 15, 2020, 1:41:38 PM7/15/20
to moose-users
Yes thanks for the reminder. I computed σzz as σzz = ν * (σxx + σyy) and used the general von-mises expression. The results are now identical!
Reply all
Reply to author
Forward
0 new messages