Skip to content

Commit 4995b4f

Browse files
committed
reduce memory usage of this file
1 parent d261385 commit 4995b4f

File tree

1 file changed

+32
-28
lines changed

1 file changed

+32
-28
lines changed

src/utilities/orbitalMotion.py

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -28,26 +28,30 @@
2828

2929

3030
class ClassicElements(object):
31-
a = None
32-
e = None
33-
i = None
34-
Omega = None
35-
omega = None
36-
f = None
37-
rmag = None
38-
alpha = None
39-
rPeriap = None
40-
rApoap = None
31+
__slots__ = ['a', 'e', 'i', 'Omega', 'omega', 'f', 'rmag', 'alpha', 'rPeriap', 'rApoap']
32+
def __init__(self):
33+
self.a = None
34+
self.e = None
35+
self.i = None
36+
self.Omega = None
37+
self.omega = None
38+
self.f = None
39+
self.rmag = None
40+
self.alpha = None
41+
self.rPeriap = None
42+
self.rApoap = None
4143

4244

4345
class EquinoctialElements(object):
44-
a = None
45-
P1 = None
46-
P2 = None
47-
Q1 = None
48-
Q2 = None
49-
l = None
50-
L = None
46+
__slots__ = ['a', 'P1', 'P2', 'Q1', 'Q2', 'l', 'L']
47+
def __init__(self):
48+
self.a = None
49+
self.P1 = None
50+
self.P2 = None
51+
self.Q1 = None
52+
self.Q2 = None
53+
self.l = None
54+
self.L = None
5155

5256

5357
N_DEBYE_PARAMETERS = 37 # orbitalMotion.h #
@@ -769,6 +773,14 @@ def atmosphericDensity(alt: float) -> float:
769773
return density
770774

771775

776+
DEBYE_ALTITUDES = [200.0, 250.0, 300.0, 350.0, 400., 450., 500., 550., 600., 650., 700., 750., 800., 850.,
777+
900., 950., 1000., 1050., 1100., 1150., 1200., 1250., 1300., 1350., 1400., 1450.,
778+
1500., 1550., 1600., 1650., 1700., 1750., 1800., 1850., 1900., 1950., 2000.]
779+
DEBYE_LENGTHS = [5.64E-03, 3.92E-03, 3.24E-03, 3.59E-03, 4.04E-03, 4.28E-03, 4.54E-03, 5.30E-03, 6.55E-03,
780+
7.30E-03, 8.31E-03, 8.38E-03, 8.45E-03, 9.84E-03, 1.22E-02, 1.37E-02, 1.59E-02, 1.75E-02,
781+
1.95E-02, 2.09E-02, 2.25E-02, 2.25E-02, 2.25E-02, 2.47E-02, 2.76E-02, 2.76E-02, 2.76E-02,
782+
2.76E-02, 2.76E-02, 2.76E-02, 2.76E-02, 3.21E-02, 3.96E-02, 3.96E-02, 3.96E-02, 3.96E-02, 3.96E-02]
783+
772784
def debyeLength(alt: float) -> float:
773785
"""
774786
This program computes the debyeLength length for a given
@@ -779,14 +791,6 @@ def debyeLength(alt: float) -> float:
779791
:param alt: altitude in km
780792
:return: debye length given in m
781793
"""
782-
X = [200.0, 250.0, 300.0, 350.0, 400., 450., 500., 550., 600., 650., 700., 750., 800., 850.,
783-
900., 950., 1000., 1050., 1100., 1150., 1200., 1250., 1300., 1350., 1400., 1450.,
784-
1500., 1550., 1600., 1650., 1700., 1750., 1800., 1850., 1900., 1950., 2000.]
785-
786-
Y = [5.64E-03, 3.92E-03, 3.24E-03, 3.59E-03, 4.04E-03, 4.28E-03, 4.54E-03, 5.30E-03, 6.55E-03,
787-
7.30E-03, 8.31E-03, 8.38E-03, 8.45E-03, 9.84E-03, 1.22E-02, 1.37E-02, 1.59E-02, 1.75E-02,
788-
1.95E-02, 2.09E-02, 2.25E-02, 2.25E-02, 2.25E-02, 2.47E-02, 2.76E-02, 2.76E-02, 2.76E-02,
789-
2.76E-02, 2.76E-02, 2.76E-02, 2.76E-02, 3.21E-02, 3.96E-02, 3.96E-02, 3.96E-02, 3.96E-02, 3.96E-02]
790794

791795
# Flat debyeLength length for altitudes above 2000 km #
792796
if alt > 2000.0 and alt <= 30000.0:
@@ -800,10 +804,10 @@ def debyeLength(alt: float) -> float:
800804
# Interpolation of data #
801805
i = 0
802806
for i in range(0, N_DEBYE_PARAMETERS - 1):
803-
if X[i + 1] > alt:
807+
if DEBYE_ALTITUDES[i + 1] > alt:
804808
break
805-
a = (alt - X[i]) / (X[i + 1] - X[i])
806-
debyedist = Y[i] + a * (Y[i + 1] - Y[i])
809+
a = (alt - DEBYE_ALTITUDES[i]) / (DEBYE_ALTITUDES[i + 1] - DEBYE_ALTITUDES[i])
810+
debyedist = DEBYE_LENGTHS[i] + a * (DEBYE_LENGTHS[i + 1] - DEBYE_LENGTHS[i])
807811

808812
return debyedist
809813

0 commit comments

Comments
 (0)