Numerical 3rd-order Force Constants

Hi Gulp Community.
I have tried to build the gulp both with gfortran and intel compilers. In each case, I succeeded to build both serial and parallel versions (for parallel versions, intel-MKL was used).
However, both gfortran and intel serial builds give me the numerical 3rd-order FC’s (using the keyword “num3”), but the parallel versions output only the 2nd-order FC’s. Is there any workaround or do I skip some special settings?
Thanks in advane.
Mahmoud

Hi Mahmoud
I’m afraid at present the third order FCs aren’t enabled in parallel and so this is why you don’t get them unless you are running in serial (I’m guessing that you’re using the old option to write out a file for ShengBTE?). If you post your input I can explore whether it might be possible to enable it. Assuming you are trying to go the ShengBTE route, then I would note that GULP has better support for Alamode if you are trying to do thermal conductivity calculations (it can be run via the code or an external script that is provided) and so I’d recommend this option.
Regards,
Julian

Dear Julian, Hi.
Thank you so much for your comments.
The input file was generated modifying example5:

opti conp phon nofreq num3
cell
4.212000 4.212000 4.212000 90.000000 90.000000 90.000000
fractional
Mg core 0.000000 0.000000 0.000000
Mg core 0.000000 0.500000 0.500000
Mg core 0.500000 0.000000 0.500000
Mg core 0.500000 0.500000 0.000000
O core 0.500000 0.500000 0.500000
O core 0.500000 0.000000 0.000000
O core 0.000000 0.500000 0.000000
O core 0.000000 0.000000 0.500000
O shel 0.500000 0.500000 0.500000
O shel 0.500000 0.000000 0.000000
O shel 0.000000 0.500000 0.000000
O shel 0.000000 0.000000 0.500000
supercell 2 2 2
species
Mg core 2.0
O core 0.86902
O shel -2.86902
buck
O shel Mg core 1295.553402 0.300000 0.00000 0.000 8.000
buck
O shel O shel 22764.000000 0.149000 27.88000 0.000 12.000
spring
O 74.92
shrink
8 8 8
output shengbte

I have noticed that the gulp interface matches alamode-1.1 and not new versions.
Also, I have run the input by both gulp-5.2 and gulp-6.0; and found out that some 2nd FC differ in the two versions:

5.2
64
1 1
15.552756712407 0.000000000000 0.000000000000
0.000000000000 15.552756712407 0.000000000000
0.000000000000 0.000000000000 15.552756712407
1 2
-0.028768827425 0.000000000000 -0.000000000000
0.000000000000 -0.028768827425 0.000000000000
0.000000000000 -0.000000000000 -2.686882874035
1 3
-0.028768827425 -0.000000000000 0.000000000000
-0.000000000000 -2.686882874035 0.000000000000
0.000000000000 -0.000000000000 -0.028768827425
1 4
0.209865346575 -0.000000000000 -0.000000000000
-0.000000000000 -0.068200253644 0.000000000000
-0.000000000000 0.000000000000 -0.068200253644

6.0:****
64
1 1
15.552756712407 0.000000000000 0.000000000000
0.000000000000 15.552756712407 0.000000000000
0.000000000000 0.000000000000 15.552756712407
1 2
-2.686882874035 0.000000000000 -0.000000000000
0.000000000000 -0.028768827425 -0.000000000000
-0.000000000000 -0.000000000000 -0.028768827425
1 3
-0.028768827425 0.000000000000 0.000000000000
-0.000000000000 -2.686882874035 0.000000000000
0.000000000000 -0.000000000000 -0.028768827425
1 4
-0.068200253644 -0.000000000000 0.000000000000
-0.000000000000 -0.068200253644 -0.000000000000
0.000000000000 0.000000000000 0.209865346575

With Best Regards,
Mahmoud

Hi Mahmoud.
Thanks for pointing out that Alamode has moved up to version 1.3.0. There were just a few small things that were changed between this and version 1.1.0 and so I’ve updated the tar file for gulp version 6.0 so that it now supports the latest version at the expense of the older versions pre-1.0 and so you should be able to use any recent version of Alamode now.
With the FC file, I recall there was an issue found in the ordering and so things were corrected for version 6.0, though the change may not have been patched back to older versions.
I’ll take a look to see if it will be possible to enable the numerical 3rd order force constants in parallel, though it may take a while…
Regards,
Julian

Dear Julian,
Hi.
Thank you so much for updating the GULP6.0 code for the Alamode and FC’s issues.
It would be great enabling parallelization of 3rd FC’s at your convenient time.
It is highly appreciated.
Kind Regards,
Mahmoud

Hi Julian.
I built both mpi_parallel and serial versions of Gulp-6.0 successfully.
I even built a serial version (i.e. not using “-m”) with only openmp parallelization.
In the third case, the run stops with the message:

Phonon Calculation :

Number of k points for this configuration = 256


Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0 0x35e403269f in ???
#1 0x13d551d in ???
#2 0xaaff23 in ???
#3 0xc6e61e in ???
#4 0xbc89af in ???
#5 0xbcd2bd in ???
#6 0x1366ed7 in ???
#7 0x1366c13 in ???
#8 0x35e401ed5c in ???
#9 0x427930 in ???

I wonder if Gulp-6 supports only_openmp parallelization.
Thank you in advance.
Best regards,
Mahmoud

Hi Mahmoud,
At present GULP only supports MPI parallelism and so compilation with openmp shouldn’t be used except on a single thread, otherwise I can’t guarantee what will happen.
Regards,
Julian

Dear Julian,
Thank you so much.

Bests,
Mahmoud