# Solve strain for given stress in von Mises plasticity

**URL:** <https://discourse.julialang.org/t/solve-strain-for-given-stress-in-von-mises-plasticity/79501>\
**Category:** Specific Domains\
**Tags:** fem, juafem, nonlinearsolve\
**Created:** [April 14, 2022, 5:23pm UTC](https://discourse.julialang.org/t/solve-strain-for-given-stress-in-von-mises-plasticity/79501 "2022-04-14T17:23:46Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![FrootLoops](https://avatars.discourse-cdn.com/v4/letter/f/c4cdca/32.png) [@FrootLoops](https://discourse.julialang.org/u/FrootLoops)\
**Post date:** [April 14, 2022, 5:23pm UTC](https://discourse.julialang.org/t/solve-strain-for-given-stress-in-von-mises-plasticity/79501/1 "2022-04-14T17:23:46Z")

</div>

Hi, I am trying to caculate for a given stress the corresponding strain in the [Von Mises plasticity](https://ferrite-fem.github.io/Ferrite.jl/stable/examples/plasticity/) example. I know that this results in a non-linear equation.

Not notice I have the following equations:

```julia
σᵗ = C ⊡ (ϵ - ϵᵖ)
J₂ = 0.5 * dev(σᵗ) ⊡ dev(σᵗ) # second invariant 
σᵗₑ = sqrt(3.0*J₂) # effective trial-stress (von Mises stress)
σʸ = σ₀ + H * k
φᵗ = σᵗₑ - σʸ # Trial-value of the yield surface

h = H + 3*G
μ = φᵗ / h # plastic multiplier
c1 = 1 - 3G * μ / σᵗₑ
s = c1 * dev(σᵗ) # updated deviatoric stress
σ = s + vol(σᵗ) # updated stress    

```

The only thing which I have not given is \epsilon. Now I reordered and substitute everything:

```julia
σ = (1 - 3G*((sqrt(1.5*dev(C ⊡ (ϵ - ϵᵖ)) ⊡ dev(C ⊡ (ϵ - ϵᵖ))) - (σ₀ + H * k) ) / (H + 3*G) )/ (sqrt(1.5* dev(C ⊡ (ϵ - ϵᵖ)) ⊡ dev(C ⊡ (ϵ - ϵᵖ))))) * dev(C ⊡ (ϵ - ϵᵖ)) + vol(C ⊡ (ϵ - ϵᵖ))     

```

Is there a “nice” way to solve this equation somehow?
