How to pass bsse_type into psi4 optimization?

Hi,

I want to do optimization with Counterpose (CP) Basis set superposition error (BSSE) correction using psi4 as solver (providing energy and forces) and ASE’s relaxation algorithms (e.g. BFGS or FIRE)

I was able to figure out how to connect Psi4 calc object with ase.optimize.BFGS but I’m not able to figure out how to pass bsse_type and how to specify the fragments (i.e. the two weakly bounded molecules) which is normaly done by hyphens (--) it psi4 input.

The reason why I want to use ASE optimizer rather than psi4 optimizer (optking) is that optking constantly crashes or get stuck, so I want to use something simple and robuts like FIRE.

https://wiki.fysik.dtu.dk/ase/ase/calculators/psi4.html
https://psicode.org/psi4manual/master/nbody.html

Just for context I attach the input for psi4 and my ASE script

memory 1GB
molecule dimer {
0 1
	    H     1.6522629858  -0.2406430114  -0.7608766593
	    O     1.3817487352   0.2968970467   0.0000000000
	    H     1.6522629858  -0.2406430114   0.7608766593
	    --
	    H    -0.5037084891  -0.0147759884   0.0000000000
	    O    -1.4374843922  -0.2997713310   0.0000000000
	    H    -1.9162521588   0.5416789881   0.0000000000
units angstrom
}

set {
    basis cc-pvdz
    scf_type df 
    opt_type MIN
    geom_maxiter 1000
    g_convergence qchem
    print_trajectory_xyz_file true
    opt_coordinates cartesian
    step_type nr    
}

optimize('b3lyp-d3', bsse_type='cp' )
#!/usr/bin/python
from ase.optimize import BFGS,BFGSLineSearch,FIRE,GPMin,MDMin, QuasiNewton
from ase.calculators.psi4 import Psi4
from ase.build import molecule
import numpy as np

atoms = molecule('H2O')

#calc = Psi4(atoms = atoms,   method = 'b3lyp', memory = '500MB',  basis = 'CC-pVDZ')
calc = Psi4(atoms = atoms,   method = 'b3lyp-d3', memory = '500MB',  basis = 'CC-pVDZ')
#calc = Psi4(atoms = atoms,   method = 'M06-L-D3ZEROATM', memory = '500MB',  basis = 'CC-pVDZ')
atoms.calc = calc

opt = BFGSLineSearch(atoms, trajectory='opt.traj', logfile='opt.log')
opt.run(fmax=1.00E-04)

#print(atoms.get_potential_energy())
#print(atoms.get_forces())