Running I-SAPT with molecule created "from_array"

Dear Psi4 developers, dear Psi4 community,

I was trying to run an I-SAPT calculation and as soon as I know it is still necessary to rewrite the input file because of the multiplicity problem. So I adjusted my molecule description according to the example (pentandiol) given (see below). However, the calculation quickly stops with an error.
I am wondering what is meant by “fragment seperators” and if I set the fragment multipicities in the right way. The molecule has a C3 symmetry with 3 dispersion donating fragment to study and one connecting fragment (similar to NEt3).
Could somebody maybe help?
Or is there any tool to create the modified input automatically?

Thanks a lot!!!

Lukas

mol = psi4.core.Molecule.from_arrays(
elez=[8, 6, 1, 1, 1, 8, 6, 1, 1, 1, 8, 6, 1, 1, 1, 7, 1, 6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
fragment_separators=[2, 4],
fix_com=True,
fix_orientation=True,
fix_symmetry=‘c1’,
fragment_multiplicities=[2, 2, 2, 1],
molecular_charge=1,
molecular_multiplicity=1,
geom= [
-0.45866 , -2.15330 , -3.80817,
0.70159 , -2.28860 , -4.60013,
1.48910 , -2.83480 , -4.07061,
1.06111 , -1.28769 , -4.82610,
0.49058 , -2.80376 , -5.54193,

   -1.34854  ,      0.46237  ,      -1.47948,
   -1.21247  ,      1.61090  ,      -2.28799,
   -0.16614  ,      1.90550  ,      -2.26147,
   -1.81823  ,      2.44199  ,      -1.91480,
   -1.49525  ,      1.41012  ,      -3.32651,

    1.10356  ,     -2.01335  ,      -0.58728,
    2.13986  ,     -1.16361  ,      -0.14535,
    2.72819  ,     -0.88735  ,      -1.01709,
    1.74556  ,     -0.25239  ,       0.31638,
    2.79537  ,     -1.66442  ,       0.57338,

   -1.54913  ,     -2.27142  ,      -1.27042,
   -0.79931  ,     -1.67336  ,      -1.65916,
   -2.11464  ,     -3.03423  ,      -2.42734,
   -1.02539  ,     -3.36733  ,      -3.42490,
   -2.55238  ,     -1.34874  ,      -0.65284,
   -2.64108  ,     -0.05718  ,      -1.43837,
   -0.89575  ,     -3.16125  ,      -0.25957,
    0.24006  ,     -2.43009  ,       0.42463,
   -2.60810  ,     -3.92854  ,      -2.04657,
   -2.86503  ,     -2.40428  ,      -2.90291,
   -0.27867  ,     -4.04394  ,      -2.98373,
   -1.48135  ,     -3.90748  ,      -4.26523,
   -2.22784  ,     -1.13526  ,       0.36498,
   -3.51099  ,     -1.86523  ,      -0.60141,
   -3.04456  ,     -0.22857  ,      -2.44788,
   -3.34965  ,      0.60658  ,      -0.92505,
   -0.50947  ,     -4.03460  ,      -0.78324,
   -1.65351  ,     -3.49675  ,       0.44863,
    0.71827  ,     -3.11870  ,       1.13381,
   -0.13536  ,     -1.57997  ,       1.01318])

activate(mol)

=> Standard Options <=

set {
basis jun-cc-pvdz
scf_type df
guess sad
freeze_core true
fisapt_do_plot true # For extra analysis
}

energy(‘fisapt0’)

It would be helpful if you could post the error message you are receiving.

In the meantime, take a look at the input for the I-SAPT example here. This style of input is much more straightforward and human-readable. The molecular charge and multiplicity go in the first line, then the charge and multiplicity for each fragment precede the atoms in the fragment.

In the input style you are using, “fragment_separators” contains the atom indices of the fragment boundaries. For the pentanediol example in the manual, this array is [2, 4] because the fragment boundaries occur after the second and fourth atoms.

It seems like you are trying to use a molecule that has 4 fragments, which is not allowed by I-SAPT. However, I think that the molecular fragments are not required to share covalent bonds. So perhaps you could divide your molecule into 3 fragments: the central connecting group, one of the donating groups, and the other two donating groups. If you can tell us more about what question you are trying to answer with this calculation, then maybe someone can suggest a better setup.