Learn R Programming

lorentz (version 1.1-1)

sol: Speed of light and Minkowski metric

Description

Getting and setting the speed of light

Usage

sol(c)
eta(downstairs=TRUE)
ptm(to_natural=TRUE, change_time=TRUE)

Arguments

c

Scalar, speed of light. If missing, return the speed of light

downstairs

Boolean, with default TRUE meaning to return the covariant metric tensor \(g_{ij}\) with two downstairs indices, and FALSE meaning to return the contravariant version \(g^{ij}\) with two upstairs indices

to_natural,change_time

Boolean, specifying the nature of the passive transform matrix

Author

Robin K. S. Hankin

Details

In the context of an R package, the symbol “c” presents particular problems. In the lorentz package, the speed of light is denoted “sol”, for ‘speed of light’. You can set the speed of light with sol(x), and query it with sol(); see the examples. An infinite speed of light is sometimes useful for Galilean transforms.

The speed of light is a global variable, governed by options("c"). If NULL, define c=1. Setting showSOL to TRUE makes sol() change the prompt to display the speed of light which might be useful.

Function eta() returns the Minkowski flat-space metric $$\mathrm{diag}\left(-c^2,1,1,1\right).$$

Note that the top-left element of eta() is \(-c^2\), not \(-1\).

Function ptm() returns a passive transformation matrix that converts displacement vectors to natural units (to_natural=TRUE) or from natural units (to_natural=FALSE). Argument change_time specifies whether to change the unit of time (if TRUE) or the unit of length (if FALSE).

Examples

Run this code

sol()                          # returns current speed of light
sol(299792458)                 # use SI units
sol()                          # speed of light now SI value

eta()                          # note [t,t] term
u <- as.3vel(c(100,200,300))   # fast terrestrial speed, but not relativistic
boost(u)                       # boost matrix practically Galilean
is.consistent.boost(boost(u))  # should be TRUE
sol(1)                         # revert to relativistic units

Run the code above in your browser using DataLab