constructors Submodule

This submodule contains the implementations of the constructors of the TYPES representing the members of the Lorentz group defined in MODULE lorentz_group, presently boosts and spatial rotations

FT 08.12.2022



Uses

  • module~~constructors~~UsesGraph module~constructors constructors module~lorentz_group lorentz_group module~constructors->module~lorentz_group module~utility utility module~constructors->module~utility module~lorentz_group->module~utility tensor tensor module~lorentz_group->tensor constants constants module~utility->constants matrix matrix module~utility->matrix

Contents


Module Procedures

module procedure compute_boost_matrices pure module subroutine compute_boost_matrices(this, p, lambda_s, matrix)

Computes the spatial part of the matrix of the Lorentz boost, and its whole matrix, starting from the vector

Read more…

Arguments

Type IntentOptional Attributes Name
class(lorentz_boost), intent(inout) :: this
double precision, intent(in), DIMENSION(3) :: p

lambdav

double precision, intent(out), DIMENSION(n_sym3x3) :: lambda_s

Spatial part of the Lorentz boost

double precision, intent(out), DIMENSION(4,4) :: matrix(0:3,0:3)

matrix representing the Lorentz boost

module procedure compute_rotation_matrices module subroutine compute_rotation_matrices(this, euler_angles, r_x, r_y, r_z, r, matrix, inv_r_x, inv_r_y, inv_r_z, inv_r, inv_matrix)

Computes the spatial part of the matrix of the Lorentz rotation, and its whole matrix, starting from the vector

Read more…

Arguments

Type IntentOptional Attributes Name
class(spatial_rotation), intent(inout) :: this

spatial_rotation object to compuet the matrices for

double precision, intent(in), DIMENSION(3) :: euler_angles

lambdav

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

module procedure construct_boost module procedure construct_boost()

Construct a boost transformation from the spatial velocity

Read more…

Arguments

None

module procedure construct_boost_components module procedure construct_boost_components()

Construct a boost transformation from the components of the spatial velocity

Read more…

Arguments

None

module procedure construct_rotation module procedure construct_rotation()

Construct a spatial rotation from a vector containing the Euler angles

Read more…

Arguments

None

module procedure construct_rotation_angles module procedure construct_rotation_angles()

Construct a spatial rotation from the Euler angles

Read more…

Arguments

None

module procedure get_lambda pure module function get_lambda(this) result(lambda)

Returns the Lorentz factor lambda

Read more…

Arguments

Type IntentOptional Attributes Name
class(lorentz_boost), intent(in) :: this

lorentz_boost object owning this FUNCTION

Return Value double precision

Lorentz factor lambda