-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathConvertInitialConditionsToTXT.py
More file actions
52 lines (36 loc) · 1.03 KB
/
ConvertInitialConditionsToTXT.py
File metadata and controls
52 lines (36 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import math
import numpy as np
import sys
import os
from math import cos
from math import sin
import struct
from struct import pack as packbinary
def printargs():
print("arguments: {inputFileToConvert} {outputFilename}")
print("note: jphys141 files end with .data")
if len(sys.argv) <= 2:
printargs()
quit()
inputFileToConvert = str(sys.argv[1])
outputFilename = str(sys.argv[2])
fin = open(inputFileToConvert, 'rb')
fo = open(outputFilename, 'w')
INTSIZE = 4
DBLSIZE = 8
#--------------------------------------------------------------
# first convert header
#AarsethHeader = str(TotalNumPts)+" 0.01 "+str(timeStep)+" "+str(timeMax)+" "+str(epssqd)+" "+str(GravitationalConst)+"\n"
nbodies = int(struct.unpack('d',fin.read(DBLSIZE))[0])
fo.write(str(nbodies))
for i in range(5):
fo.write(" "+str(struct.unpack('d',fin.read(DBLSIZE))[0]))
fo.write("\n")
for i in range(nbodies):
for j in range(7):
if j > 0:
fo.write(" ")
fo.write(str(struct.unpack('d',fin.read(DBLSIZE))[0]))
fo.write("\n")
fo.close()
fin.close()