Link Copied
Gents,
It's seems we have some misunderstanding. For differential problem one doesnt know values of rhs on boundary of domain. But for algebraic problem that comes from differential one need to set value on boundary (for example continue rhs from domain to its boundary).
With best regards,
Alexander Kalinkin
Ilia,
MKL uses a standard 5-point approximation of 2D Helmholtz problem. But Poisson library from MKL requires values of rhs on Neumann boundary to find values of solution on this boundary. So, if you want to use Helmholtz functionality you need to implement next trick:
If want to solve Helmholtz equation in domain (a_x, b_x)*(a_y, b_y) with nx and ny mesh intervals correspondently then call Poisson library with parameters as follows:
ax_new = a_x+(bx-ax)/nx;
bx_new = b_x-(bx-ax)/nx;
ay_new = a_y+(by-ay)/ny;
by_new = b_y-(by-ay)/ny;
nx_new = nx-2;
ny_new = ny-2;
d_init_Helmholtz_2D(&ax_new, &bx_new, &ay_new, &by_new, &nx_new, &ny_new, BCtype, &q, ipar, dpar, &stat);
d_commit_Helmholtz_2D(f, bd_ax, bd_bx, bd_ay, bd_by, &xhandle, ipar, dpar, &stat);
ets
With best regards,
Alexander Kalinkin
For more complete information about compiler optimizations, see our Optimization Notice.