qsimulate-open / bagel

Brilliantly Advanced General Electronic-structure Library
GNU General Public License v3.0
92 stars 44 forks source link

How to run calculations under point charge #269

Closed 1637782459 closed 4 months ago

1637782459 commented 1 year ago

Dear all,

I had tried to set the Dummy atoms mentioned in the manual, but the computational cost is large (255.53 seconds using 8 threads). In molpro, the time of cost is only 8.51 seconds using 1 thread. Are there bugs or maybe something wrong with my settings? thanks

part of the input file (3561 dummy atoms): { "bagel": [ { "title": "molecule", "basis": "svp", "df_basis": "svp-jkfit", "geometry": [ { "atom": "C", "xyz": [ 24.49518399754341, 22.082408299174045, 21.628650400038357 ] }, { "atom": "H", "xyz": [ 25.567143301459428, 21.953144499648243, 21.435301801190295 ] }, { "atom": "H", "xyz": [ 24.167304899499793, 22.772206602386103, 20.84133650089251 ] }, { "atom": "H", "xyz": [ 24.347732700156467, 22.56184180238571, 22.604145800096703 ] }, { "atom": "N", "xyz": [ 23.79943210147776, 20.727949499320587, 21.6968213999299 ] }, { "atom": "N", "xyz": [ 22.53827439797458, 20.798500902341306, 21.629849801348715 ] }, { "atom": "C", "xyz": [ 21.817877401653643, 22.11152389907104, 21.687295299990485 ] }, { "atom": "H", "xyz": [ 22.102166199194713, 22.588200600696837, 22.633418301036052 ] }, { "atom": "H", "xyz": [ 22.121805298932053, 22.762441499560424, 20.85836600026809 ] }, { "atom": "H", "xyz": [ 20.75581409783762, 21.85121669823404, 21.773616898216417 ] }, { "atom": "Q", "xyz": [ 20.695220100640178, 3.4401561987571903, 17.717742400520713 ], "charge": -0.8339853734084002 }, { "atom": "Q", "xyz": [ 19.892103901107873, 3.5286864979834247, 18.230966101628674 ], "charge": 0.4169926867042001 }, { "atom": "Q", "xyz": [ 21.33284200205298, 3.9891500989557342, 18.174115001286452 ], "charge": 0.4169926867042001 }, { "atom": "Q", "xyz": [ 16.979018002468226, 34.83607870177225, 24.58207649860083 ], "charge": -0.8339853734084002 }, { "atom": "Q", "xyz": [ 16.71124600038065, 33.932442301617044, 24.414830301122795 ], "charge": 0.4169926867042001 }, { "atom": "Q", "xyz": [ 16.693450501120317, 35.31805649958636, 23.805944801802863 ], "charge": 0.4169926867042001 }, { "atom": "Q", "xyz": [ 13.312798099258973, 24.580867201676675, 31.385634001595914 ], "charge": -0.8339853734084002 }, { "atom": "Q", "xyz": [ 12.648163198919155, 23.90162979914366, 31.271053398495845 ], "charge": 0.4169926867042001 }, { "atom": "Q", "xyz": [ 13.10470470246633, 25.23461279925357, 30.71814189887844 ], "charge": 0.4169926867042001 }, ...... { "atom": "Q", "xyz": [ 26.92037280149024, 30.419284498236156, 12.807619701507635 ], "charge": 0.4169926867042001 }, { "atom": "Q", "xyz": [ 27.222316601742765, 31.898733197890238, 12.912721999953767 ], "charge": 0.4169926867042001 } ] }, { "title": "hf" }, { "title": "forces", "grads": [ { "title": "force", "target": 0 }, { "title": "force", "target": 1 }, { "title": "nacme", "target": 0, "target2": 1 } ], "export": true, "method": [ { "title": "casscf", "nact": 4, "nclosed": 13, "nstate": 3 } ] } ] }

shiozaki commented 1 year ago

The code for external charges is not optimized in this open-source version, because it was originally written for CASPT2 with large active spaces in which the cost of this part was negligible.

The commercial version has a code for a large number of charges; we divide the space into boxes and use multiple expansions, using which we regularly run QM/MM with 10k atoms in a cell and PBC. However, the code is not easily separable from the rest, and it's a bit unrealistic to port this algorithm right now.

1637782459 commented 1 year ago

Okay, thank you for your reply!

The code for external charges is not optimized in this open-source version, because it was originally written for CASPT2 with large active spaces in which the cost of this part was negligible.

The commercial version has a code for a large number of charges; we divide the space into boxes and use multiple expansions, using which we regularly run QM/MM with 10k atoms in a cell and PBC. However, the code is not easily separable from the rest, and it's a bit unrealistic to port this algorithm right now.