:orphan: # DMPlexCreateBasisRotation Create an internal transformation from the global basis, used to specify boundary conditions and global solutions, to a local basis, appropriate for discretization integrals and assembly. ## Synopsis ``` #include "petscdmplex.h" PetscErrorCode DMPlexCreateBasisRotation(DM dm, PetscReal alpha, PetscReal beta, PetscReal gamma) ``` ## Input Parameters - ***dm -*** The `DM` - ***alpha -*** The first Euler angle, and in 2D the only one - ***beta -*** The second Euler angle - ***gamma -*** The third Euler angle ## Note Following https://en.wikipedia.org/wiki/Euler_angles, we will specify Euler angles by extrinsic rotations, meaning that we rotate with respect to a fixed initial coordinate system, the local basis (x-y-z). The global basis (X-Y-Z) is reached as follows ```none The XYZ system rotates about the z axis by alpha. The X axis is now at angle alpha with respect to the x axis. The XYZ system rotates again about the x axis by beta. The Z axis is now at angle beta with respect to the z axis. The XYZ system rotates a third time about the z axis by gamma. ``` ## See Also [](ch_unstructured), `DM`, `DMPLEX`, `DMPlexGlobalToLocalBasis()`, `DMPlexLocalToGlobalBasis()` ## Level developer ## Location src/dm/impls/plex/plexfem.c ## Examples src/snes/tutorials/ex71.c
src/snes/tutorials/ex76.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexfem.c) [Index of all DMPlex routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)