Permalink
Browse files

Merge pull request #12789 from acasagran/stress_intensity_output_12785

Added maximum shear and stress intensity output quantities
  • Loading branch information...
bwspenc committed Feb 6, 2019
2 parents ca167b0 + 6f59921 commit 52f954c4af641b85715068ecae6205e4936e457c
@@ -193,6 +193,26 @@ The scalar type `L2Norm` calculates the L2 normal of a Rank-2 tensor, $T_{ij}$,
s = \sqrt{T_{ij} T_{ij}}
\end{equation}

## Maximum Shear Stress

The scalar type `MaxShear` calculates the maximum shear stress for a Rank-2 tensor, as shown in
[eq:maxshear_scalar_type].
\begin{equation}
\label{eq:maxshear_scalar_type}
\sigma_{max}^{shear} = \frac{\sigma_{max}^{principal} - \sigma_{min}^{principal}}{2}
\end{equation}

#### Example Input File Syntax

!listing modules/tensor_mechanics/test/tests/elastic_patch/elastic_patch.i
block=AuxKernels/max_shear

An AuxVariable is required to store the AuxKernel information. Note that the name of the AuxVariable
is used as the argument for the `variable` input parameter in the `RankTwoScalarAux` block.

!listing modules/tensor_mechanics/test/tests/elastic_patch/elastic_patch.i
block=AuxVariables/max_shear

## Principal Values

### Maximum Principal Quantity
@@ -267,6 +287,29 @@ is used as the argument for the `variable` input parameter in the `RankTwoScalar
!listing modules/porous_flow/test/tests/thm_rehbinder/free_outer.i
block=AuxVariables/stress_rr

## Stress Intensity

The scalar type `StressIntensity` calculates the stress intensity for a Rank-2 tensor, as shown in
[eq:sint_scalar_type].
\begin{equation}
\label{eq:sint_scalar_type}
s = 2 \sigma_{max}^{shear} = \sigma_{max}^{principal} - \sigma_{min}^{principal}
\end{equation}

This quantity is useful in evaluating whether a Tresca failure criteria has
been met and is two times the MaxShear quantity.

#### Example Input File Syntax

!listing modules/tensor_mechanics/test/tests/elastic_patch/elastic_patch.i
block=AuxKernels/sint

An AuxVariable is required to store the AuxKernel information. Note that the name of the AuxVariable
is used as the argument for the `variable` input parameter in the `RankTwoScalarAux` block.

!listing modules/tensor_mechanics/test/tests/elastic_patch/elastic_patch.i
block=AuxVariables/sint

## Triaxiality Stress

The scalar type `TriaxialityStress` finds the ratio of the hydrostatic measure, $T_{hydrostatic}$, to
@@ -225,6 +225,17 @@ Real directionValueTensor(const RankTwoTensor & r2tensor, Point & direction);
* Triaxiality is the ratio of the hydrostatic stress to the von Mises stress.
*/
Real triaxialityStress(const RankTwoTensor & stress);

/*
* maxShear is the maximum shear stress defined as the maximum principal
* stress minus the minimum principal stress.
*/
Real maxShear(const RankTwoTensor & stress);

/*
* stressIntensity is defined as two times the maximum shear stress.
*/
Real stressIntensity(const RankTwoTensor & stress);
}

#endif // RANKTWOSCALARTOOLS_H
@@ -25,7 +25,7 @@ scalarOptions()
return MooseEnum("VonMisesStress EffectiveStrain Hydrostatic L2norm MaxPrincipal "
"MidPrincipal MinPrincipal VolumetricStrain FirstInvariant SecondInvariant "
"ThirdInvariant AxialStress HoopStress RadialStress TriaxialityStress "
"Direction");
"Direction MaxShear StressIntensity");
}

Real
@@ -88,6 +88,12 @@ getQuantity(const RankTwoTensor & tensor,
case 15:
val = directionValueTensor(tensor, direction);
break;
case 16:
val = maxShear(tensor);
break;
case 17:
val = stressIntensity(tensor);
break;
default:
mooseError("RankTwoScalarAux Error: Pass valid scalar type - " +
scalarOptions().getRawNames());
@@ -334,4 +340,17 @@ triaxialityStress(const RankTwoTensor & stress)
{
return hydrostatic(stress) / vonMisesStress(stress);
}

Real
maxShear(const RankTwoTensor & stress)
{
Point dummy;
return (maxPrincipal(stress, dummy) - minPrincipal(stress, dummy)) / 2.;
}

Real
stressIntensity(const RankTwoTensor & stress)
{
return 2. * maxShear(stress);
}
}
@@ -148,6 +148,14 @@
order = CONSTANT
family = MONOMIAL
[../]
[./max_shear]
order = CONSTANT
family = MONOMIAL
[../]
[./sint]
order = CONSTANT
family = MONOMIAL
[../]

[] # AuxVariables

@@ -260,6 +268,18 @@
scalar_type = direction
direction = '1 1 1'
[../]
[./max_shear]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = max_shear
scalar_type = MaxShear
[../]
[./sint]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = sint
scalar_type = StressIntensity
[../]


[] # AuxKernels
Binary file not shown.

0 comments on commit 52f954c

Please sign in to comment.