From e247ef2bc8850973c98c6abe20d7ae50420f6b68 Mon Sep 17 00:00:00 2001 From: Github Action Bot Date: Sun, 24 Nov 2024 09:50:37 +0000 Subject: [PATCH] Add new json api version 2024.11.23 --- sparc/sparc_json_api/parameters.json | 536 ++++++++++++++++++++++++--- 1 file changed, 484 insertions(+), 52 deletions(-) diff --git a/sparc/sparc_json_api/parameters.json b/sparc/sparc_json_api/parameters.json index e7f1e45f..9c2ff9d8 100644 --- a/sparc/sparc_json_api/parameters.json +++ b/sparc/sparc_json_api/parameters.json @@ -1,5 +1,5 @@ { - "sparc_version": "2023.10.31", + "sparc_version": "2024.11.23", "categories": [ "system", "scf", @@ -9,24 +9,14 @@ "structural relaxation", "band structure", "print options", - "parallelization options" + "parallelization options", + "orbital free dft", + "socket communication", + "spectral quadrature", + "mlff", + "cyclix" ], "parameters": { - "ACE_FLAG": { - "symbol": "ACE_FLAG", - "label": "ACE_FLAG", - "type": "integer", - "default": 1, - "unit": "No unit", - "example": "ACE_FLAG: 0", - "description": "Use ACE operator to accelarte the hybrid calculation.", - "remark": "Without ACE operator, the hybrid calculation will be way slower than with it on depending on the system size.", - "allow_bool_input": true, - "default_remark": "1", - "description_raw": "Use ACE operator to accelarte the hybrid calculation.", - "remark_raw": "Without ACE operator, the hybrid calculation will be way slower than with it on depending on the system size.", - "category": "scf" - }, "ATOM_TYPE": { "symbol": "ATOM_TYPE", "label": "ATOM_TYPE", @@ -342,6 +332,21 @@ "remark_raw": "For spin-polarized calculation (\\hyperlink{SPIN_TYP}{\\texttt{SPIN\\_TYP}} = 1), \\texttt{LDA\\_PZ} is not available.\n\nCurrently SCAN, RSCAN and R2SCAN does not support nonlinear core correction pseudopotential.", "category": "system" }, + "EXX_ACC": { + "symbol": "EXX_ACC", + "label": "EXX_ACC", + "type": "integer", + "default": 1, + "unit": "No unit", + "example": "EXX_ACC: 0", + "description": "Use accelerated method for exact exchange. For low-T, use ACE operator to accelarte the hybrid calculation, while in high-T, use the local projection method.", + "remark": "Without acceleration, the hybrid functional will be extremely slow.", + "allow_bool_input": true, + "default_remark": "1", + "description_raw": "Use accelerated method for exact exchange. For low-T, use ACE operator to accelarte the hybrid calculation, while in high-T, use the local projection method.", + "remark_raw": "Without acceleration, the hybrid functional will be extremely slow.", + "category": "scf" + }, "EXX_ACE_VALENCE_STATES": { "symbol": "EXX_ACE_VALENCE_STATES", "label": "EXX_ACE_VALENCE_STATES", @@ -349,11 +354,11 @@ "default": 3, "unit": "No unit", "example": "EXX_ACE_VALENCE_STATES: 1", - "description": "Control of number of unoccupied states used to construct ACE operator.", + "description": "Control of number of unoccupied states used to construct ACE operator. Only effective on low-T calculation.", "remark": "Only active when using hybrid functionals with ACE operator.", "allow_bool_input": false, "default_remark": "3", - "description_raw": "Control of number of unoccupied states used to construct ACE operator.", + "description_raw": "Control of number of unoccupied states used to construct ACE operator. Only effective on low-T calculation.", "remark_raw": "Only active when using hybrid functionals with ACE operator.", "category": "scf" }, @@ -364,12 +369,12 @@ "default": "SPHERICAL", "unit": "No unit", "example": "EXX_DIVERGENCE: AUXILIARY", - "description": "Treatment of divergence in exact exchange. Options are SPHERICAL (spherical truncation), \nAUXILIARY (auxiliary function method) and ERFC (erfc screening).", - "remark": "For systems with cube-like geometry, both methods converge fast. For slab and wire, auxiliary function method is a better option. \nERFC screening is the default option for HSE in bulk and molecule simulation.", + "description": "Treatment of divergence in exact exchange. Options are SPHERICAL (spherical truncation), \n AUXILIARY (auxiliary function method) and ERFC (erfc screening). Only effective on low-T calculation.", + "remark": "For systems with cube-like geometry, both methods converge fast. For slab and wire, auxiliary function method is a better option. \n ERFC screening is the default option for HSE in bulk and molecule simulation.", "allow_bool_input": false, "default_remark": "SPHERICAL", - "description_raw": "Treatment of divergence in exact exchange. Options are \\texttt{SPHERICAL} (spherical truncation), \n\\texttt{AUXILIARY} (auxiliary function method) and \\texttt{ERFC} (erfc screening).", - "remark_raw": "For systems with cube-like geometry, both methods converge fast. For slab and wire, auxiliary function method is a better option. \nERFC screening is the default option for HSE in bulk and molecule simulation.", + "description_raw": "Treatment of divergence in exact exchange. Options are \\texttt{SPHERICAL} (spherical truncation), \n \\texttt{AUXILIARY} (auxiliary function method) and \\texttt{ERFC} (erfc screening). Only effective on low-T calculation.", + "remark_raw": "For systems with cube-like geometry, both methods converge fast. For slab and wire, auxiliary function method is a better option. \n ERFC screening is the default option for HSE in bulk and molecule simulation.", "category": "scf" }, "EXX_DOWNSAMPLING": { @@ -383,12 +388,12 @@ ], "unit": "No unit", "example": "EXX_DOWNSAMPLING: 1 2 3", - "description": "Down-sampling of k-points grids. There should be 3 nonnegative integers. 0 means using 0 k-point in that direction, \nrequiring 0 is one of the k-point after time-reversal symmetry in that direction. \nPositive value should be a factor of the number of grid points in that direction.", + "description": "Down-sampling of k-points grids. There should be 3 nonnegative integers. 0 means using 0 k-point in that direction, \n requiring 0 is one of the k-point after time-reversal symmetry in that direction. \n Positive value should be a factor of the number of grid points in that direction. Only effective on low-T calculation.", + "remark": "One could only do downsampling on directions of periodic boundary condition.", "allow_bool_input": false, "default_remark": "1 1 1", - "description_raw": "Down-sampling of k-points grids. There should be 3 nonnegative integers. 0 means using 0 k-point in that direction, \nrequiring 0 is one of the k-point after time-reversal symmetry in that direction. \nPositive value should be a factor of the number of grid points in that direction.", - "remark_raw": "", - "remark": "", + "description_raw": "Down-sampling of k-points grids. There should be 3 nonnegative integers. 0 means using 0 k-point in that direction, \n requiring 0 is one of the k-point after time-reversal symmetry in that direction. \n Positive value should be a factor of the number of grid points in that direction. Only effective on low-T calculation.", + "remark_raw": "One could only do downsampling on directions of periodic boundary condition.", "category": "scf" }, "EXX_FRAC": { @@ -413,10 +418,10 @@ "default": 20, "unit": "No unit", "example": "EXX_MEM: 0", - "description": "Number of Poisson's equations to be solved in each process at a time when creating exact exchange operator or ACE operator. Typically, when EXX_MEM is larger than 20, the speed of code is barely affected. When it is 0, all Poisson's equations are solved together and it hits the fastest speed but largest memory requirement.", + "description": "Number of Poisson's equations to be solved in each process at a time when creating exact exchange operator or ACE operator. Typically, when EXX_MEM is larger than 20, the speed of code is barely affected. When it is 0, all Poisson's equations are solved together and it hits the fastest speed but largest memory requirement. Only effective on low-T calculation.", "allow_bool_input": false, "default_remark": "20", - "description_raw": "Number of Poisson's equations to be solved in each process at a time when creating exact exchange operator or ACE operator. Typically, when \\texttt{EXX\\_MEM} is larger than 20, the speed of code is barely affected. When it is 0, all Poisson's equations are solved together and it hits the fastest speed but largest memory requirement.", + "description_raw": "Number of Poisson's equations to be solved in each process at a time when creating exact exchange operator or ACE operator. Typically, when \\texttt{EXX\\_MEM} is larger than 20, the speed of code is barely affected. When it is 0, all Poisson's equations are solved together and it hits the fastest speed but largest memory requirement. Only effective on low-T calculation.", "remark_raw": "", "remark": "", "category": "scf" @@ -425,15 +430,15 @@ "symbol": "EXX_METHOD", "label": "EXX_METHOD", "type": "string", - "default": "FOURIER_SPACE", + "default": "KRON", "unit": "No unit", - "example": "EXX_METHOD: REAL_SPACE", - "description": "Methods to solve Poisson's equation in Exact Exchange part. Options include using FFT to solve it in Fourier space and using linear solver, like CG, to solve in Real space.", - "remark": "Only active when using hybrid functionals for molecule simulation, like PBE0 and HSE. \nFOURIER_SPACE method is much faster than REAL_SPACE method.", + "example": "EXX_METHOD: FFT", + "description": "Method to solve the Poisson's equations in exact exchange. Options include KRON (Laplacian using kronecker product) and FFFT (FFT to solve in Fourier space). Now, KRON is only available for orthogonal periodic cell on gamma point and dirichlet molecule using PBE0. Generally, KRON way is faster than FFT, while FFT is faster on certain type of grid with even number of grid points each direction etc.", "allow_bool_input": false, - "default_remark": "\\texttt{FOURIER\\_SPACE}", - "description_raw": "Methods to solve Poisson's equation in Exact Exchange part. Options include using FFT to solve it in Fourier space and using linear solver, like CG, to solve in Real space.", - "remark_raw": "Only active when using hybrid functionals for molecule simulation, like PBE0 and HSE. \n\\texttt{FOURIER\\_SPACE} method is much faster than \\texttt{REAL\\_SPACE} method.", + "default_remark": "KRON", + "description_raw": "Method to solve the Poisson's equations in exact exchange. Options include KRON (Laplacian using kronecker product) and FFFT (FFT to solve in Fourier space). Now, KRON is only available for orthogonal periodic cell on gamma point and dirichlet molecule using PBE0. Generally, KRON way is faster than FFT, while FFT is faster on certain type of grid with even number of grid points each direction etc.", + "remark_raw": "", + "remark": "", "category": "scf" }, "EXX_RANGE_FOCK": { @@ -955,13 +960,13 @@ "symbol": "MINIT_FOCK", "label": "MINIT_FOCK", "type": "integer", - "default": 2, + "default": 1, "unit": "No unit", "example": "MINIT_FOCK: 3", "description": "The minimum number of iterations for Hartree-Fock outer loop.", "remark": "Only active when using hybrid functionals, like PBE0 and HSE.", "allow_bool_input": false, - "default_remark": "2", + "default_remark": "1", "description_raw": "The minimum number of iterations for Hartree-Fock outer loop.", "remark_raw": "Only active when using hybrid functionals, like PBE0 and HSE.", "category": "scf" @@ -1326,6 +1331,36 @@ "remark_raw": "For a system with different types of atoms, one has to specify the number of atoms for every type.", "category": "system" }, + "OFDFT_FLAG": { + "symbol": "OFDFT_FLAG", + "label": "OFDFT_FLAG", + "type": "integer", + "default": 0, + "unit": "No unit", + "example": "OFDFT_FLAG: 1", + "description": "Flag for Orbital-free DFT calculation.", + "allow_bool_input": true, + "default_remark": "0", + "description_raw": "Flag for Orbital-free DFT calculation.", + "remark_raw": "", + "remark": "", + "category": "orbital free dft" + }, + "OFDFT_LAMBDA": { + "symbol": "OFDFT_LAMBDA", + "label": "OFDFT_LAMBDA", + "type": "double", + "default": 0.2, + "unit": "No unit", + "example": "OFDFT_LAMBDA: 0.3", + "description": "The coefficient in front of Laplacian operator is -lambda/2.", + "allow_bool_input": false, + "default_remark": "0.2", + "description_raw": "The coefficient in front of Laplacian operator is -lambda/2.", + "remark_raw": "", + "remark": "", + "category": "orbital free dft" + }, "OUTPUT_FILE": { "symbol": "OUTPUT_FILE", "label": "OUTPUT_FILE", @@ -1627,6 +1662,21 @@ "remark_raw": "Applicable to NVT\\_NH \\hyperlink{MD_METHOD}{\\texttt{MD\\_METHOD}} only.", "category": "qmd" }, + "READ_INIT_DENS": { + "symbol": "READ_INIT_DENS", + "label": "READ_INIT_DENS", + "type": "integer", + "default": 0, + "unit": "No unit", + "example": "READ_INIT_DENS: 1", + "description": "Flag for reading initial density guess for SCF calculation.", + "remark": "Please use it together with INPUT_DENS_FILE", + "allow_bool_input": true, + "default_remark": "0", + "description_raw": "Flag for reading initial density guess for SCF calculation.", + "remark_raw": "Please use it together with \\hyperlink{INPUT_DENS_FILE}{\\texttt{INPUT\\_DENS\\_FILE}}", + "category": "scf" + }, "REFERENCE_CUTOFF": { "symbol": "REFERENCE_CUTOFF", "label": "REFERENCE_CUTOFF", @@ -1796,6 +1846,81 @@ "remark_raw": "Equivalent to setting \\hyperlink{ELEC_TEMP}{\\texttt{ELEC\\_TEMP}} (0.001 Ha = 315.775 Kelvin).", "category": "system" }, + "SOCKET_FLAG": { + "symbol": "SOCKET_FLAG", + "label": "SOCKET_FLAG", + "type": "integer", + "default": 0, + "unit": "No unit", + "example": "SOCKET_FLAG: 1", + "description": "Flag for starting the socket communication layer. It is equivalent to the -socket switch of command line.\n Setting SOCKET_FLAG: 1 will disable MD_FLAG and RELAX_FLAG.", + "allow_bool_input": true, + "default_remark": "0", + "description_raw": "Flag for starting the socket communication layer. It is equivalent to the \\texttt{-socket} switch of command line.\n\n Setting \\texttt{SOCKET\\_FLAG: 1} will disable \\texttt{MD\\_FLAG} and \\texttt{RELAX\\_FLAG}.", + "remark_raw": "", + "remark": "", + "category": "socket communication" + }, + "SOCKET_HOST": { + "symbol": "SOCKET_HOST", + "label": "SOCKET_HOST", + "type": "string", + "default": "localhost", + "unit": "No unit", + "example": "SOCKET_HOST: 127.0.0.1", + "description": "Host name of the socket address that SPARC listens to. If it's an\n INET socket, it is the address of the interface. For a UNIX socket,\n it is the filename of the socket file\n (e.g. /tmp/sparc.socket).", + "allow_bool_input": false, + "default_remark": "localhost", + "description_raw": "Host name of the socket address that SPARC listens to. If it's an\n INET socket, it is the address of the interface. For a UNIX socket,\n it is the filename of the socket file\n (e.g. \\texttt{/tmp/sparc.socket}).", + "remark_raw": "", + "remark": "", + "category": "socket communication" + }, + "SOCKET_INET": { + "symbol": "SOCKET_INET", + "label": "SOCKET_INET", + "type": "integer", + "default": null, + "unit": "No unit", + "example": "SOCKET_INET: 0", + "description": "1 for INET socket, 0 for UNIX socket. If no set in .inpt\n file, its value is determined by the -socket address:port\n command line switch.", + "allow_bool_input": false, + "default_remark": "None", + "description_raw": "1 for INET socket, 0 for UNIX socket. If no set in \\texttt{.inpt}\n file, its value is determined by the \\texttt{-socket address:port}\n command line switch.", + "remark_raw": "", + "remark": "", + "category": "socket communication" + }, + "SOCKET_MAX_NITER": { + "symbol": "SOCKET_MAX_NITER", + "label": "SOCKET_MAX_NITER", + "type": "integer", + "default": 10000, + "unit": "No unit", + "example": "SOCKET_MAX_NITER: 10000", + "description": "Maximum number of ionic SCF steps in the socket mode. As a socket\n client, SPARC will terminate after SOCKET_MAX_NITER steps\n are called.", + "allow_bool_input": false, + "default_remark": "10000", + "description_raw": "Maximum number of ionic SCF steps in the socket mode. As a socket\n client, SPARC will terminate after \\texttt{SOCKET\\_MAX\\_NITER} steps\n are called.", + "remark_raw": "", + "remark": "", + "category": "socket communication" + }, + "SOCKET_PORT": { + "symbol": "SOCKET_PORT", + "label": "SOCKET_PORT", + "type": "integer", + "default": null, + "unit": "No unit", + "example": "SOCKET_PORT: 12345", + "description": "When SPARC connects to an INET socket server, it is the port number. The SOCKET_PORT has no effect for a UNIX socket.", + "allow_bool_input": false, + "default_remark": "None", + "description_raw": "When SPARC connects to an INET socket server, it is the port number. The \\texttt{SOCKET\\_PORT} has no effect for a UNIX socket.", + "remark_raw": "", + "remark": "", + "category": "socket communication" + }, "SPIN": { "symbol": "SPIN", "label": "SPIN", @@ -1847,14 +1972,14 @@ "symbol": "TOL_FOCK", "label": "TOL_FOCK", "type": "double", - "default": null, + "default": "auto", "unit": "No unit", "example": "TOL_FOCK: 1e-6", - "description": "The tolerance on the Hartree-Fock outer loop, measured by the exact exchange energy difference per atom in 2 consecutive outer loops.", + "description": "The tolerance on the Hartree-Fock outer loop, measured by the difference between the band energy in 2 consecutive outer loops.", "remark": "Only active when using hybrid functionals, like PBE0 and HSE.", "allow_bool_input": false, - "default_remark": "$0.2*$\\hyperlink{TOL_SCF}{\\texttt{TOL\\_SCF}}", - "description_raw": "The tolerance on the Hartree-Fock outer loop, measured by the exact exchange energy difference per atom in 2 consecutive outer loops.", + "default_remark": "Automatically set for $10^{-3}$ Ha/Bohr accuracy in force", + "description_raw": "The tolerance on the Hartree-Fock outer loop, measured by the difference between the band energy in 2 consecutive outer loops.", "remark_raw": "Only active when using hybrid functionals, like PBE0 and HSE.", "category": "scf" }, @@ -1873,6 +1998,21 @@ "remark_raw": "Typically, the Lanczos tolerance does not need to be very strict.", "category": "scf" }, + "TOL_OFDFT": { + "symbol": "TOL_OFDFT", + "label": "TOL_OFDFT", + "type": "double", + "default": null, + "unit": "No unit", + "example": "TOL_OFDFT: 1E-6", + "description": "The tolerance on the normalized residual (l2-norm of residual/sqrt(N), N is number of nodes) for convergence of NLCG.", + "allow_bool_input": false, + "default_remark": "$10^{-3}$", + "description_raw": "The tolerance on the normalized residual (l2-norm of residual/sqrt(N), N is number of nodes) for convergence of NLCG.", + "remark_raw": "", + "remark": "", + "category": "orbital free dft" + }, "TOL_POISSON": { "symbol": "TOL_POISSON", "label": "TOL_POISSON", @@ -2008,13 +2148,13 @@ "remark_raw": "This option is for development purpose. It's better to let SPARC choose the parallization parameters in practice.", "category": "spectral quadrature" }, - "SQ_FLAG": { - "symbol": "SQ_FLAG", - "label": "SQ_FLAG", + "SQ_AMBIENT_FLAG": { + "symbol": "SQ_AMBIENT_FLAG", + "label": "SQ_AMBIENT_FLAG", "type": "integer", "default": 0, "unit": "No unit", - "example": "SQ_FLAG: 1", + "example": "SQ_AMBIENT_FLAG: 1", "description": "Flag to turn on SQ method", "remark": "SQ method can not be turned on simultaneously with CS, SQ3, hybrid functionals.", "allow_bool_input": true, @@ -2023,17 +2163,32 @@ "remark_raw": "SQ method can not be turned on simultaneously with CS, SQ3, hybrid functionals.", "category": "spectral quadrature" }, - "SQ_GAUSS_MEM": { - "symbol": "SQ_GAUSS_MEM", - "label": "SQ_GAUSS_MEM", + "SQ_HIGHT_FLAG": { + "symbol": "SQ_HIGHT_FLAG", + "label": "SQ_HIGHT_FLAG", + "type": "integer", + "default": 0, + "unit": "No unit", + "example": "SQ_HIGHT_FLAG: 1", + "description": "Flag to turn on SQ method for High Temperature", + "remark": "At High Temperature, spin-polarized calculation is not supported and high memory usage is always enabled.\nTo use Low Temperature SQ method, please turn it off by setting SQ_HIGHT_FLAG: 0.", + "allow_bool_input": true, + "default_remark": "0", + "description_raw": "Flag to turn on SQ method for High Temperature", + "remark_raw": "At High Temperature, spin-polarized calculation is not supported and high memory usage is always enabled.\nTo use Low Temperature SQ method, please turn it off by setting SQ\\_HIGHT\\_FLAG: 0.", + "category": "spectral quadrature" + }, + "SQ_HIGHT_GAUSS_HYBRID_MEM": { + "symbol": "SQ_HIGHT_GAUSS_HYBRID_MEM", + "label": "SQ_HIGHT_GAUSS_HYBRID_MEM", "type": "string", "default": "LOW", "unit": "No unit", - "example": "SQ_GAUSS_MEM: HIGH", - "description": "Flag for memory option when using Gauss quadrature for density matrix.", + "example": "SQ_HIGHT_GAUSS_HYBRID_MEM: HIGH", + "description": "Flag for memory option when using Gauss quadrature at High Temperature for saving the exact exchange potential when using hybrid functionals.", "allow_bool_input": false, "default_remark": "LOW", - "description_raw": "Flag for memory option when using Gauss quadrature for density matrix.", + "description_raw": "Flag for memory option when using Gauss quadrature at High Temperature for saving the exact exchange potential when using hybrid functionals.", "remark_raw": "", "remark": "", "category": "spectral quadrature" @@ -2083,6 +2238,283 @@ "remark": "", "category": "spectral quadrature" }, + "MLFF_ANGULAR_BASIS": { + "symbol": "{MLFF_ANGULAR_BASIS", + "label": "MLFF_ANGULAR_BASIS", + "type": "integer", + "default": 6, + "unit": "No unit", + "example": "MLFF_ANGULAR_BASIS: 7", + "description": "The maximum angular momentum quantum number (L) of spherical harmonics used in the SOAP descriptor.", + "remark": "6-8 for SOAP works well for most applications.", + "allow_bool_input": false, + "default_remark": "6", + "description_raw": "The maximum angular momentum quantum number (L) of spherical harmonics used in the SOAP descriptor.", + "remark_raw": "6-8 for SOAP works well for most applications.", + "category": "mlff" + }, + "MLFF_DFT_FQ": { + "symbol": "{MLFF_DFT_FQ", + "label": "MLFF_DFT_FQ", + "type": "integer", + "default": 100000000, + "unit": "No unit", + "example": "MLFF_DFT_FQ: 100", + "description": "Input variable to set the frequency at which DFT must be performed during on-the-fly MD.", + "allow_bool_input": false, + "default_remark": "100000000", + "description_raw": "Input variable to set the frequency at which DFT must be performed during on-the-fly MD.", + "remark_raw": "", + "remark": "", + "category": "mlff" + }, + "MLFF_EXPONENT_SOAP": { + "symbol": "{MLFF_EXPONENT_SOAP", + "label": "MLFF_EXPONENT_SOAP", + "type": "double", + "default": 4.0, + "unit": "No unit", + "example": "MLFF_EXPONENT_SOAP: 4.0", + "description": "The exponent in the polynomial kernel used in Bayesian linear regression.", + "remark": "In principle, any number greater than 1 could be used. The code has been tested most for the exponent of 4.", + "allow_bool_input": false, + "default_remark": "4.0", + "description_raw": "The exponent in the polynomial kernel used in Bayesian linear regression.", + "remark_raw": "In principle, any number greater than 1 could be used. The code has been tested most for the exponent of 4.", + "category": "mlff" + }, + "MLFF_FACTOR_MULTIPLY_SIGMATOL": { + "symbol": "{MLFF_FACTOR_MULTIPLY_SIGMATOL", + "label": "MLFF_FACTOR_MULTIPLY_SIGMATOL", + "type": "double", + "default": 1.01, + "unit": "No unit", + "example": "MLFF_FACTOR_MULTIPLY_SIGMATOL: 1.001", + "description": "A prefactor multiplied with maximum of Bayesian errors while updating the \\sigma_\\rm tol. It has to be greater than 1.", + "remark": "A larger value will result lesser DFT calls hence might reduce the accuracy. Use any number in (1.0001-1.01) range.", + "allow_bool_input": false, + "default_remark": "1.01", + "description_raw": "A prefactor multiplied with maximum of Bayesian errors while updating the $\\sigma_{\\rm tol}$. It has to be greater than 1.", + "remark_raw": "A larger value will result lesser DFT calls hence might reduce the accuracy. Use any number in (1.0001-1.01) range.", + "category": "mlff" + }, + "MLFF_FLAG": { + "symbol": "MLFF_FLAG", + "label": "MLFF_FLAG", + "type": "integer", + "default": 0, + "unit": "No unit", + "example": "MLFF_FLAG: 1", + "description": "Flag to turn on MLFF in SPARC. There are three options currently available. (1) MLFF_FLAG: 1 to perform on-the-fly MD with no existing model, (2) MLFF_FLAG: 21 to perform only predictions from an existing model, and (3) MLFF_FLAG: 22 to perform on-the-fly MD building on top of an existing model", + "allow_bool_input": true, + "default_remark": "0", + "description_raw": "Flag to turn on MLFF in SPARC. There are three options currently available. (1) MLFF\\_FLAG: 1 to perform on-the-fly MD with no existing model, (2) MLFF\\_FLAG: 21 to perform only predictions from an existing model, and (3) MLFF\\_FLAG: 22 to perform on-the-fly MD building on top of an existing model", + "remark_raw": "", + "remark": "", + "category": "mlff" + }, + "MLFF_IF_ATOM_DATA_AVAILABLE": { + "symbol": "{MLFF_IF_ATOM_DATA_AVAILABLE", + "label": "MLFF_IF_ATOM_DATA_AVAILABLE", + "type": "integer", + "default": 0, + "unit": "No unit", + "example": "MLFF_IF_ATOM_DATA_AVAILABLE: 1", + "description": "Flag to indicate if an pretrained MLFF model is available.", + "remark": "", + "allow_bool_input": true, + "default_remark": "0", + "description_raw": "Flag to indicate if an pretrained MLFF model is available.", + "remark_raw": "%\n%", + "category": "mlff" + }, + "MLFF_IF_SPARSIFY_BEFORE_TRAIN": { + "symbol": "{MLFF_IF_SPARSIFY_BEFORE_TRAIN", + "label": "MLFF_IF_SPARSIFY_BEFORE_TRAIN", + "type": "integer", + "default": 1, + "unit": "No unit", + "example": "MLFF_IF_SPARSIFY_BEFORE_TRAIN: 1", + "description": "Flag to turn on the sparsification before each of the training steps.", + "remark": "", + "allow_bool_input": true, + "default_remark": "1", + "description_raw": "Flag to turn on the sparsification before each of the training steps.", + "remark_raw": "%\n%", + "category": "mlff" + }, + "MLFF_INITIAL_STEPS_TRAIN": { + "symbol": "{MLFF_INITIAL_STEPS_TRAIN", + "label": "MLFF_INITIAL_STEPS_TRAIN", + "type": "integer", + "default": 10, + "unit": "No unit", + "example": "MLFF_INITIAL_STEPS_TRAIN: 20", + "description": "The number of DFT steps performed in the beginning of on-the-fly MLFF simulation.", + "remark": "", + "allow_bool_input": false, + "default_remark": "10", + "description_raw": "The number of DFT steps performed in the beginning of on-the-fly MLFF simulation.", + "remark_raw": "%\n%", + "category": "mlff" + }, + "MLFF_MAX_CONFIG_STORE": { + "symbol": "{MLFF_MAX_CONFIG_STORE", + "label": "MLFF_MAX_CONFIG_STORE", + "type": "integer", + "default": 5000, + "unit": "No unit", + "example": "MLFF_MAX_CONFIG_STORE: 1000", + "description": "Maximum number of atomic descriptors per element type that will be used in training.", + "remark": "A larger number requires larger memory allocation.", + "allow_bool_input": false, + "default_remark": "5000", + "description_raw": "Maximum number of atomic descriptors per element type that will be used in training.", + "remark_raw": "A larger number requires larger memory allocation.", + "category": "mlff" + }, + "MLFF_MAX_STR_STORE": { + "symbol": "{MLFF_MAX_STR_STORE", + "label": "MLFF_MAX_STR_STORE", + "type": "integer", + "default": 500, + "unit": "No unit", + "example": "MLFF_MAX_STR_STORE: 1000", + "description": "Maximum number of DFT calls that can be made during the on-the-fly simulation.", + "remark": "A larger number requires larger memory allocation.", + "allow_bool_input": false, + "default_remark": "500", + "description_raw": "Maximum number of DFT calls that can be made during the on-the-fly simulation.", + "remark_raw": "A larger number requires larger memory allocation.", + "category": "mlff" + }, + "MLFF_MODEL_FOLDER": { + "symbol": "{MLFF_MODEL_FOLDER", + "label": "MLFF_MODEL_FOLDER", + "type": "string", + "default": null, + "unit": "No unit", + "example": "MLFF_MODEL_FOLDER: ././", + "description": "The location of folder where the trained model file is located.", + "remark": "", + "allow_bool_input": false, + "default_remark": "No default", + "description_raw": "The location of folder where the trained model file is located.", + "remark_raw": "%\n%", + "category": "mlff" + }, + "MLFF_PRINT_FLAG": { + "symbol": "{MLFF_PRINT_FLAG", + "label": "MLFF_PRINT_FLAG", + "type": "integer", + "default": 1, + "unit": "No unit", + "example": "MLFF_PRINT_FLAG: 1", + "description": "Flag to turn on the printing of MLFF related log in a file named 'mlff.log' during runtime.", + "allow_bool_input": true, + "default_remark": "1", + "description_raw": "Flag to turn on the printing of MLFF related log in a file named 'mlff.log' during runtime.", + "remark_raw": "", + "remark": "", + "category": "mlff" + }, + "MLFF_RADIAL_BASIS": { + "symbol": "{MLFF_RADIAL_BASIS", + "label": "MLFF_RADIAL_BASIS", + "type": "integer", + "default": 8, + "unit": "No unit", + "example": "MLFF_RADIAL_BASIS: 7", + "description": "The number of radial basis functions used in SOAP descriptors.", + "remark": "8-10 radial basis functions should be sufficient for most applications.", + "allow_bool_input": false, + "default_remark": "8", + "description_raw": "The number of radial basis functions used in SOAP descriptors.", + "remark_raw": "8-10 radial basis functions should be sufficient for most applications.", + "category": "mlff" + }, + "MLFF_RCUT_SOAP": { + "symbol": "{MLFF_RCUT_SOAP", + "label": "MLFF_RCUT_SOAP", + "type": "double", + "default": 10.0, + "unit": "Bohr", + "example": "MLFF_RCUT_SOAP: 8.0", + "description": "The cutoff radius used to calculate the SOAP descriptor.", + "remark": "", + "allow_bool_input": false, + "default_remark": "10.0", + "description_raw": "The cutoff radius used to calculate the SOAP descriptor.", + "remark_raw": "%\n%", + "category": "mlff" + }, + "MLFF_REGUL_MIN": { + "symbol": "{MLFF_REGUL_MIN", + "label": "MLFF_REGUL_MIN", + "type": "double", + "default": 1e-14, + "unit": "No unit", + "example": "MLFF_REGUL_MIN: 1e-10", + "description": "The mimimum value of inverse of condition number of K^TK + \\lambda I matrix which appear in MLFF calculation.", + "remark": "The K^TK + \\lambda I matrix needs to be inverted during the training of MLFF. The matrix K^TK is in general ill-conditioned so regularization is used to improve the conditioning. Any number in the range of 1E-10-1E-14 should work. A larger value should result in lesser DFT calls, but also lesser accuracy of MLFF model.", + "allow_bool_input": false, + "default_remark": "1e-14", + "description_raw": "The mimimum value of inverse of condition number of $K^TK + \\lambda I$ matrix which appear in MLFF calculation.", + "remark_raw": "The $K^TK + \\lambda I$ matrix needs to be inverted during the training of MLFF. The matrix $K^TK$ is in general ill-conditioned so regularization is used to improve the conditioning. Any number in the range of 1E-10-1E-14 should work. A larger value should result in lesser DFT calls, but also lesser accuracy of MLFF model.", + "category": "mlff" + }, + "MLFF_SCALE_FORCE": { + "symbol": "{MLFF_SCALE_FORCE", + "label": "MLFF_SCALE_FORCE", + "type": "double", + "default": 1.0, + "unit": "No unit", + "example": "MLFF_SCALE_FORCE: 10", + "description": "The scaling of force terms in the loss function during the training.", + "remark": "A larger number can result in better accuracy of MLFF forces.", + "allow_bool_input": false, + "default_remark": "1.0", + "description_raw": "The scaling of force terms in the loss function during the training.", + "remark_raw": "A larger number can result in better accuracy of MLFF forces.", + "category": "mlff" + }, + "MLFF_SCALE_STRESS": { + "symbol": "{MLFF_SCALE_STRESS", + "label": "MLFF_SCALE_STRESS", + "type": "double array", + "default": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "unit": "No unit", + "example": "MLFF_SCALE_STRESS: 10 1 1 10 1 10", + "description": "The scaling of stress tensor terms in the loss function during the training.", + "remark": "", + "allow_bool_input": false, + "default_remark": "1.0 1.0 1.0 1.0 1.0 1.0", + "description_raw": "The scaling of stress tensor terms in the loss function during the training.", + "remark_raw": "%\n%", + "category": "mlff" + }, + "MLFF_TOL_FORCE": { + "symbol": "{MLFF_TOL_FORCE", + "label": "MLFF_TOL_FORCE", + "type": "double", + "default": 5e-10, + "unit": "No unit", + "example": "MLFF_TOL_FORCE: 1e-10", + "description": "The initial value of \\sigma_\\rm tol.", + "remark": "", + "allow_bool_input": false, + "default_remark": "5e-10", + "description_raw": "The initial value of $\\sigma_{\\rm tol}$.", + "remark_raw": "%\n%", + "category": "mlff" + }, "TWIST_ANGLE": { "symbol": "TWIST_ANGLE", "label": "TWIST_ANGLE",