pub struct LorentzianTime { /* private fields */ }Expand description
A time model representing Lorentzian (physical) time in relativistic spacetimes.
LorentzianTime corresponds to the real-valued coordinate time used in
special and general relativity. It is the standard temporal axis in
Minkowski and Lorentzian manifolds with metric signature (− + + +).
This time coordinate governs:
- Causal structure (what can affect what)
- Relativistic dynamics (time dilation, simultaneity)
- Spacetime intervals (light cones, timelike/spacelike separation)
§Fields
id: Unique numeric identifier for this time pointtime_scale: Resolution or unit granularity (e.g.,Seconds,Nanoseconds)time_unit: Real-valued coordinate time in seconds or specified unit
§Example
use deep_causality::{Identifiable, LorentzianTime, Temporal, TimeScale};
let t = LorentzianTime::new(1, TimeScale::Second, std::f64::consts::E);
assert_eq!(t.id(), 1);
assert_eq!(t.time_scale(), TimeScale::Second);§Use Cases
- Relativistic spacetime models (Minkowski, Schwarzschild, FLRW, etc.)
- General relativity simulations and geodesics
- Causal propagation using light cones
- Lorentz-invariant physical systems
§Trait Compatibility
- Implements
Identifiableviaid - Implements
Temporal<f64>viatime_unit
§Theoretical Background
Coordinate time in Lorentzian geometry appears in the invariant spacetime interval:
s² = -c²·t² + x² + y² + z²Unlike Euclidean time (used in QFT), Lorentzian time preserves causal order and reflects real-world physics.
§See also
EuclideanTimefor Wick-rotated quantum/statistical domainsSymbolicTimefor logic-based systems
Implementations§
Trait Implementations§
Source§impl Adjustable<f64> for LorentzianTime
impl Adjustable<f64> for LorentzianTime
Source§fn update<const W: usize, const H: usize, const D: usize, const C: usize>(
&mut self,
array_grid: &ArrayGrid<f64, W, H, D, C>,
) -> Result<(), UpdateError>
fn update<const W: usize, const H: usize, const D: usize, const C: usize>( &mut self, array_grid: &ArrayGrid<f64, W, H, D, C>, ) -> Result<(), UpdateError>
The default implementation does nothing to keep update optional.
Override this method to implement a node update when needed.
For a sample implementation, see src/types/context_types/node_types_adjustable
Source§fn adjust<const W: usize, const H: usize, const D: usize, const C: usize>(
&mut self,
array_grid: &ArrayGrid<f64, W, H, D, C>,
) -> Result<(), AdjustmentError>
fn adjust<const W: usize, const H: usize, const D: usize, const C: usize>( &mut self, array_grid: &ArrayGrid<f64, W, H, D, C>, ) -> Result<(), AdjustmentError>
The default implementation does nothing to keep adjustment optional.
Override this method to implement a node adjustment when needed.
Depending on the type of node adjustment, select a 1, 2,3, or 4 dimensional array grid
that contains the transformation data to apply to the node.
For a sample implementation, see src/types/context_types/node_types_adjustable
Source§impl Clone for LorentzianTime
impl Clone for LorentzianTime
Source§fn clone(&self) -> LorentzianTime
fn clone(&self) -> LorentzianTime
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LorentzianTime
impl Debug for LorentzianTime
Source§impl Display for LorentzianTime
impl Display for LorentzianTime
Source§impl From<LorentzianTime> for TimeKind
impl From<LorentzianTime> for TimeKind
Source§fn from(t: LorentzianTime) -> Self
fn from(t: LorentzianTime) -> Self
Converts to this type from the input type.
Source§impl Identifiable for LorentzianTime
impl Identifiable for LorentzianTime
Source§impl PartialEq for LorentzianTime
impl PartialEq for LorentzianTime
Source§impl ScalarProjector for LorentzianTime
impl ScalarProjector for LorentzianTime
Source§impl Temporal<f64> for LorentzianTime
impl Temporal<f64> for LorentzianTime
impl Copy for LorentzianTime
impl StructuralPartialEq for LorentzianTime
Auto Trait Implementations§
impl Freeze for LorentzianTime
impl RefUnwindSafe for LorentzianTime
impl Send for LorentzianTime
impl Sync for LorentzianTime
impl Unpin for LorentzianTime
impl UnwindSafe for LorentzianTime
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more