<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I believe I've been able to implement a method that can determine the dimensions of the FFT grid for most cases (I neglected to include the check for if the system is a NEC SX-6 supercomputer since they are more than 20 years old at this point). </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);">
Huge thanks to Stefano de Gironcoli for helping point me in the right direction!</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);">
Also, if I have made a mistake here, I would really appreciate it if someone could let me know so I can rectify my error!</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);">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
from math import gcd, sqrt, ceil, log2</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
import numpy.typing as npt</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
import numpy as np</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);">
<br>
</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
def allowed_fft_dimension(nr: int, is_essl: bool = False) -> bool:</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
"""</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Determine if the FFT dimension is allowable</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
### Parameters</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
1. nr : int</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Possible FFT dimension to test</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
2. is_essl : bool, (default False)</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- True only if QE was compiled with the Engineering Scientific Subroutine Library (ESSL)</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
"""</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
if is_essl == True and log2(nr).is_integer():</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
return False</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
factors = [2, 3, 5, 7, 11]</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
pwr = [0, 0, 0, 0, 0]</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
mr = nr</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
count = 0</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
while mr > 1 and count < 5:</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
for j in range(5):</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
if mr % factors[j] == 0:</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
count = 0</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
pwr[j] += 1</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
mr = mr / factors[j]</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
else:</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
count += 1</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
continue</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
if mr != 1:</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
False</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
elif (</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
is_essl == True</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
and not pwr[0] >= 1</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
and not pwr[1] <= 2</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
and not pwr[2] <= 1</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
and not pwr[3] <= 1</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
and not pwr[4] <= 1</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
and not (pwr[1] == 0 and (pwr[2] + pwr[3] + pwr[4]) <= 2)</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
or not ((pwr[1] != 0 and pwr[2] + pwr[3] + pwr[4]) <= 1)</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
):</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
return False</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
elif (</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
(pwr[3] or pwr[4]) != 0 or count >= 5</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
):</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
return False</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
else:</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
return True</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);">
<br>
</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
def get_fft_dimensions(</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
v1: npt.ArrayLike,</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
v2: npt.ArrayLike,</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
v3: npt.ArrayLike,</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
ecutwfc: int,</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
ecutrho: int = None,</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
is_essl: bool = False,</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
) -> list[int]:</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
"""</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Determine FFT dimension from a given unit cell</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
### Parameters</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
1. v1 : ArrayLike</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- First dimension of unit cell</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
2. v2 : ArrayLike</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Second dimension of unit cell</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
3. v3 : ArrayLike</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Third dimension of unit cell</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
4. ecutwfc : int</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Kinetic energy cutoff (in Rydbergs)</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
5. ecutrho : int, (default None)</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Kinetic energy cutoff for charge density and potential (in Rydbergs)</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- If not given, `ecutrho = ecutwfc * 4`</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
6. is_essl : bool, (default False)</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
- Set True if QE was compiled with the Engineering Scientific Subroutine Library (ESSL)</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
"""<br>
<br>
</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
if ecutrho is None:</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
ecutrho = 4 * ecutwfc</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
# Lattice Parameter (corner to corner distance in bohrs)</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
alat = np.sqrt(v1[0] ** 2 + v1[1] ** 2 + v1[2] ** 2)</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
# Cell parameters but in alat units</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
at: list[list[float]] = [</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
v1 / alat,</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
v2 / alat,</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
v3 / alat,</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
]</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
tpiba = (2.0 * np.pi) / alat</div>
<div class="elementToProof" style="line-height: 1.2; 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="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
# Initial guesses at FFT grid sizes</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
nr1 = 2 * int(np.sqrt(gcutm) * np.sqrt(at[0][0] ** 2 + at[0][1] ** 2 + at[0][2] ** 2)) + 1</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
nr2 = 2 * int(np.sqrt(gcutm) * np.sqrt(at[1][0] ** 2 + at[1][1] ** 2 + at[1][2] ** 2)) + 1</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
nr3 = 2 * int(np.sqrt(gcutm) * np.sqrt(at[2][0] ** 2 + at[2][1] ** 2 + at[2][2] ** 2)) + 1</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
nrx = [nr1, nr2, nr3]</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
for i in range(3):</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
while not allowed_fft_dimension(nrx[i], is_essl):</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
nrx[i] += 1</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
if nrx[i] > 16385:</div>
<div class="elementToProof" style="line-height: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
raise ValueError("FFT Dimension exceeds maximum allowed dimension (16385)")</div>
<div class="elementToProof" style="line-height: 1.2; 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: 1.2; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
return nrx</div>
<div class="elementToProof" style="line-height: 1.2; 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);">
<br>
</div>
<div id="appendonsend" style="color: inherit;"></div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</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 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> Sunday, March 2, 2025 5:18 AM<br>
<b>To:</b> users@lists.quantum-espresso.org<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;">Dear Dyer,</p>
<p style="margin-top: 0px; margin-bottom: 0px;"> you are right... the factor of two you find is the difference between the radius and the diameter of a sphere.</p>
<p style="margin-top: 0px; margin-bottom: 0px;"> </p>
<p style="margin-top: 0px; margin-bottom: 0px;"> 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. </p>
<p class="elementToProof" style="margin-top: 0px; margin-bottom: 0px;"> 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</p>
<p class="elementToProof" style="margin-top: 0px; margin-bottom: 0px;"> DO k = -nr3, nr3<br>
DO j = -nr2, nr2<br>
DO i = -nr1, nr1</p>
<p style="margin-top: 0px; margin-bottom: 0px;"><br>
</p>
<p style="margin-top: 0px; margin-bottom: 0px;"> 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</p>
<p style="margin-top: 0px; margin-bottom: 0px;"><br>
</p>
<p style="margin-top: 0px; margin-bottom: 0px;"> nr1 = 2 * nb(1) + 1<br>
nr2 = 2 * nb(2) + 1<br>
nr3 = 2 * nb(3) + 1<br>
<br>
</p>
<p style="margin-top: 0px; margin-bottom: 0px;">stefano</p>
<p style="margin-top: 0px; margin-bottom: 0px;"><br>
</p>
<div>On 02/03/25 06:04, 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);">
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 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);">
My current process looks like this (with some values from a run I had recently so I can compare):</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);">
ecutwfc = 100 Ry</div>
<div 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 style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div 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 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 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 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 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);">
alat = sqrt(v1[0]**2 + v1[1]**2 + v1[2]**2)</div>
<div 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 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 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);">
at = [v1/alat, v2/alat, v3/alat]</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);">
nr1 = int(sqrt(gcutm) * sqrt(at[0][0]**2 + at[0][1]**2 + at[0][2]**2)) + 1</div>
<div 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 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 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 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 href="mailto:users@lists.quantum-espresso.org" id="OWAd76b5293-fcc5-718d-ed0c-81274a6fbbef" class="x_moz-txt-link-abbreviated OWAAutoLink">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 style="color: inherit;" id="x_x_Signature">
<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 style="color: inherit;" class="x_x_moz-mime-attachment-header"></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="OWA89e6864a-859d-3041-830c-d9d620dbd008" class="x_x_moz-txt-link-abbreviated x_OWAAutoLink" data-auth="NotApplicable">www.max-centre.eu</a>)
users mailing list <a href="mailto:users@lists.quantum-espresso.org" id="OWA6312c469-1480-7b1a-7d87-e743a8005cc2" class="x_x_moz-txt-link-abbreviated x_OWAAutoLink x_moz-txt-link-freetext">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="OWA75f14cd8-3088-c89d-0886-e07e51b8c6e0" class="x_x_moz-txt-link-freetext x_OWAAutoLink" data-auth="NotApplicable">https://lists.quantum-espresso.org/mailman/listinfo/users</a></div></pre>
</blockquote>
<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,Fk3xckU46d4kJt2B1k4dAx45Mwql_NLS2Q4mFkaiKohZ4Mfa7G89x8TkM4SYAanmfYlCxa06qxMoQUAjwQA91gR92qp0jD9P8YocmrWMlVNnTg,,&typo=1" id="OWA217bc4be-b296-596d-962a-a06518b9a9b1" class="x_moz-txt-link-abbreviated OWAAutoLink" data-auth="NotApplicable">www.max-centre.eu</a>)
users mailing list <a href="mailto:users@lists.quantum-espresso.org" id="OWAc15299a1-f53d-0dd8-d757-a6934ccbb67d" class="x_moz-txt-link-abbreviated OWAAutoLink">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,WMy7IPJMHV7ccyILg4tXoP0iKMNXMCWvyCTs45Pq2v6EoS2BX6kzobvtwlk9bVU73K1T2PctdQG4gNDHs7YrqhJAP06L3Iec_QxBdAJhkcf8I_sYUBgzm9x9&typo=1" id="OWA14a0fed1-d3bf-db5f-495b-5653bb8f4ddb" class="x_moz-txt-link-freetext OWAAutoLink" data-auth="NotApplicable">https://lists.quantum-espresso.org/mailman/listinfo/users</a></div></pre>
</blockquote>
</body>
</html>