View Issue Details

IDProjectCategoryView StatusLast Update
0000697OpenFOAMBugpublic2016-02-02 18:39
Reporteruser158Assigned Tohenry  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionno change required 
PlatformLinuxOSUbuntu serverOS Version12.04 LTS
Summary0000697: calculation of shear stress for solid mechanics: stressAnalysis; calculateStress.H
DescriptionAs far as I know, the calculation of the von Mises shear stress is the same in solid mechanics as for fluid mechanics, namely sqrt(S:S/2). However, in both

solidDisplacementFoam and solidEquilibriumDisplacementFoam, in the file
calculateStress.H, then it is calculated as sqrt(3*S:S/2). That is, sigmaEq is currently calculated as sqrt((3.0/2.0)*magSqr(dev(sigma))) and not as
sqrt((1.0/2.0)*magSqr(dev(sigma)))

[S = dev(sigma) = sigma - (tr(sigma)/3)I and magSqr(S) = S:S]

Thus, the code "sqrt((3.0/2.0)*magSqr(dev(sigma)))" should be replaced with
"sqrt((1.0/2.0)*magSqr(dev(sigma)))".

Am I wrong here? If so, sorry for the inconvenience!
TagsNo tags attached.

Activities

user158

2012-12-14 13:28

  ~0001838

I have bee looking into my books in continuum mechanics. In [1] (chapter 8.7) as well as on page 364 in [2], then in relation to strain hardening (and thus plasticity) there is something called “equivalent stress” (or effective stress), which is given as

sigma_eq = sqrt(3*S:S/2)

this is used in calculateStress.H as "sqrt((3.0/2.0)*magSqr(dev(sigma)))" and correctly named “sigmaEq”. I am not sure if this stress is relevant for linear (Hooks) elasticity, since it is used in relation to strain hardening and thus plasticity.

But as a suggestion, one could keep the current (above) definition, but also include the von Mises shear stress, called for example sigmaVonMise (to make the user of the code to think), with the definition:

        volScalarField sigmaVonMises
        (
            IOobject
            (
                "sigmaVonMises",
                runTime.timeName(),
                mesh,
                IOobject::NO_READ,
                IOobject::AUTO_WRITE
            ),
            sqrt((1.0/2.0)*magSqr(dev(sigma)))
        );

        Info<< "Max sigmaVonMise = " << max(sigmaVonMise).value()
            << endl;

Hope this is of help...

Reference:
[1] G. E. Mase. Schaums Outline Series: Theory and Problems of Continuum Mechanics. McGraw-Hill Inc., USA, 1970.
[2] L. E. Malvern. Introduction to the Mechanics of Continuous Medium. Prentice-Hall, Inc., USA, 1969.

chris

2015-04-03 11:49

manager   ~0004561

I think this is correct for multiaxial loading conditions, see:
http://en.wikipedia.org/wiki/Von_Mises_yield_criterion#Reduced_von_Mises_equation_for_different_stress_conditions

Issue History

Date Modified Username Field Change
2012-12-07 14:14 user158 New Issue
2012-12-14 13:28 user158 Note Added: 0001838
2015-04-03 11:49 chris Note Added: 0004561
2016-02-02 18:39 henry Status new => closed
2016-02-02 18:39 henry Assigned To => henry
2016-02-02 18:39 henry Resolution open => no change required