コード例 #1
0
                 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)
コード例 #2
0
ファイル: run-err_conv-bd.py プロジェクト: zimoun/mtf
    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')