|
|
|
# Introduction
|
|
|
|
|
|
|
|
Within W-SLDA Toolkit we provide a script for generating custom SLDA functional: `extensions/sldae/sldae-dev-tool.c`
|
|
|
|
Within the W-SLDA Toolkit, we provide a script for generating a custom SLDA functional: `extensions/sldae/sldae-dev-tool.c`
|
|
|
|
|
|
|
|
Within the script user can provide its own formulas for:
|
|
|
|
Within the script user can provide their own formulas for:
|
|
|
|
```c
|
|
|
|
double ground_state_energy (int dn, double _x, int id []);
|
|
|
|
double chemical_potential (int dn, double _x, int id []);
|
| ... | ... | @@ -10,10 +10,10 @@ double inverse_effective_mass (int dn, double _x, int id []); |
|
|
|
double pairing_gap (int dn, double _x, int id []);
|
|
|
|
```
|
|
|
|
|
|
|
|
In return, the script generates a source file readable by W-SLDA Engine. Once the functional is created, it becomes available for all code within the toolkit.
|
|
|
|
In return, the script generates a source file readable by the W-SLDA Engine. Once the functional is created, it becomes available for all code within the toolkit.
|
|
|
|
|
|
|
|
|
|
|
|
# Example: SLDAE with the effective mass equal 1
|
|
|
|
# Example: SLDAE with the effective mass equal to 1
|
|
|
|
|
|
|
|
The function for the computation of the effective mass has been modified to:
|
|
|
|
```c
|
| ... | ... | @@ -84,7 +84,7 @@ Parameters written to: sldae_parameters.h |
|
|
|
Creating file: sldae_parameters.txt
|
|
|
|
```
|
|
|
|
|
|
|
|
Once the functional is generated user should inspect content of file `sldae_parameters.txt`. It contains following columns:
|
|
|
|
Once the functional is generated, the user should inspect the content of the file `sldae_parameters.txt`. It contains the following columns:
|
|
|
|
``` bash
|
|
|
|
# 1: lambda=a*k_F
|
|
|
|
# 2: ground_state_energy
|
| ... | ... | @@ -100,7 +100,7 @@ Once the functional is generated user should inspect content of file `sldae_para |
|
|
|
#12: c_functional
|
|
|
|
#13: c_functional - PADE
|
|
|
|
```
|
|
|
|
In particular, it is important to confirm that PADE approximants correctly reproduce functions generated by analytical formulas. Note that W-SLDA Engine uses Pade approximants to deliver the highest performance.
|
|
|
|
In particular, it is important to confirm that PADE approximants correctly reproduce functions generated by analytical formulas. Note that the W-SLDA Engine uses Pade approximants to deliver the highest performance.
|
|
|
|
```bash
|
|
|
|
[gabrielw@dell sldae]$ gnuplot
|
|
|
|
gnuplot> plot "sldae_parameters.txt" u 1:6 w l, "" u 1:7 w l
|
| ... | ... | @@ -108,10 +108,10 @@ gnuplot> plot "sldae_parameters.txt" u 1:6 w l, "" u 1:7 w l |
|
|
|
```
|
|
|
|

|
|
|
|
|
|
|
|
Finally, file `sldae_parameters.h` should be moved to folder `hpc-engine`. From now new SLDAE functional will be used when `FUNCTIONAL=SLDAE` is selected in predefines.
|
|
|
|
Finally, file `sldae_parameters.h` should be moved to folder `hpc-engine`. From now on, the new SLDAE functional will be used when `FUNCTIONAL=SLDAE` is selected in predefines.
|
|
|
|
|
|
|
|
# Collection of own SLDAE-like functionals
|
|
|
|
The information about PADE approximants for functional coefficients loded to the engine through the file `hpc-engine\sldae_functional.h`, precisely:
|
|
|
|
The information about PADE approximants for functional coefficients loaded to the engine through the file `hpc-engine\sldae_functional.h`, precisely:
|
|
|
|
```c
|
|
|
|
// Select coefficients
|
|
|
|
#ifdef SLDAE_FORCE_A1
|
| ... | ... | @@ -121,5 +121,5 @@ The information about PADE approximants for functional coefficients loded to the |
|
|
|
#include "sldae_parameters.h"
|
|
|
|
#endif
|
|
|
|
```
|
|
|
|
User can modify this section to form that uploads a correct file with the desired set of coefficients.
|
|
|
|
The user can modify this section to upload a correct file with the desired set of coefficients.
|
|
|
|
|