/* ORCA interface routines */
-void init_orca(t_QMrec *qm)
+void init_orca(t_QMrec* qm)
{
- char *buf;
+ char* buf;
snew(buf, 200);
if (!GMX_QMMM_ORCA)
{
- gmx_fatal(FARGS, "Cannot call ORCA unless linked against it. Use cmake -DGMX_QMMM_PROGRAM=ORCA, and ensure that linking will work correctly.");
+ gmx_fatal(FARGS,
+ "Cannot call ORCA unless linked against it. Use cmake -DGMX_QMMM_PROGRAM=ORCA, "
+ "and ensure that linking will work correctly.");
}
/* ORCA settings on the system */
}
-static void write_orca_input(const t_forcerec *fr, t_QMrec *qm, t_MMrec *mm)
+static void write_orca_input(const t_forcerec* fr, t_QMrec* qm, t_MMrec* mm)
{
int i;
- t_QMMMrec *QMMMrec;
- FILE *out, *pcFile, *addInputFile;
- char *buf, *orcaInput, *addInputFilename, *pcFilename;
+ t_QMMMrec* QMMMrec;
+ FILE * out, *pcFile, *addInputFile;
+ char * buf, *orcaInput, *addInputFilename, *pcFilename;
QMMMrec = fr->qr;
{
atomNr = qm->atomicnumberQM[i];
}
- fprintf(out, "%3d %10.7f %10.7f %10.7f\n",
- atomNr,
- qm->xQM[i][XX]/0.1,
- qm->xQM[i][YY]/0.1,
- qm->xQM[i][ZZ]/0.1);
+ fprintf(out, "%3d %10.7f %10.7f %10.7f\n", atomNr, qm->xQM[i][XX] / 0.1,
+ qm->xQM[i][YY] / 0.1, qm->xQM[i][ZZ] / 0.1);
}
fprintf(out, "*\n");
fprintf(pcFile, "%d\n", mm->nrMMatoms);
for (i = 0; i < mm->nrMMatoms; i++)
{
- fprintf(pcFile, "%8.4f %10.7f %10.7f %10.7f\n",
- mm->MMcharges[i],
- mm->xMM[i][XX]/0.1,
- mm->xMM[i][YY]/0.1,
- mm->xMM[i][ZZ]/0.1);
+ fprintf(pcFile, "%8.4f %10.7f %10.7f %10.7f\n", mm->MMcharges[i],
+ mm->xMM[i][XX] / 0.1, mm->xMM[i][YY] / 0.1, mm->xMM[i][ZZ] / 0.1);
}
fprintf(pcFile, "\n");
fclose(pcFile);
fprintf(out, "\n");
fclose(out);
-} /* write_orca_input */
+} /* write_orca_input */
-static real read_orca_output(rvec QMgrad[], rvec MMgrad[], const t_forcerec *fr,
- t_QMrec *qm, t_MMrec *mm)
+static real read_orca_output(rvec QMgrad[], rvec MMgrad[], const t_forcerec* fr, t_QMrec* qm, t_MMrec* mm)
{
- int
- i, j;
- char
- buf[300], orca_pcgradFilename[300], orca_engradFilename[300];
- real
- QMener;
- FILE
- *pcgrad, *engrad;
- int k;
- t_QMMMrec
- *QMMMrec;
+ int i, j;
+ char buf[300], orca_pcgradFilename[300], orca_engradFilename[300];
+ real QMener;
+ FILE * pcgrad, *engrad;
+ int k;
+ t_QMMMrec* QMMMrec;
QMMMrec = fr->qr;
/* the energy and gradients for the QM part are stored in the engrad file
* (atom1 x \n atom1 y \n atom1 z \n atom2 x ...
*/
- for (i = 0; i < 3*qm->nrQMatoms; i++)
+ for (i = 0; i < 3 * qm->nrQMatoms; i++)
{
- k = i/3;
+ k = i / 3;
if (fgets(buf, 300, engrad) == nullptr)
{
gmx_fatal(FARGS, "Unexpected end of ORCA output");
}
#if GMX_DOUBLE
- if (i%3 == 0)
+ if (i % 3 == 0)
{
sscanf(buf, "%lf\n", &QMgrad[k][XX]);
}
- else if (i%3 == 1)
+ else if (i % 3 == 1)
{
sscanf(buf, "%lf\n", &QMgrad[k][YY]);
}
- else if (i%3 == 2)
+ else if (i % 3 == 2)
{
sscanf(buf, "%lf\n", &QMgrad[k][ZZ]);
}
#else
- if (i%3 == 0)
+ if (i % 3 == 0)
{
sscanf(buf, "%f\n", &QMgrad[k][XX]);
}
- else if (i%3 == 1)
+ else if (i % 3 == 1)
{
sscanf(buf, "%f\n", &QMgrad[k][YY]);
}
- else if (i%3 == 2)
+ else if (i % 3 == 2)
{
sscanf(buf, "%f\n", &QMgrad[k][ZZ]);
}
{
gmx_fatal(FARGS, "Unexpected end of ORCA output");
}
- #if GMX_DOUBLE
- sscanf(buf, "%lf%lf%lf\n",
- &MMgrad[i][XX],
- &MMgrad[i][YY],
- &MMgrad[i][ZZ]);
- #else
- sscanf(buf, "%f%f%f\n",
- &MMgrad[i][XX],
- &MMgrad[i][YY],
- &MMgrad[i][ZZ]);
- #endif
+#if GMX_DOUBLE
+ sscanf(buf, "%lf%lf%lf\n", &MMgrad[i][XX], &MMgrad[i][YY], &MMgrad[i][ZZ]);
+#else
+ sscanf(buf, "%f%f%f\n", &MMgrad[i][XX], &MMgrad[i][YY], &MMgrad[i][ZZ]);
+#endif
}
fclose(pcgrad);
}
- return(QMener);
+ return (QMener);
}
-static void do_orca(char *orca_dir, char *basename)
+static void do_orca(char* orca_dir, char* basename)
{
/* make the call to the orca binary through system()
* The location of the binary is set through the
* environment.
*/
- char
- buf[100];
- sprintf(buf, "%s/%s %s.inp >> %s.out",
- orca_dir,
- "orca",
- basename,
- basename);
+ char buf[100];
+ sprintf(buf, "%s/%s %s.inp >> %s.out", orca_dir, "orca", basename, basename);
fprintf(stderr, "Calling '%s'\n", buf);
if (system(buf) != 0)
{
}
}
-real call_orca(const t_forcerec *fr,
- t_QMrec *qm, t_MMrec *mm, rvec f[], rvec fshift[])
+real call_orca(const t_forcerec* fr, t_QMrec* qm, t_MMrec* mm, rvec f[], rvec fshift[])
{
/* normal orca jobs */
- static int
- step = 0;
- int
- i, j;
- real
- QMener;
- rvec
- *QMgrad, *MMgrad;
- char
- *exe;
+ static int step = 0;
+ int i, j;
+ real QMener;
+ rvec * QMgrad, *MMgrad;
+ char* exe;
snew(exe, 30);
sprintf(exe, "%s", "orca");
{
for (j = 0; j < DIM; j++)
{
- f[i][j] = HARTREE_BOHR2MD*QMgrad[i][j];
- fshift[i][j] = HARTREE_BOHR2MD*QMgrad[i][j];
+ f[i][j] = HARTREE_BOHR2MD * QMgrad[i][j];
+ fshift[i][j] = HARTREE_BOHR2MD * QMgrad[i][j];
}
}
for (i = 0; i < mm->nrMMatoms; i++)
{
for (j = 0; j < DIM; j++)
{
- f[i+qm->nrQMatoms][j] = HARTREE_BOHR2MD*MMgrad[i][j];
- fshift[i+qm->nrQMatoms][j] = HARTREE_BOHR2MD*MMgrad[i][j];
+ f[i + qm->nrQMatoms][j] = HARTREE_BOHR2MD * MMgrad[i][j];
+ fshift[i + qm->nrQMatoms][j] = HARTREE_BOHR2MD * MMgrad[i][j];
}
}
- QMener = QMener*HARTREE2KJ*AVOGADRO;
+ QMener = QMener * HARTREE2KJ * AVOGADRO;
step++;
free(exe);
- return(QMener);
+ return (QMener);
} /* call_orca */
/* end of orca sub routines */