Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- Direct Extraction of Finite Difference from Helmholtz Solver

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Sav__Joe

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-21-2020
06:27 AM

95 Views

Direct Extraction of Finite Difference from Helmholtz Solver

Hello all.

I am writing to inquire if it is possible somehow to extract directly the finite differences from the Intel MKL Helmholtz solver. I am using the solver for the Poisson equation, in order to solve for the stream function Psi(x,y,z) of a fluid. In this case I am not interested in the direct value of Psi itself, but rather the gradients of Psi. Seeing as the capability exists to use Neumann boundary conditions, and it is stated in the solver description that a five-point finite difference solver is used, than I am assuming this data may be somehow stored already within the solver during execution time.

I could possibly also use the same solver, however now solving for the gradient variables -df/dx instead of -f, but this will probably end up being exactly as expensive as calculating the finite difference gradients which I am currently doing, possibly even more so due to the more expensive calculation of the gradients on the boundary. Hence why I wonder if there is a way simply to extract directly the gradient. Perhaps I am also overseeing a simple way to use the Poisson solver directly?

Any help would be appreciated.

Link Copied

3 Replies

Kirill_V_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-22-2020
08:37 PM

95 Views

Hello,

I don't think this is possible and definitely it cannot be done through the current interface. Based on the information you gave, I'd rather consider other existing ways of approximating your problem so that the gradient of the stream function will be a proper (maybe, the main) unknown of the problem rather than a side-effect of computing the stream function. Of course, you can employ a post-processing scheme to compute the gradients from the stream function but these tend to lack robustness/are unstable.

Thanks,

Kirill

Sav__Joe

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

01-27-2020
01:58 AM

95 Views

Hello Kirill,

Yes I already gave some thought to formulating the problem such that the gradient is the unknown of the problem, this is in fact what I meant in the second paragraph of my post. This may however end up being more expensive than the problem itself was originally. Thank you for your quick response anyway.

Regards,

Joe

Sav__Joe

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

04-15-2020
12:25 AM

95 Views

Alternatively, I have read elsewhere that the curl of a given field can also be directly extracted by performing an operation on the field in fourier space such as described here:

https://twistedone151.wordpress.com/tag/fourier-transform/

I have seen some rough examples for Matlab, so I thought I might check here if somebody has any experience carrying this out with the MKL Fast Poisson solver. Of course it would require preparation of my input arrays, however I cannot find any solid examples online. Any help would be appreciated!

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.