Problem
As of late I have noticed that the ORCA Manual and the opi source code can occasionally differ on the availability of ORCA input blocks and simple input keywords. One example is the optimization keywords. The ORCA Manual does not list a SloppyOpt in the optimization keywords, but it is present in src/opi/input/simple_keywords/opt.py, along with CrudeOpt, which is also not in the ORCA Manual.
It is difficult if you are a user, or perhaps a developer looking to make an interface to ORCA in another program, to know what options are actually available.
Solution
Given the access that the opi developers have to the ORCA source code, you are in a unique position to provide a 100% accurate, serialized version of the ORCA input parameters. Ideally this would be in an easily-parsed yet still human-readable format such as TOML, and could be provided in this repository for anyone who is looking for programmatic access to ORCA input variables.
As a brief idea of how this might look, consider the following layout:
orca-version = "6.1.1"
[[blocks.cis]]
nroots = {type = "int"}
iroot = {type = "int"}
irootmult = {type = "str", options = ["singlet", "triplet"]}
maxdim = {type = "int"}
maxiter = {type = "int"}
nguessmat = {type = "int"}
maxcore = {type = "int"}
etol = {type = "float"}
rtol = {type = "float"}
tda = {type = "bool"}
lrcpcm = {type = "bool"}
cpcmeq = {type = "bool"}
donto = {type = "bool"}
saveunrnatorb = {type = "bool"}
spinflip = {type = "bool"}
soc = {type = "bool"}
socgrad = {type = "bool"}
triplets = {type = "bool"}
dotrans = {type = "bool"}
dcorr = {type = "int"}
doscs = {type = "bool"}
intaccxc = {type = "float"}
gridxc = {type = "int"}
gridx = {type = "int"}
[[blocks.ice]]
nel = {type = "int"}
norb = {type = "int"}
nroots = {type = "int"}
mult = {type = "int"}
irrep = {type = "int"}
tgen = {type = "float"}
tvar = {type = "float"}
etol = {type = "float"}
icetype = {type = "str", options = ["CFGs", "CSFs", "DETs"]}
integrals = {type = "str", options = ["exact", "ri"]}
Alternatives
My only alternative as of right now is to comb through the ORCA manual and try to catch all of the input blocks and simple input keywords, then hope that it's accurate. When it gets updated either I or someone else will have to comb through it again to try and catch the changes, if there are any.
Problem
As of late I have noticed that the ORCA Manual and the
opisource code can occasionally differ on the availability of ORCA input blocks and simple input keywords. One example is the optimization keywords. The ORCA Manual does not list aSloppyOptin the optimization keywords, but it is present insrc/opi/input/simple_keywords/opt.py, along withCrudeOpt, which is also not in the ORCA Manual.It is difficult if you are a user, or perhaps a developer looking to make an interface to ORCA in another program, to know what options are actually available.
Solution
Given the access that the
opidevelopers have to the ORCA source code, you are in a unique position to provide a 100% accurate, serialized version of the ORCA input parameters. Ideally this would be in an easily-parsed yet still human-readable format such as TOML, and could be provided in this repository for anyone who is looking for programmatic access to ORCA input variables.As a brief idea of how this might look, consider the following layout:
Alternatives
My only alternative as of right now is to comb through the ORCA manual and try to catch all of the input blocks and simple input keywords, then hope that it's accurate. When it gets updated either I or someone else will have to comb through it again to try and catch the changes, if there are any.