<div dir="ltr">Hello everybody.<div><br></div><div>First, I am taking this example from the petsc-dev version, I am not sure if I should have posted this in another mail-list, if so, my apologies. </div><div><br></div><div>
In this example, for the elasticity case, function g3 is built as:</div><div><br></div><div><div>void g3_elas(const PetscScalar u[], const PetscScalar gradU[], const PetscScalar a[], const PetscScalar gradA[], const PetscReal x[], PetscScalar g3[])</div>
<div>{</div><div>  const PetscInt dim   = spatialDim;</div><div>  const PetscInt Ncomp = spatialDim;</div><div>  PetscInt       compI, d;</div><div><br></div><div>  for (compI = 0; compI < Ncomp; ++compI) {</div><div>    for (d = 0; d < dim; ++d) {</div>
<div>      g3[((compI*Ncomp+compI)*dim+d)*dim+d] = 1.0;</div><div>    }</div><div>  }</div><div>}</div><div><br></div><div style>Therefore, a fourth-order tensor is represented as a vector. I was checking the indices for different iterator values, and they do not seem to match the vectorization that I have in mind. For a two dimensional case, the indices for which the value is set as 1 are:</div>
<div style><br></div><div style>compI = 0 , d = 0      ----->     index = 0</div><div style>compI = 0 , d = 1      ----->     index = 3<br></div><div style>compI = 1 , d = 0      ----->     index = 12<br></div><div style>
compI = 1 , d = 1      ----->     index = 15<br></div><div style><br></div><div style>The values for the first and last seem correct to me, but they other two are confusing me. I see that this elasticity tensor (which is the derivative of the gradient by itself in this case) would be a four by four identity matrix in its matrix representation, so the indices in between would be 5 and 10 instead of 3 and 12, if we put one column on top of each other. </div>
<div style><br></div><div style>I guess my question is then, how did you vectorize the fourth order tensor? </div><div style><br></div><div style>Thanks in advance</div><div style>Miguel</div><div><br></div>-- <br><div dir="ltr">
<font face="verdana, sans-serif"><b>Miguel Angel Salazar de Troya</b></font><span><font color="#888888"><br><font face="arial,helvetica,sans-serif">Graduate Research Assistant<br>Department of Mechanical Science and Engineering<br>
</font>University of Illinois at Urbana-Champaign<br>(217) 550-2360<br>
<a href="mailto:salaza11@illinois.edu" target="_blank">salaza11@illinois.edu</a></font></span><div><br></div></div>
</div></div>