Delete orbiter/orbits/body.py

This commit is contained in:
tfaour 2025-06-02 12:26:11 -04:00
parent ddd5947123
commit abf652adab

View File

@ -1,57 +0,0 @@
from enum import Enum
import numpy as np
from ..units import *
from .calc import format_sig_figs
class Body:
"""
Base class for any orbital body
"""
def __init__(self, X: Position, V: Velocity, m: Mass, name: str = ""):
"""
x (position) and v (velocity)
"""
self.X = X
self.V = V
self.A = Acceleration([0,0,0])
self.m = m
self.name = name
def save(self):
return (self.X, self.V, self.m)
@classmethod
def load(cls, tup):
return cls(tup[0], tup[1], tup[2])
def step(self, step_size: float):
self.X += step_size*self.V
self.V += step_size*self.A
self.A = HighPrecisionVector([0,0,0])
def __str__(self):
pos = 'm '.join([format_sig_figs(real_pos(x), 3) for x in self.X])
vel = 'm/s '.join([format_sig_figs(real_vel(v), 3) for v in self.V])
return str(f"{self.name}: X = {pos}, V = {vel}")
def E(self):
return self.ke() + self.pe()
def pe(self):
return -self.m/self.dist_from_o()
def dist_from_o(self):
return sum([x**2 for x in self.X]).sqrt()
def ke(self):
return Decimal(0.5)*self.m*(self._speed()**2)
def _speed(self):
return sum([v**2 for v in self.V]).sqrt()
def speed(self):
return str(f"{format_sig_figs(real_vel(self._speed),5)}")