def valid(r): r_mag = vector.vector_mag(r) if (not force_fullsphere) and r[-1] < 0.0: return False if r_mag > R_drop: return False theta = np.abs(np.arccos(r[-1] / r_mag)) if theta_max < theta < (np.pi - theta_max): return False return True
def spheres_sep(ar, aR, br, bR): """Return the separation distance between two spheres. Parameters ---------- ar, br: array-like, shape (n,) in n dimensions Coordinates of the centres of the spheres `a` and `b`. aR, bR: float Radiuses of the spheres `a` and `b`. Returns ------- d: float Separation distance. A negative value means the spheres intersect each other. """ return vector.vector_mag(ar - br) - (aR + bR)
use_latex = save_flag use_pgf = True ejm_rcparams.set_pretty_plots(use_latex, use_pgf) t_steady = 50.0 dr = 0.7 n_samples = 1e2 alg = 'mean' # Zero d_0 = dataset.get_dset(paths.direct_Drc_0_dset_path) Rps_0 = np.linspace(0.0, d_0.R, n_samples) t_0, r1_0, r2_0 = d_0.get_direct() r_0 = np.array([vector.vector_mag(r1_0), vector.vector_mag(r2_0)]).T ps_0, ps_0_err = unzip([scatlyse(t_0, r_0, Rp, t_steady) for Rp in Rps_0]) ps_0 = np.array(ps_0) ps_0_err = np.array(ps_0_err) R_peak_0 = d_0.get_R_peak(alg=alg, dr=dr)[0] # 10 d_10 = dataset.get_dset(paths.direct_Drc_10_dset_path) Rps_10 = np.linspace(0.0, d_10.R, n_samples) t_10, r1_10, r2_10 = d_10.get_direct() r_10 = np.array([vector.vector_mag(r1_10), vector.vector_mag(r2_10)]).T ps_10, ps_10_err = unzip([scatlyse(t_10, r_10, Rp, t_steady) for Rp in Rps_10]) ps_10 = np.array(ps_10) ps_10_err = np.array(ps_10_err) R_peak_10 = d_10.get_R_peak(alg=alg, dr=dr)[0]
def get_var(self): r_vars = [np.var(vector.vector_mag(xyz) / self.R, dtype=np.float64) for xyz in self.xyzs if len(xyz)] r_var, r_var_err = mean_and_err(r_vars) return r_var, r_var_err
def get_mean(self): r_means = [np.mean(vector.vector_mag(xyz) / self.R) for xyz in self.xyzs if len(xyz)] r_mean, r_mean_err = mean_and_err(r_means) return r_mean, r_mean_err
def r_w_mag(self): return vector.vector_mag(self.r_w)
def dr_mag(self): return vector.vector_mag(self.dr)