diff --git a/.hgignore b/.hgignore index a2ca4a0019fd8de3b52ff08a4c472b7433635144_LmhnaWdub3Jl..09a85b2ed8431fcdb5ee4ff155318768703da922_LmhnaWdub3Jl 100644 --- a/.hgignore +++ b/.hgignore @@ -18,6 +18,9 @@ *.bbl *.blg +*.fls +*.fdb_latexmk + *.so */*.pstats @@ -28,5 +31,7 @@ **/_minted-* +.vscode/* + fluidsim/Scripts/spectralDNS/* fluidsim/Scripts/dedalus* diff --git a/fluidfft/Pyfig/fig_build_use.dio b/fluidfft/Pyfig/fig_build_use.dio index a2ca4a0019fd8de3b52ff08a4c472b7433635144_Zmx1aWRmZnQvUHlmaWcvZmlnX2J1aWxkX3VzZS5kaW8=..09a85b2ed8431fcdb5ee4ff155318768703da922_Zmx1aWRmZnQvUHlmaWcvZmlnX2J1aWxkX3VzZS5kaW8= 100644 --- a/fluidfft/Pyfig/fig_build_use.dio +++ b/fluidfft/Pyfig/fig_build_use.dio @@ -1,1 +1,1 @@ -<mxGraphModel dx="739" dy="602" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="583" background="#ffffff"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="2" target="13" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="2" target="17" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="2" value="base_fft.h<font face="Courier New"><br><b>BaseFFT</b></font>" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="173" y="20" width="100" height="40" as="geometry"/></mxCell><mxCell id="39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.25;entryY=0;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="13" target="15" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="110" y="150"/><mxPoint x="198" y="150"/></Array></mxGeometry></mxCell><mxCell id="13" value="base_fft2d.h<br><b>BaseFFT2D</b>" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="60" y="100" width="100" height="40" as="geometry"/></mxCell><mxCell id="41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="15" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="200" y="250" as="targetPoint"/></mxGeometry></mxCell><mxCell id="15" value="base_fft2dmpi.h<br><b>BaseFFT2DMPI</b>" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="173" y="170" width="100" height="40" as="geometry"/></mxCell><mxCell id="43" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="21" target="42" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="160" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.75;entryY=0;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="21" target="45" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="60" y="271"/><mxPoint x="60" y="360"/><mxPoint x="93" y="360"/></Array></mxGeometry></mxCell><mxCell id="186" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;jettySize=auto;orthogonalLoop=1;" parent="1" source="21" target="105" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="320" y="271"/><mxPoint x="320" y="343"/></Array></mxGeometry></mxCell><mxCell id="21" value="fft2dmpi_with_fftwmpi2d.h<br><b>FFT2DMPIWithFFTWMPI2D</b>" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="80" y="251" width="200" height="40" as="geometry"/></mxCell><mxCell id="204" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" parent="1" source="42" target="203" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="42" value="fft2dmpi_with_fftwmpi2d.cpp<br><b>FFT2DMPIWithFFTWMPI2D</b>" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="80" y="305" width="200" height="40" as="geometry"/></mxCell><mxCell id="152" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="45" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="160" y="482.2413793103449" as="targetPoint"/></mxGeometry></mxCell><mxCell id="45" value="Write user C++ code" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="3" y="462" width="120" height="40" as="geometry"/></mxCell><mxCell id="33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Courier New;strokeWidth=1;" parent="1" source="17" target="15" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="17" value="base_fftmpi.h<br><b>BaseFFTMPI</b>" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="173" y="100" width="100" height="40" as="geometry"/></mxCell><mxCell id="23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="19" target="21" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="150" y="220" as="targetPoint"/><Array as="points"><mxPoint x="90" y="230"/><mxPoint x="165" y="230"/></Array></mxGeometry></mxCell><mxCell id="19" value="fftw3-mpi.h" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="40" y="170" width="100" height="40" as="geometry"/></mxCell><mxCell id="209" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" parent="1" source="58" target="183" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="58" value="Execute" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Helvetica;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="197" y="521" width="145" height="35" as="geometry"/></mxCell><mxCell id="85" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="62" target="84" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="62" value="base.pyx" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="580" y="20" width="100" height="40" as="geometry"/></mxCell><mxCell id="95" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.762;entryY=0.08;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="84" target="91" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="630" y="170"/><mxPoint x="591" y="170"/></Array></mxGeometry></mxCell><mxCell id="84" value="template2d_mako.pyx" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;gradientColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="560" y="120" width="140" height="40" as="geometry"/></mxCell><mxCell id="163" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.297;entryY=0.042;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" target="45" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="39.23529411764707" y="437" as="sourcePoint"/></mxGeometry></mxCell><mxCell id="68" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="67" target="62" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="67" value="mpi4py" style="shape=mxgraph.flowchart.multi-document;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;shadow=0;" parent="1" vertex="1"><mxGeometry x="468" y="10" width="65" height="37" as="geometry"/></mxCell><mxCell id="72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.75;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="71" target="62" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="71" value="numpy" style="shape=mxgraph.flowchart.multi-document;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;shadow=0;" parent="1" vertex="1"><mxGeometry x="468" y="63" width="65" height="37" as="geometry"/></mxCell><mxCell id="81" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="79" target="80" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="79" value="cpu.pxd" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="710" y="20" width="100" height="40" as="geometry"/></mxCell><mxCell id="82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=1;entryY=0.5;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="80" target="62" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="700" y="102"/><mxPoint x="700" y="40"/></Array></mxGeometry></mxCell><mxCell id="80" value="util_pyfftw.pyx" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="710" y="82" width="100" height="40" as="geometry"/></mxCell><mxCell id="92" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.28;entryY=-0.06;entryPerimeter=0;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="90" target="91" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="470" y="170"/><mxPoint x="500" y="170"/></Array></mxGeometry></mxCell><mxCell id="90" value="template2d_mako.pxd" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="400" y="120" width="140" height="40" as="geometry"/></mxCell><mxCell id="124" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="91" target="100" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="125" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;strokeWidth=1;" parent="1" source="91" target="99" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="91" value="Generate Cython code<br><b><font face="Courier New">mako</font></b>" style="shape=mxgraph.flowchart.predefined_process;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;shadow=0;" parent="1" vertex="1"><mxGeometry x="447" y="190" width="189" height="34" as="geometry"/></mxCell><mxCell id="202" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=1;entryY=0.5;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" parent="1" source="99" target="105" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="788" y="287"/><mxPoint x="788" y="343"/></Array></mxGeometry></mxCell><mxCell id="99" value="fft2dmpi_with_fftw1d.pyx<br><b>FFT2DMPIWithFFTWMPI2D</b>" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;gradientColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="561" y="258" width="169" height="58" as="geometry"/></mxCell><mxCell id="196" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" parent="1" source="100" target="99" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="100" value="fft2dmpi_with_fftw1d.pxd<br><b>FFT2DMPIWithFFTWMPI2D</b>" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;shadow=0;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="352" y="257" width="171" height="60" as="geometry"/></mxCell><mxCell id="193" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;jettySize=auto;orthogonalLoop=1;" parent="1" source="105" target="135" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="105" value="Generate C++ code<br><b>purepymake.py</b> (<b>cython)</b>" style="shape=process;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Helvetica;strokeWidth=1;rounded=1;direction=east;" parent="1" vertex="1"><mxGeometry x="533" y="328" width="235" height="30" as="geometry"/></mxCell><mxCell id="194" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;" parent="1" source="135" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="650" y="450" as="targetPoint"/></mxGeometry></mxCell><mxCell id="135" value="Compile objects and build python extensions<br><b>purepymake.py (cython</b> / <b>mpicxx</b>)" style="shape=process;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Helvetica;strokeWidth=1;rounded=1;direction=east;" parent="1" vertex="1"><mxGeometry x="510" y="383" width="280" height="47" as="geometry"/></mxCell><mxCell id="189" value="<font face="Helvetica">Install fluidfft</font><br><b>setup.py</b>" style="shape=process;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Helvetica;strokeWidth=1;rounded=1;direction=east;" parent="1" vertex="1"><mxGeometry x="510" y="452" width="270" height="28" as="geometry"/></mxCell><mxCell id="177" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;" parent="1" source="168" target="170" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="168" value="Write user Python code" style="shape=document;whiteSpace=wrap;html=1;boundedLbl=1;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="492" y="510" width="144" height="40" as="geometry"/></mxCell><mxCell id="181" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;" parent="1" source="170" target="173" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="720" y="560"/></Array></mxGeometry></mxCell><mxCell id="170" value="Execute the python script" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Helvetica;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="670" y="505" width="100" height="50" as="geometry"/></mxCell><mxCell id="173" value="End" style="shape=mxgraph.flowchart.start_2;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="418" y="540" width="37" height="39" as="geometry"/></mxCell><mxCell id="195" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0;entryY=0.5;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" parent="1" source="178" target="168" edge="1"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="438" y="530"/></Array></mxGeometry></mxCell><mxCell id="178" value="Start" style="shape=mxgraph.flowchart.start_2;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="419" y="461" width="37" height="39" as="geometry"/></mxCell><mxCell id="182" value="Start" style="shape=mxgraph.flowchart.start_2;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="21" y="400" width="37" height="39" as="geometry"/></mxCell><mxCell id="183" value="End" style="shape=mxgraph.flowchart.start_2;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=1;" parent="1" vertex="1"><mxGeometry x="22" y="519" width="37" height="39" as="geometry"/></mxCell><mxCell id="206" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;fontFamily=Helvetica;" parent="1" source="203" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="269" y="519.9999999999999" as="targetPoint"/></mxGeometry></mxCell><mxCell id="203" value="Compile objects and build executable <b>(cython</b> / <b>mpicxx</b>)" style="shape=process;whiteSpace=wrap;html=1;fillColor=none;fontFamily=Helvetica;strokeWidth=1;rounded=1;direction=east;" parent="1" vertex="1"><mxGeometry x="158" y="455" width="222" height="47" as="geometry"/></mxCell></root></mxGraphModel> \ No newline at end of file +<mxfile userAgent="Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0" version="8.5.12" editor="www.draw.io" type="device"><diagram id="32c47e48-bc75-56f3-0806-9a032b4a9c3c" name="Page-1">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</diagram></mxfile> \ No newline at end of file diff --git a/fluidfft/Pyfig/fig_build_use.pdf b/fluidfft/Pyfig/fig_build_use.pdf new file mode 100644 index 0000000000000000000000000000000000000000..417f2f5a817c06c2b7d4b8c5d219a8ad7606b1fa GIT binary patch literal 112618 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%0DZoUcsR&H?eEYf&_j_;RtF>I8{uvdk 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�`I~<< z3FbR$KEF21>JXDV8ruM<BeewvxgR`QKSz7^FS6`nSoSwHLAP_}Yf&IB0AGLTEzYnu ztX#bMju4dIn;r#7rW|K~7Pu?D&!`UBB?(7`Bt`slW^Vphl$AkEe5}hAWShYzTfEh{ zCh;)vXKN{LbXZ5ZqFRFKMKWJf?0a1(gS8&tiZd|}Xx)G*M|g)yJo4aEDhZHCn^fga zfHSoj#5VNwk7M28E4(4O+ybGKZ_E|39&{SauHmfwkO2p1UxG7JhPHgv8NA}o`8xn} zAcpqIkl=e?C>>%Bh5bG;is3rwNy_z6P@VD$V{xPia08ej0<)dihft5X_9WyBlyB(! zEkXVstV_=##r|10@Nv>lW<B!59c5*RUW5dPF$wB`NJoO*dY!d6!&?-!A}SVb6xymp z6u=4K?vLnHghypOMr%j54NTML_J)VtXNVX|=1gx4ha+~|!+3}9)M;11qNPFaIZ$+n zdFynSf=SV}d(Sr^l*&0yf=zj=3Ds=JG1(5@ow)-?mf(>b%=SzIO<%-Pl&<}MIytML zxV~-OhXe@;?ry=g8yab#kw9aOBtU|@2MF$xU;!F;YcvFcH}1iu1HlOv+}$BT?|<)e z@2+#h%c-+!KFs>fF;<Q7tx>bq)5ikq_giy1A<>bqi>F<~a!$NaHQQqH=9^boG<OgV zk!6%&C#EA@AkJJNUs1H!+wM-*(u=-wYwKI=Y3shv`H*rCI1E9b_|3!)-A{jZiaduc zNq9cBxO;3Dl({EFa8LKqY#NI#JaU#KLQsj7H(rjv(v3VmZcV8w_Loc+gI>SZ+9NPD zAl-)FU%*;R^kZ~^@QBQfUp<VSteoh8T!Q3|U{k^Cx50~6cG?7d_M#o1LOPMwLJVEj zdTx8KcB79??4LJ6R#OK;i6$D+rU!_PG5z^Ah4;&Q52L<@+8*x)MIDi~gjOx$H5&_8 z@LgAl`Sksn7lq$)5R$e9G;Nv=C+5{n#D-7T2OJ8nVLDUmd|Jfn?^=7E=&(dKXIPbe z6KMZ99U5U{WH(CSO<2}@NFkavR9HVwesnEy8+?#wG%ksrLBKg30?O5IkZpLQ%|7v* z?<xIrF=)Lu_XTkwT(1Woxqh2}H%4L8;@W)n^{nBn=`7k+>SW-uKL(|8atT-5F2<3r zJ`-A}wD?@5cU)rgRV_*TTGjr&%z_Lrk;@j*N}<a1fz}rHvVk|B&iF-Vehq;w08MyY zrIYn)q!t!j5n{EC`^a?Zo3#U?XCWwM8M6HXsD4FPHzsn?28r_tsXQb7^{y|r{H5A4 z>oEl3wqXpRFZ3zuyyIhcCh#%CL8zH7TOB_ZfuAh$^2nyW9f6qR&IjskzWa@nl|zjt zd=7|n?V45jNWP5U5K&4_V@|s>uRo0zYP^^>3kMg%tm9~8tOg*+(4PspcV#sR_YBcj z75yqm*zYH9_mBC**4j0Y^ge!UC^q*>Xk;k9;|44c>o@I?98J(+7>7upf57=miAbVL zlk81|fAbgRbe3NVsw1X*L)H>5_?Fecp^gE^a??}mr=?JpcAemutsrC+^Jfyt__mLv zND85+aj~4@ikq+7j*_=NHk)KS(j|M-4yj=?)4QbOB~;Sl-PiM|8RKc>h`F+@_Or8h z#rnstWk(Bsc(%z@@uB8Jqb7^jlAkkOc(9h!1zehgH>oDMi{cc6CbT(+zLAznk5x*b zoD0aDw3aJGn`{Y#<xh@1ALAMmY8229`Fw%4*Hf`9Qci`(PiJxb;s)Mi82FiuxK9oE zGmpO9WZXIliLInaGqFsQ8hz@H{oR=4VoiB)9aB4abz4ziW+Bw9`;*v$){+1XcvNJl z&+HH9h5*4(pJ6t(+VY;~3me&N>{xV4_CiU8r`xJlCSG<~2JllmfuA<Qz7YbU*;8Bz zXWjNE7^zbgcHCyz1}0Aru%;cV$XAqfSX;0brJj|SvxvxLx4Q~{rDlwM8ZzeplCjz% zwoNRP+m7jV1J$RTw^8j$t-@&mwMbJjRT*YV91I>mV7;J73T|9h_vBO%mke_h318w+ zpZA9Vu9<7c#t+Ooxrjy}WWOzp_+Bh027_TEn_7L$NT&SHVo1~auMsRXZM)6(qG}V! zXaJsT&J)@#DJ;>E|Mm7p^0^YxqkQ!6TL<iCi7iqnOC1{`O$QN$6-zW_cte_0DJLwW z=!l;KGb%s+IYY0R*yyfng>>C&E2r9JAk&(C;n65~igE`>r3XuqU^!97T4LSe-YY=H z&a%xd4zC_Q-cv6XS}cdfQWGxg=~neKzm#-JRJl9&fE*Mm%WQ5)G{Lkp64uK!!y8oV zNP^C1Nn}eWB+(lL9sXJ_ZWt9p_w^HEb+QnDPL=-a0fPDfXP;;%()Cl*%gpVy5^9td z&jq#K-kDETMNef8OURz({Xh(^o&leV=?56hx%HBH?hKiyJ7+hSRIX<y-27J0u!;l5 z6Gf(^u1^wgz+1>6s|JFKnGt<<yQp4!mq$iQl|}(oSB|9-9Ji<i>o3)Si^iduI=OXW zBd;<dnh+pJHx(g~>6dC5g|O|NS1UNRIz8+u0-#_x^Q?u6s-irKz`1>+RwrcZD|>>X zM%ioTcTXD8^qJ>&ol{L+=G_jw4w4RN5B%PPCpX+1S`Qevs=Eyi-;$}x+YBP#(8olT zi2F5AnZmtij`SwDhTPM`*=hhF?xt9zyqmU(+cFR14Bfft9JPWOg~site}0z<?t4D& z11bfvvL@|m;bmHUU&t?bH51;gFseeMBg3NM(XM2!`?FE5jIYt;Q(E2|JU<!#Wn&Y_ z5NYj1#%kWDX0ttizv6tNBJwAfiK}sVyXkjFG<zDWvX>QBqlt8QAz-1PpkQZ}p1=p8 zf9}ZEoS05!0ekj*O6d+N@eb9AN56Bg)buJH4oPaD%ey(H64da2sqyhUW-Y_{TSl|! z@s;LJTD|i$Za%+Oe$Nq26y<7kZ3GWtH}jm?cqOf)w#r5ido$M99aH2;*#;w;IIcE+ zV_@@zQzs~c4-_xB)@PDuj)g-Vkeu@`Uv{YznUJV32X8Y}4OzYHdYR7={<1$&Au1Au z&64Zn_I?Eq*6IpDJt;`~@}f0;(p>nphK1eU@pt;-Rq7|dmW!q9c8DjFuyVE>M@>jB zb644CyZZ2h_V<SxpM(zE^lQL2JvH)(%p+!KGmGEB<<>pxS-vMebABvwmKv)$vXZa4 za=av|_Nh<cgG5ml+N8kKdsOtRl(~JSWSz}ms2gf`mPb9=0L4+mAj$m&W(c~B=T#mM zud_So%Z!j~J6>wZtmeBvM-A)!{C37$<n4F-;<Fho7!Ims`Me#~Y_-_tZ!j>l?pAN$ zv_7$^2p!)wcXi25MDW_tcyuzl2H#pf=039ox6Tv6m7`_T5j2|$I55>{59WCDlmi7E z759)3b)^Xr+ZISx@8zh<9yyySr#|#rnR#kWa561jWrf1`l}2e7>hbC-@#!U4F|&F` z(IwMxlVVfc3L?6;Q2n}PQh@hzI=Y%|NNmz>g=42DeF2=}sg8>wON#SDUb^8KBCgy# zB>V-4iL>}Q#JS1p?QmiP0i?JF5b+J=Swd%^o0^_ZMHx?{!KE+8A^BrTjYo=Z6Z=9d zQOy*#%79T<ffaf$oZUDwx_19VOqY*lkM*(-5hk(x8=^D#iuhwHZMc#%zZ3I!6z}td z5H1NZoGN0XwIe`rfAJ4RgwMOY4Jd?&MV4n!`bT&@kytMCz+=mdG(6x`YSEu2&C7w{ zm5GTA_OBXQ(tRa-n?K6do(0Pw1jR}Lo5+1YodHtO&N}aadB%Xy2{>9gs_70DaS4Oq z(WBxxz}<wIiBH-mS<UWzh2UvH5g1>RrzQz>0>%kRDFcXzU#3-&tTh|dX!!ow8V};* zjf&wbDF{+j8X$)C`fuX2dUpg;+t?43rI4`}7Bn>(aZUi=_XRySRE^FZP_6jv!PESK za6IW*qOnJ!G3!h-o%ua5+c5QqsHl~(^fyiE?btoq8O=Cmu#)>g-sEFctWEuNynUMU z^lYq_jJ0^c5s8li@%%cjiYly<tvSAyq`7BZNug3KV~c#@xcrR7r(giO0_5nPfGbsv zQxcg1i`)^#0!*E)Lo0cX4ql5ljt+-`jt(4oNGwrjvDFtmwDeirzRZP7FHq6=de(Or zj;6S5(MS8s6J)BL8U1n&+AczsR#R5vh`lDe^!<H}cB-*39Vd9B6P(f+4t7dU`%xs! zEY2@UU5b5yo*o;Q)!T|R?Hf~2)pePT1_gKty6?sf+o*0n>QOrWs+%Vu$s=St;`{9k zm|2lUNP#Z2O0MFlNmF4dvpQI)WgL05zT`+)jvn$$4;gZ{11*Nl;J*M@Mgm&HVjw)7 z`XnnoSRNtrIwPdCfic=#5-avl#yt-+1R=EJrsOGaL;jVsCOdwPgxmfs3m+#OSNIzU zU7kr*F}Gu#X({Ecl#tdC7rmE3;n@PuLCZ7}pyqq!mG<)}i{~J#GS|j0|5WvmURQKE zIf>^|ndg<dI*HXU*^{l(tfBYoJXgWf=7KCxcUcwEpDHLV4P2gGRy$05(zIm1`#i(1 zDCUUT&)4mNj5@)$_>iKiBk-;4G$ottcZ{z-oowa~;<(kHmb6c&W$aWltjf;clqjtb zGpX<W{Mg(0dO#n=Iw4i=gje7c$2%c|uZw{fI{DA-UzUXaI^2QDjLKt4ePQjxsE@QV zT3XNxRUs$Z$jC@zC5nJ6t0;!(uzf;MAcr|Rry06N?^6e9E#DkGD8M4p_#I^jh(FNA z9DQ6t4?W!Yopr6%q}3>*w23=CL^Rc6i=i-8F*!Fv=hJ}&rD&SP7IR8CsT+{115PXw z5?KTCDB*8XjBcjf$LX+V|2+3f&O-`Y<7B=v%_=c=H>WI$C~x?9N8nl5a+aZx%<~u@ z%N(K$QJPo%)u2(r5n1_H#AV9Fw9+ay{Qqy&P07}%@K&%2yrP5vx@4FdIpwlt$de?m z0V;d-ODz%QaO9VB8%3_Lx)84wUW(YaBk{eYuRXnoa=sB`kxBe?J_MDA6;-aHzNfV! zrfRklnz{6G3tv-f$&hS3x<^}PnUHxdf_myO_){d_lGTK~nDPB{G?v*i>*A~}(#Dok z(+Js$xdaE&aEeV+Tq^B$#l=S)EBTd34~fqUiLPq?)wWo(pLr`vdV91{yWZ$!%C@PH z$WLA#Te4Qz03%hPt=v?a%*pw*`Jmata~q6#D<mn)h*v{mj*96Z1sk%26JI7L$eVWK zxe}$*th!Ax1QjQ{9(L64$T@KEJGdcu8eO_hw{r}c6t2ju^c)sQ!2*m5PL~-|h$o1b z?Nk|6jAeip9xpnqTqu5G3rgd*W^_|!3(1$<cE~VG-dSthXsm0R_Bt^=HJxjjuHPbS zwkcP)Dykle(kUIR9<1h#e(lszob?)NsYxu<A<J$(1*m2f)!9h4)-+zWy4_~w(fT0b zw=$XS@46JaZ*V0ax^-Js9Y4lRcrYPia(ceV_sjd#jM?vWu6w-R`Cd$;<Qgwb<pA<Y zL~B?j(tI~*?w+qnQyjMvIY?clZDdz)lbgX<7hZbWO9W(k8P*a<G?QDsSVVd@P#exD zN}8?^Cj5GADs6QooIUVO6-@K{(-=5{H~<z4&SOWM=kWl+l58ztU-<?CI%?r9Ux|3f z?j?Zeko+^eDCs)lq|i}pXv1d{A1)!|=u4)-SIh#&nArP7+ba<shV|Bo=t4~l6Fn-& z1rVRo_j*n-`MJBr<=BD-ett6Ho=q0#zsD=^ekjt=Pl|u@I8i@oF4>6!mzL%7kan6Z z+w?Q88rA6Tk-f8Q)BWx1X-*#}8;b^LALA?Me6M-azsKREvBGAtNVZ6F|JGN*+tXXt zV~b7;jWijy21|qu4miK<C~i<Q<4G-H=`$U|j{5;Oh>nb^lAoQf*bZ~&U}FA77e|<u zoV9|DLKTHYM1@5}2<mYIlfN<z^hhza69tMfTB+*Wh4tVlnd{=^1IRWH8WQOtu=r9A zNmi(wY=0GVUx4Abm(iwKX2_6oadOz%&Cuwm)6af{0@aKxx<k!GQNjxz$ugX&$@)yX zSa)NG?hW@|q}-<MCe~o__tnA@{G1W2BsK2qpDy6~lIdTXHZsJwfH`2uCk%I0laTta zGjwVSj*HzCPtot@zbV$9tNT>4RLwq_Byw7HU5#Ahq^27hEcvLxn8;Dn%peJ{fnrUh z-TXQ+(Qy*`Q{>{k@O>L1cF7nr1NpA&pElj-J9Y%S+Soj2m3>nNJl-~#KkEs-3dt`R zTchwW7?@|iyUQv{0|~y_nRoOy9w;(=(VKW7GOV}r^SnFqOTZ$KlJ}<nK1TK;&GhC& zxH4OOL&PzOX2awXMk*!@$FSS)h9fA2A^e_>YSp6VSP924;1cx(v*IQ1zQqyMFXckY zmXPus$@;s?W{feWAT|+qLjlicc{N>27+aivc1KLI{j5PL?VN0sEjX{8lRLN^!}Z@C zad!8Y;2H+0|8Wbdk5z(pBEs2?br^R5LF9~jWy>wWcdX~C|LkQ9dc7!bEzaG7$UDlu z^>~G#R3N5D>|E#Qn{Up9Z51*3UKS*GctxR%n%kFN-|1F&m`Tji1<C)hU8EA<u%WU% zV*fBci5YVu%p>5L*tU)P&(W?2wfJ|V5A*-TZ}=mGE9*ji?T@A}V$Bd!Gcgf*2{?wq z;<mh-KT6;Kbi#}|uT)+3eJZ9?xnO^EU)Z|)Cp<r_Gvus;B1)i3$#lYw#rsk9Al?#D zfHk`NXg?BW%rIj%ZqTJ!S6DJ`@MF(&IwAB{tffqtc=d-T@D8oF8f(=8;(fHIRq@WB ze_BSwlQH-}>(K9T>aw`$8lA4B^$#wJ1%6tRpn{N8%o3nU-pItkgB`~E4oqmwy7TXF z(8k`7oz*K1Blap|l!T_lmp?dFb==FH%wZb&_n_KS?8`j{l?RMODFt|h75s-MH2gQr zCp7NT*XDxnf1)t&At?IPwB!#S{Fb_R5o`Fkl1W}{LD}&2ksHR#Db8k9ImEN`bIxO< zKi^Sb+fESXJ0&MU2~k;=S4}<l`{rAl6ev(iV{t;9$NQ*OV?-H}%Ks;WpmqfIugf%3 zpuga5RWL|Q`%CPP$xuV0yk`SsL;k_njILHkQ{11E+6_jGw28UVtI&KhY7mg_RvC7T z%ov5aSf-_30SA)b$KN(F#d3YqN}{TL`gP3)V#x@!svf<?Xf{>pHbRJ=SU8o~B|&K6 zre-)yG{_fqpb4GNfX~bkF-9ulq3slU-?OBwcD`LjDo>;`>9(1bGQYLtq#=FR`78ze z>4F!!MA8gxb#W}z#w#g;5jA<QEAg&S`E5%uifQgr{)`#1O|Y~qh21KdIdUvnR2Ouo zhI?bB6L;Eb`DJ<v;G`FWH)^B3%8-2%*ldO>2*gFvdf&-nepvc%z;3XJHL)#ZK^0Zs zxBUdE+oy>9wjIlo3n6EMNfGXIizaflyEz*+3r#<|-I#zXXouJ;T%eQ91!SiGU@-`8 z@2Q&4aQV*XS|0X;HxobnwB4pY^TI`?nClyXk9RWWXxAM=V;1JFg>jq7-+0|2L04w$ z682;~d>^XuZGjGSY+u0$qTSIS#m@LuWHC!`@}@xp=r2TaJG>EGjwps49_mx~F}z^7 zbCKiwtyEUmOU=`9`KHuWn9x`LOSqCB&l~-9z1Q9N>pC#2n^)#c5OR}R#yO@{d}t_r zaUH!w3Hu({A#$bx_#P1kk^%Ww=<01ezvfqXQ;_cMMC3`KXW*wq!0^=3u|^g}wHnR8 zDlt_=53kFXST6Rmk=O6l?{cSs@x1iU_lr{Sr&)Nzp@qyBf8|xG!BMqiA$`^KsqvTE zZFJ=D@6VPRn1Ot0IZn(?jw%)fD`GdYm{iNV{#0=7)AjSoq(06~`?i5o<s7<+MNQ;y zN;TQp<k<=L*)K};G*k7)DmHQXoP$s7o3?7qN2pGE40@##LmemKq5Lo=W+~gF_($kc zjDAU{hR&q&2HzOS8?CdcDx^yrLbJ4qI%LLOIQd_ZQmB6#Bktq<$@&J#5C@H@GXW&^ zQx&VyaC{KqfM3`bQM~*>#W|%|?!`WY+t^+sn;7XPdsr(VI<?_taMnu=wM`ywLAxDz z*@jl7s20l90^L`qGYE5UnAxnB9J&*~CN5tj{S#^I@U8g$e_MB#6~%Yda)#S}=A&-E z^cu3Cn1H-;@1Zfn;YFn*)uD4eVmzG*+w|R@*apYV??@IS5*j@+(?w6)SA+AJBqOdK zmppCE(D)OXhi?qD+nnxjk0DdDjvqdnfM3%}`_#9pwW>Ju>77bkNSsO>U$mU(Jx%$o ze7(;vb)edl2HmIJuuRV7=){lpIb&8piota#JBJcy=&KLA)R)HlCbw<43sV;!d1bnI zMR^%<9g+^8v|am7`8;$~{I{Fo|HPJ3MEL)+rHmVR*99PeUS7d<3L=)|_wq5#6vjwe zwt_@&AIVb{2I`VkwHz&KWhrWWl?v<{Y#r2x_FWYT&B~k|V9w-(s#32z(y+1-@_J6n zF>|o<+(vCB`Po8Ax_^j!@7a#y=5eFt#k`_z%`mCe>cXIxJ=-7=wJ%3ri3<f}pk^KR zMm@uzZvr}bMOtevYWE45;>&DFcV>robN=j#43jaksCrU?*=g*#Mr$|Vd68X3Ilg#> zMAj2+-W|m-wl-b)`HT_TzUu}iQNk}+d7u~Hi3)heKW+DG64+0(Sf%Vq)%Y=g_mFLl z40me|ENK1_ccbcN#H2P2uqYfa%h(;zh22~ZuC3{ZMcjos>k^G&9xhsAHGfUMeqzfI z@BdI`PiG6uX8;BP&@;e)9tI&nK><MqONRe2pdiD4oxJ}K0}6uvV*DVm(BE<Vf&d`@ zLnb8rfC=ymJY+(E2Mi?eFjo-xFjollAWrC?QF*`w`Ty<%1QL1BFG!I8Uw)5&F#+L+ zOc4AqS42SQFD3{Ucu<QVSV-h=tpvd${C_hcfPgUg0TX(lpRf=Z{C9oA!XUuknhFaG zf*vvv;DcNdfZ*S~fdLP{5f~sO@-R+B;P3jtK%mG&2IBuq7a$NQ2>5StuFfVlb{5Y6 zx)wBSye<AUx_s&m4z3IW|7BzPZ?{q4|MjhOaW!#v{r8Oj^BNH$;4>B$sG8jW0ftSR A%K!iX diff --git a/fluidfft/Pyfig/fig_build_use.svg b/fluidfft/Pyfig/fig_build_use.svg deleted file mode 100644 index a2ca4a0019fd8de3b52ff08a4c472b7433635144_Zmx1aWRmZnQvUHlmaWcvZmlnX2J1aWxkX3VzZS5zdmc=..0000000000000000000000000000000000000000 --- a/fluidfft/Pyfig/fig_build_use.svg +++ /dev/null @@ -1,1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="808px" height="570px" version="1.1"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-1-ffffff-1-s-0"><stop offset="0%" style="stop-color:#ffffff"/><stop offset="100%" style="stop-color:#ffffff"/></linearGradient></defs><g transform="translate(0.5,0.5)"><path d="M 170 30 L 107 30 L 107 83.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 107 88.88 L 103.5 81.88 L 107 83.63 L 110.5 81.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 220 50 L 220 83.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 220 88.88 L 216.5 81.88 L 220 83.63 L 223.5 81.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 170 10 L 270 10 L 270 44 Q 245 33.2 220 44 Q 195 54.8 170 44 L 170 16 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(193.5,9.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="53" height="29" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 54px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">base_fft.h<font face="Courier New"><br /><b>BaseFFT</b></font></div></div></foreignObject><text x="27" y="21" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 107 130 L 107 140 L 195 140 L 195 153.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 195 158.88 L 191.5 151.88 L 195 153.63 L 198.5 151.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 57 90 L 157 90 L 157 124 Q 132 113.2 107 124 Q 82 134.8 57 124 L 57 96 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(73.5,90.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="66" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 67px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">base_fft2d.h<br /><b>BaseFFT2D</b></div></div></foreignObject><text x="33" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 220 200 L 220 220 L 197 220 L 197 233.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 197 238.88 L 193.5 231.88 L 197 233.63 L 200.5 231.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 170 160 L 270 160 L 270 194 Q 245 183.2 220 194 Q 195 204.8 170 194 L 170 166 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(176.5,160.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="87" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 88px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">base_fft2dmpi.h<br /><b>BaseFFT2DMPI</b></div></div></foreignObject><text x="44" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 177 281 L 177 301 L 177 275 L 177 288.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 177 293.88 L 173.5 286.88 L 177 288.63 L 180.5 286.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 77 261 L 57 261 L 57 350 L 90 350 L 90 445.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 90 450.88 L 86.5 443.88 L 90 445.63 L 93.5 443.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 277 261 L 317 261 L 317 333 L 523.63 333" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 528.88 333 L 521.88 336.5 L 523.63 333 L 521.88 329.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 77 241 L 277 241 L 277 275 Q 227 264.2 177 275 Q 127 285.8 77 275 L 77 247 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(98.5,241.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="156" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 157px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">fft2dmpi_with_fftwmpi2d.h<br /><b>FFT2DMPIWithFFTWMPI2D</b></div></div></foreignObject><text x="78" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">fft2dmpi_with_fftwmpi2d.h<br><b>FFT2DMPIWithFFTWMPI2D</b></text></switch></g><path d="M 177 335 L 177 390 L 266 390 L 266 438.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 266 443.88 L 262.5 436.88 L 266 438.63 L 269.5 436.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 77 295 L 277 295 L 277 329 Q 227 318.2 177 329 Q 127 339.8 77 329 L 77 301 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(98.5,295.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="156" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 157px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">fft2dmpi_with_fftwmpi2d.cpp<br /><b>FFT2DMPIWithFFTWMPI2D</b></div></div></foreignObject><text x="78" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">fft2dmpi_with_fftwmpi2d.cpp<br><b>FFT2DMPIWithFFTWMPI2D</b></text></switch></g><path d="M 120 472 L 140 472 L 150.63 472.15" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 155.88 472.23 L 148.83 475.63 L 150.63 472.15 L 148.93 468.63 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 452 L 120 452 L 120 486 Q 90 475.2 60 486 Q 30 496.8 0 486 L 0 458 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(4.5,460.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="110" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 111px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Write user C++ code</div></div></foreignObject><text x="55" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Write user C++ code</text></switch></g><path d="M 220 130 L 220 150 L 220 140 L 220 153.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 220 158.88 L 216.5 151.88 L 220 153.63 L 223.5 151.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 170 90 L 270 90 L 270 124 Q 245 113.2 220 124 Q 195 134.8 170 124 L 170 96 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(183.5,90.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="72" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 73px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">base_fftmpi.h<br /><b>BaseFFTMPI</b></div></div></foreignObject><text x="36" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 87 200 L 87 220 L 162 220 L 162 234.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 162 239.88 L 158.5 232.88 L 162 234.63 L 165.5 232.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 37 160 L 137 160 L 137 194 Q 112 183.2 87 194 Q 62 204.8 37 194 L 37 166 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(57.5,168.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="59" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 60px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">fftw3-mpi.h</div></div></foreignObject><text x="30" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">fftw3-mpi.h</text></switch></g><path d="M 194 528.5 L 62.37 528.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 57.12 528.5 L 64.12 525 L 62.37 528.5 L 64.12 532 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="194" y="511" width="145" height="35" fill="none" stroke="#000000" pointer-events="none"/><g transform="translate(244.5,522.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="43" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 44px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Execute</div></div></foreignObject><text x="22" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Execute</text></switch></g><path d="M 627 50 L 627 103.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 627 108.88 L 623.5 101.88 L 627 103.63 L 630.5 101.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 577 10 L 677 10 L 677 44 Q 652 33.2 627 44 Q 602 54.8 577 44 L 577 16 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(602.5,18.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="48" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 49px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">base.pyx</div></div></foreignObject><text x="24" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">base.pyx</text></switch></g><path d="M 627 150 L 627 160 L 588 160 L 588 176.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 588 181.88 L 584.5 174.88 L 588 176.63 L 591.5 174.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 557 110 L 697 110 L 697 144 Q 662 133.2 627 144 Q 592 154.8 557 144 L 557 116 Z" fill="url(#mx-gradient-ffffff-1-ffffff-1-s-0)" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(568.5,118.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="116" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 117px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">template2d_mako.pyx</div></div></foreignObject><text x="58" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">template2d_mako.pyx</text></switch></g><path d="M 36.24 427 L 36.06 447.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 36.01 452.88 L 32.57 445.85 L 36.06 447.63 L 39.57 445.91 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 530 19 L 554 19 L 554 30 L 570.63 30" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 575.88 30 L 568.88 33.5 L 570.63 30 L 568.88 26.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 472.39 3.07 C 472.39 1.37 474.04 0 476.08 0 L 526.31 0 C 528.35 0 530 1.37 530 3.07 L 530 27.62 C 520.79 24.38 510.4 24.38 501.19 27.62 C 491.99 30.86 481.59 30.86 472.39 27.62 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 468.69 6.14 C 468.69 5.32 469.08 4.54 469.77 3.97 C 470.47 3.39 471.41 3.07 472.39 3.07 L 522.61 3.07 C 523.59 3.07 524.53 3.39 525.23 3.97 C 525.92 4.54 526.31 5.32 526.31 6.14 L 526.31 30.69 C 517.1 27.45 506.71 27.45 497.5 30.69 C 488.29 33.93 477.9 33.93 468.69 30.69 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 465 9.21 C 465 7.51 466.65 6.14 468.69 6.14 L 518.92 6.14 C 520.96 6.14 522.61 7.51 522.61 9.21 L 522.61 33.76 C 513.41 30.52 503.01 30.52 493.81 33.76 C 484.6 37 474.21 37 465 33.76 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(478.5,12.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="38" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 39px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">mpi4py</div></div></foreignObject><text x="19" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">mpi4py</text></switch></g><path d="M 530 72 L 554 72 L 554 40 L 570.63 40" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 575.88 40 L 568.88 43.5 L 570.63 40 L 568.88 36.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 472.39 56.07 C 472.39 54.37 474.04 53 476.08 53 L 526.31 53 C 528.35 53 530 54.37 530 56.07 L 530 80.62 C 520.79 77.38 510.4 77.38 501.19 80.62 C 491.99 83.86 481.59 83.86 472.39 80.62 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 468.69 59.14 C 468.69 58.32 469.08 57.54 469.77 56.97 C 470.47 56.39 471.41 56.07 472.39 56.07 L 522.61 56.07 C 523.59 56.07 524.53 56.39 525.23 56.97 C 525.92 57.54 526.31 58.32 526.31 59.14 L 526.31 83.69 C 517.1 80.45 506.71 80.45 497.5 83.69 C 488.29 86.93 477.9 86.93 468.69 83.69 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 465 62.21 C 465 60.51 466.65 59.14 468.69 59.14 L 518.92 59.14 C 520.96 59.14 522.61 60.51 522.61 62.21 L 522.61 86.76 C 513.41 83.52 503.01 83.52 493.81 86.76 C 484.6 90 474.21 90 465 86.76 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(479.5,65.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="36" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 37px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">numpy</div></div></foreignObject><text x="18" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">numpy</text></switch></g><path d="M 757 50 L 757 70 L 757 52 L 757 65.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 757 70.88 L 753.5 63.88 L 757 65.63 L 760.5 63.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 707 10 L 807 10 L 807 44 Q 782 33.2 757 44 Q 732 54.8 707 44 L 707 16 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(735.5,18.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="42" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 43px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">cpu.pxd</div></div></foreignObject><text x="21" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">cpu.pxd</text></switch></g><path d="M 707 92 L 697 92 L 697 30 L 683.37 30" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 678.12 30 L 685.12 26.5 L 683.37 30 L 685.12 33.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 707 72 L 807 72 L 807 106 Q 782 95.2 757 106 Q 732 116.8 707 106 L 707 78 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(719.5,80.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="75" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 76px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">util_pyfftw.pyx</div></div></foreignObject><text x="38" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">util_pyfftw.pyx</text></switch></g><path d="M 467 150 L 467 160 L 497 160 L 497 171.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 497 176.88 L 493.5 169.88 L 497 171.63 L 500.5 169.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 397 110 L 537 110 L 537 144 Q 502 133.2 467 144 Q 432 154.8 397 144 L 397 116 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(408.5,118.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="117" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 118px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">template2d_mako.pxd</div></div></foreignObject><text x="59" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">template2d_mako.pxd</text></switch></g><path d="M 539 214 L 539 234 L 435 234 L 435 240.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 435 245.88 L 431.5 238.88 L 435 240.63 L 438.5 238.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 539 214 L 539 234 L 643 234 L 643 241.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 643 246.88 L 639.5 239.88 L 643 241.63 L 646.5 239.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="444" y="180" width="189" height="34" rx="2.28" ry="2.28" fill="#ffffff" stroke="#000000" pointer-events="none"/><path d="M 471 180 L 471 214" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 606 180 L 606 214" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(478.5,182.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="120" height="28" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 121px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Generate Cython code<br /><b><font face="Courier New">mako</font></b></div></div></foreignObject><text x="60" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 727 277 L 785 277 L 785 333 L 771.37 333" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 766.12 333 L 773.12 329.5 L 771.37 333 L 773.12 336.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 558 248 L 727 248 L 727 297.3 Q 684.75 281.64 642.5 297.3 Q 600.25 312.96 558 297.3 L 558 256.7 Z" fill="url(#mx-gradient-ffffff-1-ffffff-1-s-0)" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(564.5,254.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="156" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 157px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">fft2dmpi_with_fftw1d.pyx<br /><b>FFT2DMPIWithFFTWMPI2D</b></div></div></foreignObject><text x="78" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">fft2dmpi_with_fftw1d.pyx<br><b>FFT2DMPIWithFFTWMPI2D</b></text></switch></g><path d="M 520 277 L 540 277 L 538 277 L 551.63 277" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 556.88 277 L 549.88 280.5 L 551.63 277 L 549.88 273.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 349 247 L 520 247 L 520 298 Q 477.25 281.8 434.5 298 Q 391.75 314.2 349 298 L 349 256 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(356.5,254.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="156" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 157px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">fft2dmpi_with_fftw1d.pxd<br /><b>FFT2DMPIWithFFTWMPI2D</b></div></div></foreignObject><text x="78" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">fft2dmpi_with_fftw1d.pxd<br><b>FFT2DMPIWithFFTWMPI2D</b></text></switch></g><path d="M 648 348 L 648 368 L 647 368 L 647 366.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 647 371.88 L 643.5 364.88 L 647 366.63 L 650.5 364.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="530" y="318" width="235" height="30" rx="4.5" ry="4.5" fill="none" stroke="#000000" pointer-events="none"/><path d="M 554 318 L 554 348 M 741 318 L 741 348" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(577.5,319.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="139" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 140px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Generate C++ code<br /><b>purepymake.py</b> (<b>cython)</b></div></div></foreignObject><text x="70" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Generate C++ code<br><b>purepymake.py</b> (<b>cython)</b></text></switch></g><path d="M 647 420 L 647 440 L 647 420 L 647 433.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 647 438.88 L 643.5 431.88 L 647 433.63 L 650.5 431.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="507" y="373" width="280" height="47" rx="7.05" ry="7.05" fill="none" stroke="#000000" pointer-events="none"/><path d="M 535 373 L 535 420 M 759 373 L 759 420" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(536.5,375.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="220" height="41" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 220px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Compile objects and build python extensions<br /><b>purepymake.py (cython</b> / <b>mpicxx</b>)</div></div></foreignObject><text x="110" y="27" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="507" y="442" width="270" height="28" rx="4.2" ry="4.2" fill="none" stroke="#000000" pointer-events="none"/><path d="M 534 442 L 534 470 M 750 442 L 750 470" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(608.5,442.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="67" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 68px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font face="Helvetica">Install fluidfft</font><br /><b>setup.py</b></div></div></foreignObject><text x="34" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 633 520 L 653 520 L 647 520 L 660.63 520" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 665.88 520 L 658.88 523.5 L 660.63 520 L 658.88 516.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 489 500 L 633 500 L 633 534 Q 597 523.2 561 534 Q 525 544.8 489 534 L 489 506 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(498.5,508.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="124" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 125px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Write user Python code</div></div></foreignObject><text x="62" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Write user Python code</text></switch></g><path d="M 717 545 L 717 550 L 458.37 550" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 453.12 550 L 460.12 546.5 L 458.37 550 L 460.12 553.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="667" y="495" width="100" height="50" fill="none" stroke="#000000" pointer-events="none"/><g transform="translate(668.5,506.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="96" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 96px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Execute the python script</div></div></foreignObject><text x="48" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Execute the python script</text></switch></g><ellipse cx="434" cy="550" rx="18.5" ry="19.5" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(422.5,543.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="21" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 22px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">End</div></div></foreignObject><text x="11" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">End</text></switch></g><path d="M 435 490 L 435 520 L 482.63 520" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 487.88 520 L 480.88 523.5 L 482.63 520 L 480.88 516.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="435" cy="471" rx="18.5" ry="19.5" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(421.5,464.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="26" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 27px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Start</div></div></foreignObject><text x="13" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Start</text></switch></g><ellipse cx="37" cy="410" rx="18.5" ry="19.5" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(23.5,403.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="26" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 27px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Start</div></div></foreignObject><text x="13" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Start</text></switch></g><ellipse cx="38" cy="529" rx="18.5" ry="19.5" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(26.5,522.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="21" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 22px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">End</div></div></foreignObject><text x="11" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">End</text></switch></g><path d="M 266 492 L 266 512 L 266 490 L 266 503.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 266 508.88 L 262.5 501.88 L 266 503.63 L 269.5 501.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="155" y="445" width="222" height="47" rx="7.05" ry="7.05" fill="none" stroke="#000000" pointer-events="none"/><path d="M 177 445 L 177 492 M 355 445 L 355 492" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(178.5,454.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="174" height="27" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 174px; white-space: normal; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Compile objects and build executable <b>(cython</b> / <b>mpicxx</b>)</div></div></foreignObject><text x="87" y="20" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">Compile objects and build executable <b>(cython</b> / <b>mpicxx</b>)</text></switch></g></g></svg> \ No newline at end of file diff --git a/fluidfft/Pyfig/fig_classes.dio b/fluidfft/Pyfig/fig_classes.dio new file mode 100644 index 0000000000000000000000000000000000000000..09a85b2ed8431fcdb5ee4ff155318768703da922_Zmx1aWRmZnQvUHlmaWcvZmlnX2NsYXNzZXMuZGlv --- /dev/null +++ b/fluidfft/Pyfig/fig_classes.dio @@ -0,0 +1,1 @@ +<mxGraphModel dx="424" dy="410" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="600" background="#ffffff"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;dashed=1;" edge="1" parent="1" source="2" target="5"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;dashed=1;" edge="1" parent="1" source="2" target="7"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;dashed=1;" edge="1" parent="1" source="2" target="8"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="2" value="BaseFFT" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="491" y="30" width="100" height="40" as="geometry"/></mxCell><mxCell id="13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;jettySize=auto;orthogonalLoop=1;dashed=1;" edge="1" parent="1" source="5" target="11"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;jettySize=auto;orthogonalLoop=1;dashed=1;" edge="1" parent="1" source="5" target="12"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="5" value="BaseFFTMPI" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="491" y="150" width="100" height="40" as="geometry"/></mxCell><mxCell id="24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="7" target="23"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="7" target="21"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="7" target="20"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="7" value="BaseFFT2D" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="307" y="150" width="100" height="40" as="geometry"/></mxCell><mxCell id="27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="8" target="16"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="8" target="15"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="8" value="BaseFFT3D" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="671" y="150" width="100" height="40" as="geometry"/></mxCell><mxCell id="36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;entryX=0.5;entryY=0;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="11" target="32"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="471" y="410"/><mxPoint x="87" y="410"/></Array></mxGeometry></mxCell><mxCell id="37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="11" target="18"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="471" y="410"/><mxPoint x="262" y="410"/></Array></mxGeometry></mxCell><mxCell id="11" value="BaseFFT2DMPI" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="411" y="250" width="120" height="40" as="geometry"/></mxCell><mxCell id="38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="12" target="31"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="637" y="410"/><mxPoint x="487" y="410"/></Array></mxGeometry></mxCell><mxCell id="39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="12" target="35"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="637" y="410"/><mxPoint x="661" y="410"/></Array></mxGeometry></mxCell><mxCell id="40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="12" target="19"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="637" y="410"/><mxPoint x="831" y="410"/></Array></mxGeometry></mxCell><mxCell id="41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="12" target="34"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="637" y="410"/><mxPoint x="1001" y="410"/></Array></mxGeometry></mxCell><mxCell id="12" value="BaseFFT3DMPI" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="577" y="250" width="120" height="40" as="geometry"/></mxCell><mxCell id="15" value="FFT3DWithCUFFT" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC99FF;strokeColor=#9933FF;" vertex="1" parent="1"><mxGeometry x="961" y="340" width="120" height="40" as="geometry"/></mxCell><mxCell id="16" value="FFT3DWithFFTW3D" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F8CECC;strokeColor=#EA6B66;" vertex="1" parent="1"><mxGeometry x="818" y="340" width="120" height="40" as="geometry"/></mxCell><mxCell id="18" value="FFT2DMPIWithFFTWMPI2D" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B9E0A5;strokeColor=#97D077;" vertex="1" parent="1"><mxGeometry x="182" y="460" width="160" height="40" as="geometry"/></mxCell><mxCell id="19" value="FFT3DMPIWithPFFT" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B9E0A5;strokeColor=#97D077;" vertex="1" parent="1"><mxGeometry x="751" y="459" width="160" height="40" as="geometry"/></mxCell><mxCell id="20" value="FFT2DWithCUFFT" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC99FF;strokeColor=#9933FF;" vertex="1" parent="1"><mxGeometry x="297" y="340" width="120" height="40" as="geometry"/></mxCell><mxCell id="21" value="FFT2DWithFFTW2D" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F8CECC;strokeColor=#EA6B66;" vertex="1" parent="1"><mxGeometry x="153" y="340" width="120" height="40" as="geometry"/></mxCell><mxCell id="23" value="FFT2DWithFFTW1D" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F8CECC;strokeColor=#EA6B66;" vertex="1" parent="1"><mxGeometry x="7" y="340" width="120" height="40" as="geometry"/></mxCell><mxCell id="29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.25;exitY=1;entryX=0.25;entryY=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" parent="1" source="19" target="19"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="31" value="FFT3DMPIWithFFTWMPI3D" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B9E0A5;strokeColor=#97D077;" vertex="1" parent="1"><mxGeometry x="407" y="460" width="160" height="40" as="geometry"/></mxCell><mxCell id="32" value="FFT2DMPIWithFFTW1D" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B9E0A5;strokeColor=#97D077;" vertex="1" parent="1"><mxGeometry x="7" y="460" width="160" height="40" as="geometry"/></mxCell><mxCell id="33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=0.25;exitY=1;entryX=0.25;entryY=1;dashed=1;jettySize=auto;orthogonalLoop=1;" edge="1" source="34" target="34" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="34" value="FFT3DMPIWithP3DFFT" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B9E0A5;strokeColor=#97D077;" vertex="1" parent="1"><mxGeometry x="921" y="459" width="160" height="40" as="geometry"/></mxCell><mxCell id="35" value="FFT3DMPIWithFFTW1D" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B9E0A5;strokeColor=#97D077;" vertex="1" parent="1"><mxGeometry x="581" y="459" width="160" height="40" as="geometry"/></mxCell></root></mxGraphModel> \ No newline at end of file diff --git a/fluidfft/Pyfig/fig_classes.pdf b/fluidfft/Pyfig/fig_classes.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4d4661e602ad4a622f53974d588fd329131d4aa2 GIT binary patch literal 10058 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 CCaLTI diff --git a/fluidfft/Pyfig/fig_classes.svg b/fluidfft/Pyfig/fig_classes.svg new file mode 100644 index 0000000000000000000000000000000000000000..09a85b2ed8431fcdb5ee4ff155318768703da922_Zmx1aWRmZnQvUHlmaWcvZmlnX2NsYXNzZXMuc3Zn --- /dev/null +++ b/fluidfft/Pyfig/fig_classes.svg @@ -0,0 +1,1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1075px" height="480px" version="1.1"><defs/><g transform="translate(0.5,0.5)"><path d="M 534 40 L 534 113.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 534 118.88 L 530.5 111.88 L 534 113.63 L 537.5 111.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 484 20 L 351 20 L 351 113.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 351 118.88 L 347.5 111.88 L 351 113.63 L 354.5 111.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 584 20 L 715 20 L 715 113.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 715 118.88 L 711.5 111.88 L 715 113.63 L 718.5 111.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="484" y="0" width="100" height="40" rx="6" ry="6" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(507.5,12.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="50" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 51px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">BaseFFT</div></div></foreignObject><text x="25" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">BaseFFT</text></switch></g><path d="M 535 160 L 535 190 L 465 190 L 465 213.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 465 218.88 L 461.5 211.88 L 465 213.63 L 468.5 211.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 535 160 L 535 190 L 631 190 L 631 213.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 631 218.88 L 627.5 211.88 L 631 213.63 L 634.5 211.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="484" y="120" width="100" height="40" rx="6" ry="6" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(497.5,132.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="71" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 72px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">BaseFFTMPI</div></div></foreignObject><text x="36" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">BaseFFTMPI</text></switch></g><path d="M 300 140 L 61 140 L 61 303.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 61 308.88 L 57.5 301.88 L 61 303.63 L 64.5 301.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 300 140 L 207 140 L 207 303.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 207 308.88 L 203.5 301.88 L 207 303.63 L 210.5 301.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 350 160 L 350 303.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 350 308.88 L 346.5 301.88 L 350 303.63 L 353.5 301.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="300" y="120" width="100" height="40" rx="6" ry="6" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(316.5,132.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="65" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 66px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">BaseFFT2D</div></div></foreignObject><text x="33" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">BaseFFT2D</text></switch></g><path d="M 764 140 L 871 140 L 871 303.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 871 308.88 L 867.5 301.88 L 871 303.63 L 874.5 301.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 764 140 L 1015 140 L 1015 303.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 1015 308.88 L 1011.5 301.88 L 1015 303.63 L 1018.5 301.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="664" y="120" width="100" height="40" rx="6" ry="6" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(680.5,132.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="65" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 66px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">BaseFFT3D</div></div></foreignObject><text x="33" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">BaseFFT3D</text></switch></g><path d="M 465 260 L 465 380 L 81 380 L 81 423.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 81 428.88 L 77.5 421.88 L 81 423.63 L 84.5 421.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 465 260 L 465 380 L 255 380 L 255 423.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 255 428.88 L 251.5 421.88 L 255 423.63 L 258.5 421.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="404" y="220" width="120" height="40" rx="6" ry="6" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(419.5,232.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="86" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 87px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">BaseFFT2DMPI</div></div></foreignObject><text x="43" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">BaseFFT2DMPI</text></switch></g><path d="M 631 260 L 631 380 L 481 380 L 481 423.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 481 428.88 L 477.5 421.88 L 481 423.63 L 484.5 421.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 631 260 L 631 380 L 655 380 L 655 422.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 655 427.88 L 651.5 420.88 L 655 422.63 L 658.5 420.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 631 260 L 631 380 L 825 380 L 825 422.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 825 427.88 L 821.5 420.88 L 825 422.63 L 828.5 420.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 631 260 L 631 380 L 995 380 L 995 422.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 995 427.88 L 991.5 420.88 L 995 422.63 L 998.5 420.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="570" y="220" width="120" height="40" rx="6" ry="6" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(585.5,232.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="86" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 87px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">BaseFFT3DMPI</div></div></foreignObject><text x="43" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">BaseFFT3DMPI</text></switch></g><rect x="954" y="310" width="120" height="40" rx="6" ry="6" fill="#cc99ff" stroke="#9933ff" pointer-events="none"/><g transform="translate(962.5,322.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="101" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 102px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT3DWithCUFFT</div></div></foreignObject><text x="51" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT3DWithCUFFT</text></switch></g><rect x="811" y="310" width="120" height="40" rx="6" ry="6" fill="#f8cecc" stroke="#ea6b66" pointer-events="none"/><g transform="translate(814.5,322.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="111" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 112px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT3DWithFFTW3D</div></div></foreignObject><text x="56" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT3DWithFFTW3D</text></switch></g><rect x="175" y="430" width="160" height="40" rx="6" ry="6" fill="#b9e0a5" stroke="#97d077" pointer-events="none"/><g transform="translate(176.5,442.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="154" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 155px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT2DMPIWithFFTWMPI2D</div></div></foreignObject><text x="77" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT2DMPIWithFFTWMPI2D</text></switch></g><rect x="744" y="429" width="160" height="40" rx="6" ry="6" fill="#b9e0a5" stroke="#97d077" pointer-events="none"/><g transform="translate(765.5,441.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="114" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 115px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT3DMPIWithPFFT</div></div></foreignObject><text x="57" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT3DMPIWithPFFT</text></switch></g><rect x="290" y="310" width="120" height="40" rx="6" ry="6" fill="#cc99ff" stroke="#9933ff" pointer-events="none"/><g transform="translate(298.5,322.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="101" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 102px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT2DWithCUFFT</div></div></foreignObject><text x="51" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT2DWithCUFFT</text></switch></g><rect x="146" y="310" width="120" height="40" rx="6" ry="6" fill="#f8cecc" stroke="#ea6b66" pointer-events="none"/><g transform="translate(149.5,322.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="111" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 112px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT2DWithFFTW2D</div></div></foreignObject><text x="56" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT2DWithFFTW2D</text></switch></g><rect x="0" y="310" width="120" height="40" rx="6" ry="6" fill="#f8cecc" stroke="#ea6b66" pointer-events="none"/><g transform="translate(3.5,322.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="111" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 112px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT2DWithFFTW1D</div></div></foreignObject><text x="56" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT2DWithFFTW1D</text></switch></g><path d="M 785 470 L 785 470" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 785 470 L 785 470 L 785 470 L 785 470 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="400" y="430" width="160" height="40" rx="6" ry="6" fill="#b9e0a5" stroke="#97d077" pointer-events="none"/><g transform="translate(401.5,442.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="154" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 155px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT3DMPIWithFFTWMPI3D</div></div></foreignObject><text x="77" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT3DMPIWithFFTWMPI3D</text></switch></g><rect x="0" y="430" width="160" height="40" rx="6" ry="6" fill="#b9e0a5" stroke="#97d077" pointer-events="none"/><g transform="translate(12.5,442.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="132" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 133px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT2DMPIWithFFTW1D</div></div></foreignObject><text x="66" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT2DMPIWithFFTW1D</text></switch></g><path d="M 955 470 L 955 470" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/><path d="M 955 470 L 955 470 L 955 470 L 955 470 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="914" y="429" width="160" height="40" rx="6" ry="6" fill="#b9e0a5" stroke="#97d077" pointer-events="none"/><g transform="translate(928.5,441.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="129" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 130px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT3DMPIWithP3DFFT</div></div></foreignObject><text x="65" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT3DMPIWithP3DFFT</text></switch></g><rect x="574" y="429" width="160" height="40" rx="6" ry="6" fill="#b9e0a5" stroke="#97d077" pointer-events="none"/><g transform="translate(586.5,441.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="132" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 133px; white-space: nowrap; overflow-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">FFT3DMPIWithFFTW1D</div></div></foreignObject><text x="66" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">FFT3DMPIWithFFTW1D</text></switch></g></g></svg> \ No newline at end of file diff --git a/fluidfft/fluidfft_paper.tex b/fluidfft/fluidfft_paper.tex index a2ca4a0019fd8de3b52ff08a4c472b7433635144_Zmx1aWRmZnQvZmx1aWRmZnRfcGFwZXIudGV4..09a85b2ed8431fcdb5ee4ff155318768703da922_Zmx1aWRmZnQvZmx1aWRmZnRfcGFwZXIudGV4 100644 --- a/fluidfft/fluidfft_paper.tex +++ b/fluidfft/fluidfft_paper.tex @@ -124,7 +124,7 @@ \begin{outline} \1 sequential FFT, using: - \2 \pack{numpy.fft} and \pack{scipy.fftpack} which are essentially + \2 \pack{numpy.fft} and \pack{scipy.fftpack} which are essentially C and Fortran extensions for \libpack{FFTPACK} library. \2 \pack{pyFFTW} which wraps FFTW library and provides interfaces similar to the \pack{numpy.fft} and \pack{scipy.fftpack} implementations. @@ -151,7 +151,7 @@ % \item No GPU-based FFT, \item No effort so far to consolidate all possible FFT libraries, both sequential, MPI and GPGPU based under a single package with similar syntax. - + \item Quite complicated even for the simplest use case scenarios. To understand how to use them, a novice user has to read at least the FFTW documentation. @@ -155,6 +155,6 @@ \item Quite complicated even for the simplest use case scenarios. To understand how to use them, a novice user has to read at least the FFTW documentation. - + \item No benchmarks between libraries and between the Python solutions and solutions based only on a compiled language (as C, C++ or Fortran). @@ -159,6 +159,6 @@ \item No benchmarks between libraries and between the Python solutions and solutions based only on a compiled language (as C, C++ or Fortran). - + \item Provides just the FFT and inverse FFT functions, no assosciated linear algebra operators. @@ -266,7 +266,7 @@ % This is in contrast with the approach taken by \pack{numpy.fft} and \pack {scipy.fftpack}, wherein the user has to figure out from the documentation the -procedure to design the input values and to use the return values provided to the +procedure to design the input values and to use the return values while using the FFT and inverse FFT functions. The Python API wraps all the functionalities of its C++ counterpart and offers a more richer experience through an accompanying operator class. @@ -285,7 +285,7 @@ \frac{1}{\sqrt{2\pi}} \int_0^{2\pi}\int_0^{2\pi} i\mathbf{k} - \hat u(k_x,k_y) \exp(-ik_x x - ik_y y) dk_x dk_y + \hat u(k_x,k_y) \exp(-ik_x x - ik_y y) dk_x dk_y \end{align*} where $k_x$, $k_y$ represent the wavenumber corresponding to x- and y-directions, @@ -311,11 +311,11 @@ A parallelized version of the above code will work out of the box, simply by replacing the FFT class with an MPI-based FFT class, for eg. \codeinline{fft2d.with\_fftwmpi2d}. Even if one finds the available methods -in the operator class to be lacking one can use, for instance use the -wavenumber arrays, \codeinline{oper.KX} and \codeinline{oper.KY} to create a -new function. Arguably, a similar implementation with other available -packages would require the know-how on how FFT arrays are allocated in the -memory, normalized, decomposed in parallel and so on. A more detailed +in the operator class to be lacking one can inherit the class and create a +new method, for instance using the wavenumber arrays, \codeinline{oper.KX} +and \codeinline{oper.KY}. Arguably, a similar implementation with other +available packages would require the know-how on how FFT arrays are allocated +in the memory, normalized, decomposed in parallel and so on. A more detailed introduction on how to use \fluidpack{fft} and available functions can be found in the tutorials\footnote{\url{https://fluidfft.readthedocs.io/en/latest/tutorials.html}}. @@ -328,4 +328,16 @@ names. This forms an API with which, a developer can easily switch between FFT libraries, and not be dependent on simply one implementation. + +\begin{figure}[htp] + \centering + \includegraphics[width=\linewidth]{Pyfig/fig_classes} + \caption{ + Class hierarchy demonstrating object-oriented approach. The sequential classes + are shown in red, the CUDA-based classes in magenta and the MPI-based classes + in green. + } + \label{fig:classes} +\end{figure} + Layers: @@ -331,6 +343,5 @@ Layers: - \begin{itemize} \item One C++ class per method forming a hierarchy of C++ classes. @@ -333,10 +344,7 @@ \begin{itemize} \item One C++ class per method forming a hierarchy of C++ classes. -Todo: We need a nice figure of this hierarchy (see the Doxygen -documentation)... - \item Cython wrappers of the C++ classes with their unittest functions. The Cython \codeinline{.pyx} and \codeinline{.pxd} files are produced from template files (specialized for the 2d and 3d cases) using the template @@ -354,6 +362,19 @@ \end{itemize} +\begin{figure}[htp] + \centering + \includegraphics[width=\linewidth]{Pyfig/fig_build_use} + \caption{Flowchart illustrating how the C++ and Python API are built and used + for one particular class, viz. \codeinline{FFT2DMPIWithFFTWMPI2D}. The dotted + arrows in C++ part stand for include statements, demonstrating the class + hierarchy and in the Python part indicate how different codes are imported. On + the bottom, a smaller flowchart demonstrates how to use the API by writing user + code. + } + \label{fig:build_use} +\end{figure} + \subsection*{Performance} \subsubsection*{Scalability analysis using \codeinline{fluidfft-bench}} @@ -486,7 +507,7 @@ \textcolor{blue}{Please include minimum version compatibility.} -Windows and any POSIX based OS, such as GNU/Linux and Mac OS X +Windows and any POSIX based OS, such as GNU/Linux and Mac OS X \section*{Programming language} @@ -600,7 +621,7 @@ % where available, citing them in the text with a number in square brackets, % e.g.} -\bibliographystyle{../agsm} +\bibliographystyle{../agsm} \bibliography{../bib} \rule{\textwidth}{1pt}