Delete orbiter/orbits/body.py
This commit is contained in:
parent
ddd5947123
commit
abf652adab
@ -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)}")
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user