Skip to main content

RelativisticBody

Struct RelativisticBody 

Source
pub struct RelativisticBody {
    pub rest_mass: f64,
    pub velocity: f64,
}
Expand description

A body with scalar rest mass and signed velocity.

Fields§

§rest_mass: f64

Rest mass in kilograms.

§velocity: f64

Signed velocity in meters per second.

Implementations§

Source§

impl RelativisticBody

Source

pub fn new(rest_mass: f64, velocity: f64) -> Option<Self>

Creates a relativistic body when rest_mass is finite and non-negative and velocity is finite with a magnitude strictly less than the speed of light.

Source

pub fn beta(&self) -> Option<f64>

Computes the speed ratio magnitude β for the body’s current velocity.

Source

pub fn lorentz_factor(&self) -> Option<f64>

Computes the Lorentz factor γ for the body’s current speed magnitude.

Source

pub fn rest_energy(&self) -> Option<f64>

Computes the body’s rest energy in joules.

Source

pub fn total_energy(&self) -> Option<f64>

Computes the body’s total relativistic energy in joules.

§Examples
use use_relativity::{RelativisticBody, SPEED_OF_LIGHT};

let body = RelativisticBody::new(1.0, SPEED_OF_LIGHT * 0.6).unwrap();
let expected = 1.25 * SPEED_OF_LIGHT * SPEED_OF_LIGHT;

assert!((body.total_energy().unwrap() - expected).abs() < 1.0e-3);
Source

pub fn kinetic_energy(&self) -> Option<f64>

Computes the body’s relativistic kinetic energy in joules.

Source

pub fn momentum(&self) -> Option<f64>

Computes the body’s relativistic momentum in kilogram meters per second.

Trait Implementations§

Source§

impl Clone for RelativisticBody

Source§

fn clone(&self) -> RelativisticBody

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RelativisticBody

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for RelativisticBody

Source§

fn eq(&self, other: &RelativisticBody) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for RelativisticBody

Source§

impl StructuralPartialEq for RelativisticBody

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.