/** * W-SLDA Toolkit * Engine version: 2024.02.12 * API version: 20240131 * */ /** * Define lattice size and lattice spacing. * Keep them inside parentheses. * */ #define NX (48) #define NY (92) #define NZ (16) #define DX (1.0) #define DY (1.0) #define DZ (1.0) /** * Select functional: * - SLDA: * for simulating unitary Fermi gas, * it is equivalent to selecting ASLDA functional with SLDA_FORCE_A1 option. * - ASLDA: * for simulating unitary Fermi gas, * at qualitative level it produces results compatible with SLDA, however it is more accurate, * due to presence of current terms in the functional, but it has worse convergence properties. * For more info see: https://arxiv.org/abs/1008.3933 * - SLDAE: * for simulating Fermi gas for an arbitrary value of akF, * for small and negative akF the functional is compatible with BDG, while for large akF is compatible with ASLDA. * For more info see: https://arxiv.org/abs/2201.07626 * - BDG: * for simulating systems in BCS regime, * equations of motion are equivalent to Bogoliubov-de-Gennes equations, * - CUSTOMEDF: * use this option to define your custom functional, * then you need to provide body of functions: compute_energy_custom( ) and compute_potentials_custom( ) * in problem-definition.h file * */ // #define FUNCTIONAL SLDA // #define FUNCTIONAL ASLDA #define FUNCTIONAL SLDAE // #define FUNCTIONAL BDG // #define FUNCTIONAL CUSTOMEDF /** * Sets effective mass to be equal. * Computation converges fatser, but it also decreases accuracy of the functional. * If functional is SLDA or BDG this option is activated automatically. * */ #define SLDA_FORCE_A1 /** * activate this if you know that Hamiltonian matrix is real, * the code will utilize it in order to speed-up the calculations by factor 4x (approximately) * */ #define HAMILTONIAN_IS_REAL /** * Scheme of pairing field renormalization procedure. * For more info see: https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/wikis/Regularization%20schemes%20of%20the%20pairing%20field * Select one: * SPHERICAL_CUTOFF: use spherical momentum space cutoff, in this case you need to set `ec` variable in input file (default). * CUBIC_CUTOFF: use cubic momentum space cutoff, in this case `ec` will be set to infinity automatically. * */ #define REGULARIZATION_SCHEME SPHERICAL_CUTOFF // #define REGULARIZATION_SCHEME CUBIC_CUTOFF /** * Maximal number of parameters in params array * */ #define MAX_USER_PARAMS 32 /** * Minimal density to avoid numerical problems * below this treshold density is regarded as zero * */ #define DENSEPSILON 1.0e-8 /** * Meaningful only in case of ASLDA and SLDAE. * Parameters defining stabilization procedure of ASLDA functional. * For regions with density smaller than SLDA_STABILIZATION_EXCLUDE_BELOW_DENISTY * contribution from current term j^2/2n is assumed to be zero. * For regions with density above SLDA_STABILIZATION_RETAIN_ABOVE_DENSITY * the contribution is assumed to be intact by stabilization procedure. * For more info see: * https://gitlab.fizyka.pw.edu.pl/gabrielw/wslda/-/wikis/Functionals#stabilization-of-aslda-functional * */ #define SLDA_STABILIZATION_RETAIN_ABOVE_DENSITY 1.0e-5 #define SLDA_STABILIZATION_EXCLUDE_BELOW_DENISTY 1.0e-7 /** * Machine file. * This file contains info about machine that will be used in the computation process. * You can specify the file in the following ways: * - copy `machine.h` file to the current directory, see templates folder for various examples, * - specify the folder with `machine.h` file via -I option in Makefile * - use system variable WSLDA_MACHINE to specify the folder with `machine.h` file, for example: * export WSLDA_MACHINE=... **/ #include "machine.h" /** * Files: predefines.h, problem-definition.h, logger.h are assumed to be compatible with this API version * For list of API versions see: https://gitlab.fizyka.pw.edu.pl/wtools/wslda/-/wikis/API-version * */ #define API_VERSION 20240131