def _parse_parameter_file(self):
if self.parameter_filename.startswith("http"):
sdf_class = HTTPSDFRead
else:
sdf_class = SDFRead
self.sdf_container = sdf_class(self.parameter_filename,
header=self.sdf_header)
# Reference
self.parameters = self.sdf_container.parameters
self.dimensionality = 3
self.refine_by = 2
try:
self.unique_identifier = \
int(os.stat(self.parameter_filename)[stat.ST_CTIME])
except:
self.unique_identifier = time.time()
if self.domain_left_edge is None or self.domain_right_edge is None:
R0 = self.parameters['R0']
if 'offset_center' in self.parameters and self.parameters['offset_center']:
self.domain_left_edge = np.array([0, 0, 0], dtype=np.float64)
self.domain_right_edge = np.array([
2.0 * self.parameters.get("R%s" % ax, R0) for ax in 'xyz'],
dtype=np.float64)
else:
self.domain_left_edge = np.array([
-self.parameters.get("R%s" % ax, R0) for ax in 'xyz'],
dtype=np.float64)
self.domain_right_edge = np.array([
+self.parameters.get("R%s" % ax, R0) for ax in 'xyz'],
dtype=np.float64)
self.domain_left_edge *= self.parameters.get("a", 1.0)
self.domain_right_edge *= self.parameters.get("a", 1.0)
nz = 1 << self.over_refine_factor
self.domain_dimensions = np.ones(3, "int32") * nz
if "do_periodic" in self.parameters and self.parameters["do_periodic"]:
self.periodicity = (True, True, True)
else:
self.periodicity = (False, False, False)
self.cosmological_simulation = 1
self.current_redshift = self.parameters.get("redshift", 0.0)
self.omega_lambda = self.parameters["Omega0_lambda"]
self.omega_matter = self.parameters["Omega0_m"]
if "Omega0_fld" in self.parameters:
self.omega_lambda += self.parameters["Omega0_fld"]
if "Omega0_r" in self.parameters:
# not correct, but most codes can't handle Omega0_r
self.omega_matter += self.parameters["Omega0_r"]
self.hubble_constant = self.parameters["h_100"]
self.current_time = units_2HOT_v2_time * self.parameters.get("tpos", 0.0)
mylog.info("Calculating time to be %0.3e seconds", self.current_time)
self.filename_template = self.parameter_filename
self.file_count = 1
评论列表
文章目录