def d_eqn_poly(self): fn_name = 'd_eqn_poly_def_'+self.friction_model if not hasattr(self,fn_name): d_eqn = Eq(1/self.u_eqn_geom().rhs**self.u_dyn_exponent, 1/(self.u_eqn_dyn().rhs)) setattr(self, fn_name, Eq(d_eqn.as_poly(d).args[0]) ) return getattr(self,fn_name)
def u_eqn_poly_manning(self): u_eqn = Eq(self.d_eqn_geom().rhs,self.d_eqn_dyn().rhs) tmp = u_eqn.as_poly(1/sy.sqrt(u)).args[0] return Eq((tmp.subs(u,t**2)*t**5).simplify().subs(t,sy.sqrt(u)) *n_m**sy.Rational(3,2))
def u_eqn_poly_chezy(self): u_eqn = Eq(self.d_eqn_geom().rhs,self.d_eqn_dyn().rhs) return Eq(u_eqn.as_poly(1/sy.sqrt(u)).args[0]*u**3).expand()