Read boxsize
This commit is contained in:
10
galsec.py
10
galsec.py
@@ -229,6 +229,7 @@ class Galsec:
|
|||||||
A dataset of cells in the following format:
|
A dataset of cells in the following format:
|
||||||
header:
|
header:
|
||||||
time float [Myr] time since the start of the simulation
|
time float [Myr] time since the start of the simulation
|
||||||
|
box_size float [kpc] size of the box
|
||||||
fluids str list list of fluids included
|
fluids str list list of fluids included
|
||||||
gas:
|
gas:
|
||||||
position float array (Ngas, 3) [kpc], centered
|
position float array (Ngas, 3) [kpc], centered
|
||||||
@@ -259,6 +260,7 @@ class Galsec:
|
|||||||
self.data[fluid] = QTable(data[fluid], units=self.units[fluid], copy=copy)
|
self.data[fluid] = QTable(data[fluid], units=self.units[fluid], copy=copy)
|
||||||
|
|
||||||
self.time = data["header"]["time"] * u.Myr
|
self.time = data["header"]["time"] * u.Myr
|
||||||
|
self.box_size = data["header"]["box_size"] * u.kpc
|
||||||
|
|
||||||
self.compute_derived_values()
|
self.compute_derived_values()
|
||||||
|
|
||||||
@@ -333,13 +335,13 @@ class Galsec:
|
|||||||
delta_z : Quantity[u.kpc]
|
delta_z : Quantity[u.kpc]
|
||||||
spacing between two y bins
|
spacing between two y bins
|
||||||
"""
|
"""
|
||||||
|
boxsize = self.box_size
|
||||||
for fluid in self.fluids:
|
for fluid in self.fluids:
|
||||||
for i, (delta, name) in enumerate(zip([delta_x, delta_y, delta_z], ["x", "y", "z"])):
|
for i, (delta, name) in enumerate(zip([delta_x, delta_y, delta_z], ["x", "y", "z"])):
|
||||||
pos = self.data[fluid]["position"][:, i]
|
pos = self.data[fluid]["position"][:, i] + 0.5 * boxsize # stay positive
|
||||||
minval = np.floor(np.min(pos) / delta)
|
bin = np.floor(pos / delta)
|
||||||
bin = np.floor((pos - minval) / delta)
|
|
||||||
# Store the middle value
|
# Store the middle value
|
||||||
self.data[fluid][f"{name}_bin"] = (bin + 0.5) * delta + minval
|
self.data[fluid][f"{name}_bin"] = (bin + 0.5) * delta - 0.5 * boxsize
|
||||||
|
|
||||||
def sector_analysis(
|
def sector_analysis(
|
||||||
self,
|
self,
|
||||||
|
|||||||
@@ -52,7 +52,9 @@ def load_fields(path):
|
|||||||
|
|
||||||
# Create dataset
|
# Create dataset
|
||||||
data = {
|
data = {
|
||||||
"header": {"time": time * UnitTime_in_Myr, "fluids": ["gas", "stars"]},
|
"header": {"time": time * UnitTime_in_Myr,
|
||||||
|
"fluids": ["gas", "stars"],
|
||||||
|
"box_size": box_size * UnitLength_in_kpc },
|
||||||
"gas": {
|
"gas": {
|
||||||
"position": (
|
"position": (
|
||||||
np.asarray(gas["CenterOfMass"]) - np.array([0.5, 0.5, 0.5]) * box_size
|
np.asarray(gas["CenterOfMass"]) - np.array([0.5, 0.5, 0.5]) * box_size
|
||||||
|
|||||||
@@ -72,7 +72,9 @@ def load_fields(pp):
|
|||||||
|
|
||||||
# Create dataset
|
# Create dataset
|
||||||
data = {
|
data = {
|
||||||
"header": {"time": pp.time * pp.info["unit_time"].express(U.Myr)},
|
"header": {"time": pp.time * pp.info["unit_time"].express(U.Myr),
|
||||||
|
"fluids": ["gas", "stars", "dm"],
|
||||||
|
"box_size": pp.info["unit_length"].express(U.kpc)},
|
||||||
"gas": {
|
"gas": {
|
||||||
"position": cells["position"] * pp.info["unit_length"].express(U.kpc),
|
"position": cells["position"] * pp.info["unit_length"].express(U.kpc),
|
||||||
"volume": cells["volume"],
|
"volume": cells["volume"],
|
||||||
@@ -99,10 +101,10 @@ def load_fields(pp):
|
|||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__" and False:
|
||||||
from snapshotprocessor import SnapshotProcessor
|
from snapshotprocessor import SnapshotProcessor
|
||||||
|
|
||||||
pp = SnapshotProcessor(
|
pp = SnapshotProcessor(
|
||||||
"/home/nbrucy/ecogal/galturb/F20H_7_1pc_frig", num=80, params="params_gal.yml"
|
"/home/nbrucy/ecogal/galturb/F20H_15_4pc_frig_from_relax", num=50, params="params_gal.yml"
|
||||||
)
|
)
|
||||||
data = load_fields(pp)
|
data = load_fields(pp)
|
||||||
|
|||||||
Reference in New Issue
Block a user