- **OpenFOAM Programming & Development**
(*https://www.cfd-online.com/Forums/openfoam-programming-development/*)

- - **Magnitude of a tensor**
(*https://www.cfd-online.com/Forums/openfoam-programming-development/113412-magnitude-tensor.html*)

Magnitude of a tensorDear all,
I would like to share your opinion on my doubt. - The rate of strain tensor is written as(if i have not understand wrongly) : E=symm(grad(U))=1/2[grad(U)+grad(U)^T].......................(1)- According to linear algebra the magnitude of any tensor S is:| S|=sqrt(2S:S) .........................(2)- According to Eq. (2) the magnitude of rate of strain tensor is: | E| = sqrt(2E:E). ..............................(3) = sqrt(2*(E_ij*E_ij))...................... (4) - In OpenFOAM notation the magnitude of rate of strain tensor can be written as: | E|=sqrt(2*symm(grad(U))).......................(5) But for the testing purpose i defined a Tensor Q as [1 0 0 0 0.8 0 0 0 0.5]. According to Eq. (2), it's magnitude is 1.944222. But the OpenFOAM is giving 1.3747727.So the definition of the magnitude of tensor according to OpenFOAM is: | S| = sqrt(S:S)=sqrt(S_ij*S_ij)...........................(6)Which contradicts Eq. (2). Can any one clarify my doubt and how to write rate of strain tensor in OpenFOAM notation. Thanks in advance. yours Mallikarjuna Reddy |

Hi,
As you wrote, the magnitude of a tensor is defined in OpenFOAM as eq.(6). This is also described in the programmer's guide p-16. Fumiya |

Hi Fumiya
Thanks for quick response. But in most of the books the shear rate is written as | E| = sqrt(2E:E)where rate of strain tensor is: E=symm(grad(U))=1/2[grad(U)+grad(U)^T]So according to OpenFOAM notation, the shear rate will be | E| = sqrt(E:E) = sqrt(magSqr(symm(fvc::grad(U))))Could you please clarify whether this notation is correct or not. Thanks Mallikarjuna Reddy |

I don't understand why the magnitude of tensor should be twice its double contraction?
As a simple oppose example I can name vectors which are first order tensor and its magnitude would be sqrt(Ux^2+Uy^2+Uz^2). Still you may have shear stress right as: | E| = sqrt(E:E) = sqrt(2*magSqr(symm(fvc::grad(U)))) |

I have the same question here.
In viscosityModel.C, strain rate is defined as Code:
`Foam::tmp<Foam::volScalarField> Foam::viscosityModel::strainRate() const` Code:
`template<class Cmpt>` mag(T) = sqrt(T : T) .By trusting the programmer's guide, shouldn't the strain rate be defined as E = mag(symm(grad(U))) ,instead of E = sqrt(2.0)*mag(symm(grad(U))) ?Why is this sqrt(2) there? |

Sqrt(2)Quote:
I'm a few months late here, but I think you have asked an important question. I worked this out once before but forgot my conclusion, so it's worth revisiting. First, consider the definition of the (scalar) strain rate in 2D: gamma_dot = U/y Now, we would like a way to calculate the scalar strain rate in 3D tensor notation which will give us the same result. For instance, imagine a Couette flow, where: Code:
`grad(U) = ` Code:
`E = 1/2[grad(U)+grad(U)^T]` Code:
`sqrt(E:E)` Code:
`gamma_dot = sqrt(2 E:E)` Does anyone else have references that provide further comments on the definition of the scalar strain rate in 3D tensor notation? Is it common to define the magnitude of a tensor A as |A| = sqrt(2 A:A)? Thanks, -Nuc P.S. See also this thread: http://www.cfd-online.com/Forums/ope...1-vs-15-a.html |

This is still a mystery for me. I've got to the same point as you have. I cannot prove the equality in a reasonable way, just by the sanity check.
I've got to these relations with Einstein's notation: mag(grad( u)) = sqrt( (du_i/dx_j)^2 )mag(grad( E)) = 0.5 * sqrt( (du_i/dx_j + du_j/dx_i)^2 )mag(grad( E)) = 0.5 * sqrt( (du_i/dx_j) ^2 + 2*(du_i/dx_j)*(du_j/dx_i) + (du_j/dx_i)^2 )There is another thing, the more rational way of normalizing the shear rate at any reference frame is to use the second invariant of the strain rate tensor II = tr( E·E) = tr(E²) = E:E |

I think that I might have figure out the confusion here.
The magnitude of a tensor is: mag( T) = sqrt(T:T) = sqrt(tr(T·T))In the case of the strain rate, that is valid as well. However, the strain rate tensor is used for obtaining a scalar named absolute shear rate G, which is used as an analogy to the unidimensional shear rate \dot{\gamma} = dv/dx used in viscosity tests. This is done because viscosity tests are always unidimensional, but the rheological properties are extrapolated to 3D cases. This is done from the energy dissipation function phi = tau : grad(v) where tau = 2*mu*EIn simple shear flow phi = mu*grad( v):grad(v) = mu*\dot{\gamma}*\dot{\gamma}I have done the derivation of E:grad(v). It is lengthy, but it resulted inE:grad(v) = E:E - 1/3*div(v)*div(v)The second part of the right had side accounts the compressibility. It is zero in incompressible cases. I think that they consider phi = mu * (2* E:E) = mu * G*Gwhich yields G = sqrt(2* E:E) = sqrt(2) * mag(symm(grad(v)))I might be wrong in some of my statements. I haven't found any literature directly comparing G and E.Rudolf |

All times are GMT -4. The time now is 01:49. |