<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Dear Dyer,</p>
    <p>   you are right... the factor of two you find is the difference
      between the radius and the diameter of a sphere.</p>
    <p> <br>
    </p>
    <p>   the bit of code in FFTXlib/src/fft_type.f90 I pointed to
      earlier defines the ranges nr1,nr2,nr3 of a parallelepiped box
      that contains the G-sphere of sqrt(gcutm) radius.   <br>
    </p>
    <p>    these are then passed to grid_set( dfft, bg, gcutm, dfft%nr1,
      dfft%nr2, dfft%nr3 ) where the actual size is determined in three
      nested loops that range from - the estimated limit to + the
      estimated limit<br>
    </p>
    <p>     DO k = -nr3, nr3<br>
                DO j = -nr2, nr2<br>
                  DO i = -nr1, nr1</p>
    <p><br>
    </p>
    <p>   where the maximum ACTUAL absolute index values are set as
      nb(1),nb(2),nb(3), which should coincide with nr1,nr2,nr3 if they
      were computed properly, and finally set the grid dimensions as <br>
    </p>
    <p><br>
    </p>
    <p>      nr1 = 2 * nb(1) + 1<br>
            nr2 = 2 * nb(2) + 1<br>
            nr3 = 2 * nb(3) + 1<br>
      <br>
    </p>
    <p>stefano</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 02/03/25 06:04, Dyer, Brock wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:PH7PR22MB3661A855AAC32997B33845DBCFCE2@PH7PR22MB3661.namprd22.prod.outlook.com">
      
      <style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        I've been tracing down all the variables that are required to
        generate a good FFT grid, and I seem to be off by a factor of 2
        in the end. I can't quite figure out what the issue is, but my
        guess may be that while I am storing 'ecutwfc' in Rydbergs there
        is a conversion to Hartrees somewhere in the code that I haven't
        seen yet. </div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        My current process looks like this (with some values from a run
        I had recently so I can compare):</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);"><br>
      </div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        ecutwfc = 100 Ry</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        Ecutrho = 400 Ry</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div class="elementToProof" style="line-height: 24px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        # Unit cell dimensions, given in Bohrs</div>
      <div class="elementToProof" style="line-height: 24px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        v1 = [44.09733757, 0.0, 0.0]</div>
      <div class="elementToProof" style="line-height: 24px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        v2 = [0.0, 44.09733757, 0.0]</div>
      <div class="elementToProof" style="line-height: 24px; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        v3 = [0.0, 0.0, 44.09733757]</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        alat = sqrt(v1[0]**2 + v1[1]**2 + v1[2]**2)</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        tpiba = (2.0 * pi) / alat</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        gcutm = ecutrho / (tpiba**2)</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        at = [v1/alat, v2/alat, v3/alat]</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        nr1 = int(sqrt(gcutm) * sqrt(at[0][0]**2 + at[0][1]**2 +
        at[0][2]**2)) + 1</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        nr2 = int(sqrt(gcutm) * sqrt(at[1][0]**2 + at[1][1]**2 +
        at[1][2]**2)) + 1</div>
      <div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
        nr3 = int(sqrt(gcutm) * sqrt(at[2][0]**2 + at[2][1]**2 +
        at[2][2]**2)) + 1</div>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div class="elementToProof" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        These last lines are where I've noticed the problem. From
        looking at the output of my run with the given cell sizes, I
        expect an FFT grid of 288x288x288, however if I were to run this
        code (and the code that checks if it's a good size) I'd get an
        FFT grid that is only half that. I'd love some advice on this if
        it is at all possible. I also can send some more formatted code
        if it would help (I decided to cut down the python code so it
        looked a bit more like the original f90 code).</div>
      <div class="elementToProof" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <hr style="display: inline-block; width: 98%;">
      <span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><b>From:</b> users
        on behalf of Stefano de Gironcoli<br>
        <b>Sent:</b> Thursday, February 27, 2025 2:50 PM<br>
        <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:users@lists.quantum-espresso.org">users@lists.quantum-espresso.org</a><br>
        <b>Subject:</b> Re: [QE-users] Details of Automatic FFT Grid
        Size Calculation </span>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <p style="margin-top: 0px; margin-bottom: 0px;">it's in SUBROUTINE
        realspace_grid_init  in  FFTXlib/src/file fft_types.f90</p>
      <p style="margin-top: 0px; margin-bottom: 0px;">        !<br>
                 ! ... calculate the size of the real-space dense grid
        for FFT<br>
                 ! ... first, an estimate of nr1,nr2,nr3, based on the
        max values<br>
                 ! ... of n_i indices in:   G = i*b_1 + j*b_2 + k*b_3<br>
                 ! ... We use G*a_i = n_i => n_i .le. |Gmax||a_i|<br>
                 !<br>
                 dfft%nr1 = int ( sqrt (gcutm) * sqrt (at(1, 1)**2 +
        at(2, 1)**2 + at(3, 1)**2) ) + 1<br>
                 dfft%nr2 = int ( sqrt (gcutm) * sqrt (at(1, 2)**2 +
        at(2, 2)**2 + at(3, 2)**2) ) + 1<br>
                 dfft%nr3 = int ( sqrt (gcutm) * sqrt (at(1, 3)**2 +
        at(2, 3)**2 + at(3, 3)**2) ) + 1<br>
        <br>
      </p>
      <p style="margin-top: 0px; margin-bottom: 0px;">stefano</p>
      <p style="margin-top: 0px; margin-bottom: 0px;"><br>
      </p>
      <p style="margin-top: 0px; margin-bottom: 0px;"><br>
      </p>
      <div>On 27/02/25 20:11, Dyer, Brock wrote:</div>
      <blockquote>
        <div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
          Hello all, I have been working quite a bit lately on
          automating my QE workflow, and as part of that workflow I
          check the automatically calculated FFT grid sizes for the
          level of theory that I have been using in order to improve my
          parallelization. </div>
        <div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
          <br>
        </div>
        <div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
          I have tried tracing down and reading the code that calculates
          the FFT grid sizes, however I cannot find/understand the
          actual code to calculate the grid sizes. My current
          understanding is that the initial parameters to calculate the
          grid size are 'ecutwfc' and/or 'ecutrho', and the unit cell
          size, and then there seems to be some more math, and perhaps
          at the end the final dimensions get calculated in
          'fft_ggen.f90'. </div>
        <div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
          <br>
        </div>
        <div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
          What I am looking for ideally is a mathematical formula that
          includes all of the input parameters and operations required
          to calculate the FFT grid sizes so that I can implement it
          into my workflow and hopefully not have to run double
          calculations to properly parallelize.</div>
        <div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
          <br>
        </div>
        <div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
          Thanks in advance for the help!</div>
        <div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
          <br>
        </div>
        <div id="x_Signature" style="color: inherit;">
          <p style="margin-top: 0px; margin-bottom: 0px;">Brock Dyer,
            Ursinus College Class of 2025</p>
          <p style="margin-top: 0px; margin-bottom: 0px;"><br>
          </p>
        </div>
        <br>
        <fieldset class="x_moz-mime-attachment-header" style="color: inherit;"></fieldset>
        <pre><div>_______________________________________________________________________________
The Quantum ESPRESSO Foundation stands in solidarity with all civilians worldwide who are victims of terrorism, military aggression, and indiscriminate warfare.
--------------------------------------------------------------------------------
Quantum ESPRESSO is supported by MaX (<a href="https://linkprotect.cudasvc.com/url?a=http%3a%2f%2fwww.max-centre.eu&c=E,1,o6mRyDmIfQXWXGr_JikolRfWqjEMwbk8xt5Q6J2l_N7Fky0gnXgD_aQU9TdYIxh51SmHmmgN9S5AJxHAS6vpqDSxTijqfOUXWuQTbchy3TZnaqcHjGvJ&typo=1" id="OWA93447cae-a3ce-aa60-bd32-8ced7a863f36" class="x_moz-txt-link-abbreviated OWAAutoLink" data-auth="NotApplicable" moz-do-not-send="true">www.max-centre.eu</a>)
users mailing list <a href="mailto:users@lists.quantum-espresso.org" id="OWAa4564cba-a93d-6029-42e4-144decaef0d5" class="x_moz-txt-link-abbreviated OWAAutoLink moz-txt-link-freetext" moz-do-not-send="true">users@lists.quantum-espresso.org</a>
<a href="https://linkprotect.cudasvc.com/url?a=https%3a%2f%2flists.quantum-espresso.org%2fmailman%2flistinfo%2fusers&c=E,1,MVtAKpGoN3VwtTvpYzhgehNBw3lc6Ccvz18zJQYi8KwO2z3w1lLip_vRNXU25kTl-Lr0eMQKhqjTUVWShMvELzUclPM0hjrp4RgEFfOWL7-pZnGUAGdhpqG_ZBdI&typo=1" id="OWA94b4c9ed-ff7e-94ee-275d-713b523a8764" class="x_moz-txt-link-freetext OWAAutoLink" data-auth="NotApplicable" moz-do-not-send="true">https://lists.quantum-espresso.org/mailman/listinfo/users</a></div></pre>
      </blockquote>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________________________________________
The Quantum ESPRESSO Foundation stands in solidarity with all civilians worldwide who are victims of terrorism, military aggression, and indiscriminate warfare.
--------------------------------------------------------------------------------
Quantum ESPRESSO is supported by MaX (<a class="moz-txt-link-abbreviated" href="http://www.max-centre.eu">www.max-centre.eu</a>)
users mailing list <a class="moz-txt-link-abbreviated" href="mailto:users@lists.quantum-espresso.org">users@lists.quantum-espresso.org</a>
<a class="moz-txt-link-freetext" href="https://lists.quantum-espresso.org/mailman/listinfo/users">https://lists.quantum-espresso.org/mailman/listinfo/users</a></pre>
    </blockquote>
  </body>
</html>