View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000697 | OpenFOAM | Bug | public | 2012-12-07 14:14 | 2016-02-02 18:39 |
Reporter | Assigned To | henry | |||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | no change required | ||
Platform | Linux | OS | Ubuntu server | OS Version | 12.04 LTS |
Summary | 0000697: calculation of shear stress for solid mechanics: stressAnalysis; calculateStress.H | ||||
Description | As 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! | ||||
Tags | No tags attached. | ||||
|
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. |
|
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 |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-12-07 14:14 |
|
New Issue | |
2012-12-14 13:28 |
|
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 |