def __init__(self, **kwargs): super().__init__(**kwargs) if 'to_dst' in kwargs: self.to_dst = kwargs.pop('to_dst') else: self.to_dst = lambda th: 0 self.fft_b_coef = fourier.arc_dst(self.a, self.to_dst)[:self.m_max] self.fft_a_coef = abcoef.b_to_a(self.fft_b_coef, self.k, self.R, self.nu)
def get_expected_a_coef(self): if self.problem.name == 'iz-bessel': return np.zeros(self.M) # Arc only r = self.problem.R def eval_bc0(th): return self.problem.eval_phi0(th) - self.problem.eval_v(r, th) def eval_diff(th): return self.problem.eval_v(r, th) - self.v_interp(r, th) interp_error = arc_dst(self.a, eval_diff)[:self.M] print('b interp error:') print(interp_error) print() b_coef = arc_dst(self.a, eval_bc0)[:self.M] return abcoef.b_to_a(b_coef, self.k, self.problem.R, self.nu)