[postprocessor] [bug] fixed missing sqrt in Q computation

This commit is contained in:
Noe Brucy
2021-01-30 11:40:53 +01:00
parent a49bc47bda
commit 3070ab8caa
+10 -8
View File
@@ -865,8 +865,8 @@ class PostProcessor(HDF5Container):
omega_rho_func, lambda dset: dset["rho"], 1.0 / self._ro.info["unit_time"] omega_rho_func, lambda dset: dset["rho"], 1.0 / self._ro.info["unit_time"]
) )
# Operator to compute the sound speed # Operator to compute the square of the sound speed
cs_op = FractionOperator( T_op = FractionOperator(
lambda dset: dset["P"], lambda dset: dset["P"],
lambda dset: dset["rho"], lambda dset: dset["rho"],
self._ro.info["unit_velocity"], self._ro.info["unit_velocity"],
@@ -877,21 +877,23 @@ class PostProcessor(HDF5Container):
# Ray tracer for the sound speed # Ray tracer for the sound speed
if self.pp_params.pymses.fft: if self.pp_params.pymses.fft:
rt_cs = splatting.SplatterProcessor( rt_T = splatting.SplatterProcessor(
self._amr, self._ro.info, cs_op, surf_qty=False self._amr, self._ro.info, T_op, surf_qty=False
) )
else: else:
rt_cs = raytracing.RayTracer(self._amr, self._ro.info, cs_op) rt_T = raytracing.RayTracer(self._amr, self._ro.info, T_op)
if not self.pp_params.pymses.multiprocessing: if not self.pp_params.pymses.multiprocessing:
rt_omega.disable_multiprocessing() rt_omega.disable_multiprocessing()
rt_cs.disable_multiprocessing() rt_T.disable_multiprocessing()
dmap_omega = rt_omega.process(self._cam[ax_los]) dmap_omega = rt_omega.process(self._cam[ax_los])
dmap_cs = rt_cs.process(self._cam[ax_los]) dmap_T = rt_T.process(self._cam[ax_los])
dmap_col = self.save.root.maps.coldens_z.read() dmap_col = self.save.root.maps.coldens_z.read()
map_Q = ( map_Q = (
(self.lbox * dmap_cs.map.T) * dmap_omega.map.T / (np.pi * self.G * dmap_col) (self.lbox * np.sqrt(dmap_T.map.T))
* dmap_omega.map.T
/ (np.pi * self.G * dmap_col)
) )
return map_Q return map_Q