From 105a6168116c22f68850bbf00fd2bc91cbfe5c4d Mon Sep 17 00:00:00 2001 From: Eisuke Kawashima Date: Sat, 31 Aug 2024 13:52:24 +0900 Subject: [PATCH 1/2] fix(cp2kinput): various fixes - add missing `&END KIND` - fix FORCE_EVAL/METHOD for electronic structure methods - fix GLOBAL/PROJECT - add missing `&COORD` and `&END COORD` - `&SUBSYS` - fix `&END FORCE_EVAL` - fix XC_FUNCTIONAL Signed-off-by: Eisuke Kawashima --- .../qtplugins/cp2kinput/cp2kinputdialog.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp b/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp index 2b262c3bb..10eb83bdf 100644 --- a/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp +++ b/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp @@ -457,7 +457,7 @@ QString Cp2kInputDialog::generateJobTitle() const // Merge theory/basis into theory // replace(QRegExp("\\s+"), ""); - return QString("%1 | %2 | %3").arg(formula, calculation, basis); + return QString("%1_%2_%3").arg(formula, calculation, basis); } void Cp2kInputDialog::updatePreviewText() @@ -654,7 +654,7 @@ void Cp2kInputDialog::updatePreviewText() switch (method) { case DFT: - gmethod = "DFT"; + gmethod = "QS"; break; case MolecularMechanics: gmethod = "FIST"; @@ -756,7 +756,8 @@ void Cp2kInputDialog::updatePreviewText() file += "&FORCE_EVAL\n"; file += QString(" METHOD %1\n").arg(gmethod); - file += "&END FORCE_EVAL\n"; + + file += " &SUBSYS\n"; if (m_molecule) { std::vector atomList; @@ -782,6 +783,7 @@ void Cp2kInputDialog::updatePreviewText() file += QString(" POTENTIAL GTH-%1-q%2\n") .arg(gfunc) .arg(valencee[symbol]); + file += QString(" &END KIND\n"); } } } @@ -815,6 +817,7 @@ void Cp2kInputDialog::updatePreviewText() file += " &END CELL \n"; if (m_molecule) { + file += " &COORD\n"; for (size_t i = 0; i < m_molecule->atomCount(); ++i) { Core::Atom atom = m_molecule->atom(i); file += QString(" %1 %2 %3 %4\n") @@ -823,8 +826,12 @@ void Cp2kInputDialog::updatePreviewText() .arg(atom.position3d().y(), 9, 'f', 5) .arg(atom.position3d().z(), 9, 'f', 5); } + file += " &END COORD\n"; } - if (gmethod == "DFT") { + + file += " &END SUBSYS\n"; + + if (gmethod == "QS") { file += " &DFT\n"; file += " BASIS_SET_FILE_NAME BASIS_SET\n"; file += " POTENTIAL_FILE_NAME GTH_POTENTIALS\n"; @@ -857,7 +864,7 @@ void Cp2kInputDialog::updatePreviewText() file += " &END SCF\n"; file += " &XC\n"; - file += QString(" &XC_FUNCTIONAL %1\n").arg(functional); + file += QString(" &XC_FUNCTIONAL %1\n").arg(gfunc); file += " &END XC_FUNCTIONAL\n"; file += " &END XC\n"; @@ -914,6 +921,7 @@ void Cp2kInputDialog::updatePreviewText() } file += " $END\n"; + file += "&END FORCE_EVAL\n"; ui.previewText->setText(file); ui.previewText->document()->setModified(false); From a51964f5277b10aa34b2792e1dafc5381a244e2b Mon Sep 17 00:00:00 2001 From: Eisuke Kawashima Date: Sat, 31 Aug 2024 14:46:33 +0900 Subject: [PATCH 2/2] feat(cp2kinput): improvements - CELL of `PERIODIC NONE` for non-periodic system Signed-off-by: Eisuke Kawashima --- avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp b/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp index 10eb83bdf..5eec8b6dd 100644 --- a/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp +++ b/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp @@ -813,8 +813,9 @@ void Cp2kInputDialog::updatePreviewText() file += " A 10.00000000 0.000000000 0.000000000\n"; file += " B 0.000000000 10.00000000 0.000000000\n"; file += " C 0.000000000 0.000000000 10.00000000\n"; + file += " PERIODIC NONE\n"; } - file += " &END CELL \n"; + file += " &END CELL\n"; if (m_molecule) { file += " &COORD\n";