TYPE representing a spatial rotation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
double precision, | private, | DIMENSION(3) | :: | euler_angles |
Euler angles that define the rotation around the axes, in this order |
||
double precision, | private, | DIMENSION(3,3) | :: | inv_r |
Full inverse rotation operator |
||
double precision, | private, | DIMENSION(3,3) | :: | inv_r_x |
Inverse rotation operator around the axis |
||
double precision, | private, | DIMENSION(3,3) | :: | inv_r_y |
Inverse rotation operator around the axis |
||
double precision, | private, | DIMENSION(3,3) | :: | inv_r_z |
Inverse rotation operator around the axis |
||
double precision, | private, | DIMENSION(3,3) | :: | r |
Full rotation operator |
||
double precision, | private, | DIMENSION(3,3) | :: | r_x |
Rotation operator around the axis |
||
double precision, | private, | DIMENSION(3,3) | :: | r_y |
Rotation operator around the axis |
||
double precision, | private, | DIMENSION(3,3) | :: | r_z |
Rotation operator around the axis |
||
double precision, | private, | DIMENSION(3,3) | :: | tr_r |
Transpose of the full inverse rotation operator |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
double precision, | intent(in), | DIMENSION(3) | :: | euler_angles |
Euler angles that define the rotation around the axes, in this order |
spatial_rotation object to be constructed
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
double precision, | intent(in) | :: | alpha |
Euler angle that defines the rotation around the axis |
||
double precision, | intent(in) | :: | beta |
Euler angle that defines the rotation around the axis |
||
double precision, | intent(in) | :: | gamma |
Euler angle that defines the rotation around the axis |
spatial_rotation object to be constructed
Generic procedure to apply the lorentz_transformation as a congruence
Action of the lorentz_transformation as a congruence on a -vector storing the components of a symmetric, purely covariant, tensor
Action of the lorentz_transformation on a -vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lorentz_transformation), | intent(in) | :: | this |
lorentz_transformation object to apply |
||
double precision, | intent(in), | DIMENSION(n_sym4x4) | :: | t |
-vector storing the components of the symmetric tensor to be boosted |
-vector storing the components of the boosted symmetric tensor
Action of the lorentz_transformation as a congruence on a generic purely covariant tensor
Action of the lorentz_transformation on a -vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lorentz_transformation), | intent(in) | :: | this |
lorentz_transformation object to apply |
||
double precision, | intent(in), | DIMENSION(4,4) | :: | t(0:3,0:3) |
tensor to be boosted |
Boosted tensor
Generic procedure to apply the lorentz_transformation as a similarity
Action of the lorentz_transformation as a similarity on a -vector storing the components of a symmetric tensor
Action of the lorentz_transformation on a -vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lorentz_transformation), | intent(in) | :: | this |
lorentz_transformation object to apply |
||
double precision, | intent(in), | DIMENSION(n_sym4x4) | :: | t |
-vector storing the components of the symmetric tensor to be boosted |
-vector storing the components of the boosted symmetric tensor
Action of the lorentz_transformation as a similarity on a generic tensor
Action of the lorentz_transformation on a -vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lorentz_transformation), | intent(in) | :: | this |
lorentz_transformation object to apply |
||
double precision, | intent(in), | DIMENSION(4,4) | :: | t(0:3,0:3) |
tensor to be boosted |
Boosted tensor
Action of the lorentz_transformation on a -vector
Action of the lorentz_transformation on a -vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(lorentz_transformation), | intent(in) | :: | this |
lorentz_transformation object to apply |
||
double precision, | intent(in), | DIMENSION(4) | :: | u(0:3) |
-vector to be boosted |
Boosted -vector
Computes the spatial part of the matrix of the Lorentz
Compute the matrices for the spatial_rotation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(spatial_rotation), | intent(inout) | :: | this |
spatial_rotation object to compuet the matrices for |
||
double precision, | intent(in), | DIMENSION(3) | :: | euler_angles | ||
double precision, | intent(out), | DIMENSION(3,3) | :: | r_x |
Rotation operator around the axis |
|
double precision, | intent(out), | DIMENSION(3,3) | :: | r_y |
Rotation operator around the axis |
|
double precision, | intent(out), | DIMENSION(3,3) | :: | r_z |
Rotation operator around the axis |
|
double precision, | intent(out), | DIMENSION(3,3) | :: | r |
Full rotation operator |
|
double precision, | intent(out), | DIMENSION(4,4) | :: | matrix(0:3,0:3) |
matrix representing the Lorentz boost |
|
double precision, | intent(out), | DIMENSION(3,3) | :: | inv_r_x |
Inverse rotation operator around the axis |
|
double precision, | intent(out), | DIMENSION(3,3) | :: | inv_r_y |
Inverse rotation operator around the axis |
|
double precision, | intent(out), | DIMENSION(3,3) | :: | inv_r_z |
Inverse rotation operator around the axis |
|
double precision, | intent(out), | DIMENSION(3,3) | :: | inv_r |
Inverse of the full rotation operator |
|
double precision, | intent(out), | DIMENSION(4,4) | :: | inv_matrix(0:3,0:3) |
Inverse of the matrix representing the Lorentz boost |
TYPE, EXTENDS(lorentz_transformation):: spatial_rotation
!! TYPE representing a spatial rotation
PRIVATE
DOUBLE PRECISION, DIMENSION(3):: euler_angles
!# Euler angles that define the rotation around the \(x,y,z\) axes,
! in this order
DOUBLE PRECISION, DIMENSION(3,3):: r_x
!! Rotation operator around the \(x\) axis
DOUBLE PRECISION, DIMENSION(3,3):: r_y
!! Rotation operator around the \(y\) axis
DOUBLE PRECISION, DIMENSION(3,3):: r_z
!! Rotation operator around the \(z\) axis
DOUBLE PRECISION, DIMENSION(3,3):: r
!! Full rotation operator
DOUBLE PRECISION, DIMENSION(3,3):: tr_r
!! Transpose of the full inverse rotation operator
DOUBLE PRECISION, DIMENSION(3,3):: inv_r_x
!! Inverse rotation operator around the \(x\) axis
DOUBLE PRECISION, DIMENSION(3,3):: inv_r_y
!! Inverse rotation operator around the \(y\) axis
DOUBLE PRECISION, DIMENSION(3,3):: inv_r_z
!! Inverse rotation operator around the \(z\) axis
DOUBLE PRECISION, DIMENSION(3,3):: inv_r
!! Full inverse rotation operator
CONTAINS
PROCEDURE:: compute_rotation_matrices
!! Computes the spatial part of the matrix of the Lorentz
! boost, and its whole matrix, starting from the vector
! \(p\)
END TYPE spatial_rotation