tol=tol, residuals=res, restrt=restart, maxiter=maxiter) tt = time() - tt print(info, len(res)) oRes = np.array(res) Res = rescaleRes(oRes, Prec, b) print('#time: {}'.format(tt)) checker('Calderon Prec', A, J, xx) checker('Transmission Prec', J, X, xx, b) ################################################# slices = mtf.getSlices() s = slices['0'] sol = xx[s[0]:s[1]] d = mtf.domains.getIndexDom('0') (space, _), (_, _) = mtf.spaces[d] n, = sol.shape n = int(n / 2) sold, soln = sol[:n], sol[n:] gsold = bem.GridFunction(space, coefficients=sold) gsoln = bem.GridFunction(space, coefficients=soln) bem.export(grid_function=gsold, file_name="soldR.msh", transformation=np.real) bem.export(grid_function=gsold, file_name="soldI.msh", transformation=np.imag)
print('MTF Bott-Duffin') print('') yy, niter, res, tt = my_gmres("\nGmres restart={0} maxiter={1}", BD, b, tol, restart, maxiter) xx = CCi(yy) ecald = checker('Calderon ', A, J, xx) etrans = checker('Transmission ', J, X, xx, b) emtf = checker('sol BD in classic MTF ', A, X, xx, b) Ecald.append(ecald) Etrans.append(etrans) slices = mtf.getSlices() s = slices['0'] sol = xx[s[0]:s[1]] s = slices['1'] soll = xx[s[0]:s[1]] d = mtf.domains.getIndexDom('0') (space, _) , (_, _) = mtf.spaces[d] n, = sol.shape n = int(n/2) sold, soln = sol[:n], sol[n:] print('\ndir. err, err_norm ; l2 <-| L2')