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
[]
[]