<div dir="ltr"><div dir="ltr">On Fri, Sep 10, 2021 at 2:26 PM Gerhard Ungersbäck via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
Hello,</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
<br>
</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
I want to solve a time dependent differential equation in 3D (Scalar field theory in Hamilton formulation) .</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
The crucial part is that at some time steps I need to FFT the 3D grid.</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
<br>
</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
I have written a sequential code without petsc and now I would like to use petsc to get a parallel version.
</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
I worked through the examples and now I understand DMDACreate and also the FFTW examples.</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
<br>
</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
What is missing though is how I combine both!</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
DMDACreate takes care of ghost points and periodic boundary conditions. As far as I know FFTW requires each process to have a slab of the grid to work. I know how to create this grid with DMDACreate. Normally I would proceed by creating a global vector by DMCreateGlobalVector.
 But this vector needs then to be linked with fftw arrays. How does this work?</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
Or should I first allocate local memory for fftw and then somehow stitch them together to form a global petsc vector?</p></div></div></blockquote><div><br></div><div>It would be great if we had worked through an example with this, but I can only find a serial example:</div><div><br></div><div>  <a href="https://gitlab.com/petsc/petsc/-/blob/main/src/dm/tests/ex27.c">https://gitlab.com/petsc/petsc/-/blob/main/src/dm/tests/ex27.c</a></div><div><br></div><div>I think you can use</div><div><br></div><div>  <a href="https://petsc.org/main/docs/manualpages/Mat/VecScatterFFTWToPetsc.html">https://petsc.org/main/docs/manualpages/Mat/VecScatterFFTWToPetsc.html</a></div><div><br></div><div>to go between FFTW and Petsc vectors, but I have not tried in parallel. Is the example</div><div>in the right direction?</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
Thanks</p>
<p style="margin-bottom:0in;line-height:100%;background:none 0% 0% repeat scroll transparent">
best, gerhard </p>
<br>
</div>
</div>

</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>