mirror of
https://codeberg.org/Yael-II/MSc1-Internship-Stellar-Cluster.git
synced 2026-03-15 03:16:26 +01:00
Delete COSMIC/COSMIC_v3_config.py
This commit is contained in:
@@ -1,102 +0,0 @@
|
|||||||
"""
|
|
||||||
* COSMIC - CONFIG
|
|
||||||
* Version 3
|
|
||||||
@ Yaël Moussouni
|
|
||||||
@ Unistra, P&E, MSc1-MoFP
|
|
||||||
@ Observatory of Strasbourg (Intern)
|
|
||||||
"""
|
|
||||||
|
|
||||||
import numpy as np
|
|
||||||
import amuse.units.units as u
|
|
||||||
import datetime
|
|
||||||
|
|
||||||
def params_dic():
|
|
||||||
params_list = ["N_stars", "timestep", "output_times", "R0_king", "W0_king", "metallicity_stellar", "M_min_salpeter", "M_max_salpeter", "a_salpeter", "binary_fraction", "mean_period", "std_period", "X_coefficient_OBA", "X_coefficient_GKM", "cluster_position_x", "cluster_position_y", "cluster_position_z", "out_directory", "in_directory", "config", "filename", "workers_stellar", "workers_gravity", "format_type"]
|
|
||||||
params = {i:0 for i in params_list}
|
|
||||||
return params, params_list
|
|
||||||
|
|
||||||
def verbatim(params):
|
|
||||||
print("\033[94m"+"Info: Simulation time of "+"\033[0m"+"{:.2f} Myr".format(np.max(params["output_times"].value_in(u.Myr))))
|
|
||||||
print("\033[94m"+"Info: Simulation of "+"\033[0m"+"{:d} stars".format(params["N_stars"]))
|
|
||||||
print("\033[94m"+"Info: Simulation will be saved with the prefix "+"\033[0m"+"{}".format(params["filename"]))
|
|
||||||
print("\033[94m"+"Info: Gravity: "+"\033[0m"+"{:d} workers".format(params["workers_gravity"])+"\033[94m"+", Stellar: "+"\033[0m"+"{:d} workers".format(params["workers_stellar"]))
|
|
||||||
return 0
|
|
||||||
|
|
||||||
def default():
|
|
||||||
params, params_list = params_dic()
|
|
||||||
|
|
||||||
date = datetime.datetime.now()
|
|
||||||
date = "{:04d}-{:02d}-{:02d}_{:02d}h{:02d}".format(date.year, date.month, date.day, date.hour, date.minute)
|
|
||||||
|
|
||||||
params["N_stars"] = np.int32(10) # Number of particle
|
|
||||||
params["timestep"] = np.float32(1)|u.Myr # Time increment
|
|
||||||
params["output_times"] = np.float32([1,2,5,10,20,50,100,200,500,1000,2000,5000])|u.Myr # Output intants
|
|
||||||
params["R0_king"] = np.float32(1)|u.pc # Cluster virial radius
|
|
||||||
params["W0_king"] = np.float32(9) # Cluster King's parameter
|
|
||||||
params["metallicity_stellar"] = np.float32(0.02) # Metallicity
|
|
||||||
params["M_min_salpeter"] = np.float32(0.1)|u.MSun # Minimum mass for Salpeter's law
|
|
||||||
params["M_max_salpeter"] = np.float32(125)|u.MSun # Maximum mass for Salpeter's law
|
|
||||||
params["a_salpeter"] = np.float32(-2.35) # Salpeter's law coefficient
|
|
||||||
params["binary_fraction"] = np.float32(0.13) # Fraction of binary stars
|
|
||||||
params["mean_period"] = np.float32(4.54) # Mean orbital period of binary systems (log10(T/days))
|
|
||||||
params["std_period"] = np.float32(2.4) # Orbital period deviation of binary systems
|
|
||||||
params["X_coefficient_OBA"] = np.float32(1.4e-7) # X-ray luminosity coefficient for O, B and A type stars
|
|
||||||
params["X_coefficient_GKM"] = np.float32(1.4e27) # X-ray luminosity coefficient for G, K and M type stars
|
|
||||||
params["cluster_position_x"] = np.float32(7000)|u.pc # Position of the cluster in the disk along the sun-center axis
|
|
||||||
params["cluster_position_y"] = np.float32(0)|u.pc # Position of the cluster in the disk in the perpendicular direction
|
|
||||||
params["cluster_position_z"] = np.float32(0)|u.pc # Position of the cluster above or below the disk
|
|
||||||
params["out_directory"] = "./output/"
|
|
||||||
params["in_directory"] = "./input/"
|
|
||||||
params["config"] = "default.cfg"
|
|
||||||
params["filename"] = "COSMIC_{}".format(date)
|
|
||||||
params["workers_stellar"] = np.int32(1)
|
|
||||||
params["workers_gravity"] = np.int32(1)
|
|
||||||
params["format_type"] = "csv"
|
|
||||||
return params, params_list
|
|
||||||
|
|
||||||
def change_params(params, cfg_param, cfg_values):
|
|
||||||
if cfg_param == "":
|
|
||||||
return params
|
|
||||||
elif cfg_param == "N_stars": params["N_stars"] = np.int32(cfg_values[0])
|
|
||||||
elif cfg_param == "timestep": params["timestep"] = np.float32(cfg_values[0])|u.Myr
|
|
||||||
elif cfg_param == "output_times": params["output_times"] = np.float32(cfg_values)|u.Myr
|
|
||||||
elif cfg_param == "R0_king": params["R0_king"] = np.float32(cfg_values[0])|u.pc
|
|
||||||
elif cfg_param == "W0_king": params["W0_king"] = np.float32(cfg_values[0])
|
|
||||||
elif cfg_param == "metallicity_stellar": params["metallicity_stellar"] = np.float32(cfg_values[0])
|
|
||||||
elif cfg_param == "M_min_salpeter": params["M_min_salpeter"] = np.float32(cfg_values[0])|u.MSun
|
|
||||||
elif cfg_param == "M_max_salpeter": params["M_max_salpeter"] = np.float32(cfg_values[0])|u.MSun
|
|
||||||
elif cfg_param == "a_salpeter": params["a_salpeter"] = np.float32(cfg_values[0])
|
|
||||||
elif cfg_param == "binary_fraction": params["binary_fraction"] = np.float32(cfg_values[0])
|
|
||||||
elif cfg_param == "mean_period": params["mean_period"] = np.float32(cfg_values[0])
|
|
||||||
elif cfg_param == "std_period": params["std_period"] = np.float32(cfg_values[0])
|
|
||||||
elif cfg_param == "X_coefficient_OBA": params["X_coefficient_OBA"] = np.float32(cfg_values[0])
|
|
||||||
elif cfg_param == "X_coefficient_GKM": params["X_coefficient_GKM"] = np.float32(cfg_values[0])
|
|
||||||
elif cfg_param == "cluster_position_x": params["cluster_position_x"] = np.float32(cfg_values[0])|u.pc
|
|
||||||
elif cfg_param == "cluster_position_y": params["cluster_position_y"] = np.float32(cfg_values[0])|u.pc
|
|
||||||
elif cfg_param == "cluster_position_z": params["cluster_position_z"] = np.float32(cfg_values[0])|u.pc
|
|
||||||
elif cfg_param == "out_directory": params["out_directory"] = cfg_values[0].replace("\n", "")
|
|
||||||
elif cfg_param == "in_directory": params["in_directory"] = cfg_values[0].replace("\n", "")
|
|
||||||
elif cfg_param == "config": params["config"] = cfg_values[0].replace("\n", "")
|
|
||||||
elif cfg_param == "filename": params["filename"] = cfg_values[0].replace("\n", "")
|
|
||||||
elif cfg_param == "workers_stellar": params["workers_stellar"] = np.int32(cfg_values[0])
|
|
||||||
elif cfg_param == "workers_gravity": params["workers_gravity"] = np.int32(cfg_values[0])
|
|
||||||
elif cfg_param == "format_type": params["format_type"] = cfg_values[0].replace("\n", "")
|
|
||||||
else:
|
|
||||||
print("\033[93m"+"Warning: cannot understand the parameter in config: "+"\033[0m" + cfg_param)
|
|
||||||
return params
|
|
||||||
|
|
||||||
|
|
||||||
def from_cfg_file(params):
|
|
||||||
cfg_path = params["in_directory"] + params["config"]
|
|
||||||
with open(cfg_path, "r") as cfg_file:
|
|
||||||
for cfg_line in cfg_file.readlines():
|
|
||||||
cfg_split = cfg_line.split(" ")
|
|
||||||
if len(cfg_split) == 1:
|
|
||||||
print("\033[93m"+"Warning: cannot understand the line in config: "+"\033[0m" + cfg_line)
|
|
||||||
continue
|
|
||||||
cfg_param = cfg_split[0]
|
|
||||||
cfg_values = cfg_split[1:]
|
|
||||||
params = change_params(params, cfg_param, cfg_values)
|
|
||||||
verbatim(params)
|
|
||||||
return params
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user