[petsc-users] Performing a coordinate system rotation for the stiffness matrix

Michael Wick michael.wick.1980 at gmail.com
Mon May 31 08:20:02 CDT 2021


Hi PETSc team:

I am considering implementing a skew roller boundary condition for my
elasticity problem. The method is based on this journal paper:
http://inside.mines.edu/~vgriffit/pubs/All_J_Pubs/18.pdf

Or you may find the method in the attached Bathe's slides, pages 9 -10.

Roughly speaking, a (very) sparse matrix T will be created which takes the
shape [ I, O; O, R], where R is a 3x3 rotation matrix. And the original
linear problem K U = F will be modified into (T^t K T) (T^t U) = T^t F. In
doing so, one can enforce a roller boundary condition on a slanted surface.

I think it can be an easy option if I can generate the T matrix and do two
matrix multiplications to get T^t K T. I noticed that there is a MatPtAP
function. Yet, after reading a previous discussion, it seems that this
function is not designed for this purposes (
https://lists.mcs.anl.gov/pipermail/petsc-users/2018-June/035477.html).

I assume I can only call MatMatMult & MatTransposeMatMult to do this job,
correct? Is there any existingly PETSc function to do T^t K T in one call?

Thanks,

Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210531/e810d0e9/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MITRES2_002S10_lec03.pdf
Type: application/pdf
Size: 286742 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210531/e810d0e9/attachment-0001.pdf>


More information about the petsc-users mailing list