Skip to content

Commit d3d392c

Browse files
authored
Minor corrections (#23)
Refactoring and restructuring.
1 parent 62748de commit d3d392c

15 files changed

+85
-84
lines changed

.gitignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,6 @@
3232
*.app
3333

3434
# standard build directories
35-
build
36-
_build
35+
/build*/
36+
/install*/
37+
/_*/

src/program_dftd.cpp renamed to app/main.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,13 @@ void help() {
106106
be verbose
107107
-h, --help
108108
print this message
109-
109+
-g, --grad
110+
calculate dispersion gradient
110111
)";
111112
}
112113

113114
int main(int argc, char **argv) {
114115
std::string func;
115-
bool lverbose{false};
116116
bool lmbd{true}, lgrad{false};
117117
dftd4::dparam par; // damping parameter for DFT-D4 calculation
118118
dftd4::TMolecule mol;
@@ -137,12 +137,21 @@ int main(int argc, char **argv) {
137137
}
138138

139139
// get other flags
140-
if (args.getflag("-v") || args.getflag("--verbose")) { lverbose = true; }
140+
// bool lverbose{false};
141+
// if (args.getflag("-v") || args.getflag("--verbose")) { lverbose = true; }
141142
if (args.getflag("-g") || args.getflag("--grad")) { lgrad = true; }
143+
142144
if (args.getflag("--func")) {
143145
func = args.getopt("--func");
144-
dftd4::d4par(func, par, lmbd);
146+
} else if (args.getflag("-f")) {
147+
func = args.getopt("-f");
148+
} else {
149+
printf("WARNING: No functional given (via '--func'). Defaulting to PBE.\n\n"
150+
);
151+
func = "pbe";
145152
}
153+
dftd4::d4par(func, par, lmbd);
154+
146155
// last argument is assumed to filename since
147156
// dftd4 [options] <file>
148157
std::string fname{argv[argc - 1]};
@@ -154,15 +163,6 @@ int main(int argc, char **argv) {
154163
dftd4::TCutoff cutoff;
155164
dftd4::TD4Model d4;
156165

157-
// masking (nothing excluded)
158-
dftd4::TVector<int> realIdx;
159-
realIdx.NewVec(mol.NAtoms);
160-
int nat = 0;
161-
for (int i = 0; i != mol.NAtoms; i++) {
162-
realIdx(i) = nat;
163-
nat++;
164-
}
165-
166166
// analytical gradient
167167
double *d4grad;
168168
if (lgrad) {

src/dftd_readxyz.cpp renamed to app/readxyz.cpp

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
* You should have received a copy of the GNU Lesser General Public License
1616
* along with cpp-d4. If not, see <https://www.gnu.org/licenses/>.
1717
*/
18-
1918
#include "dftd_readxyz.h"
2019

2120
#include <algorithm>
@@ -66,19 +65,6 @@ void read_xyzfile(const std::string &name, dftd4::TMolecule &mol) {
6665

6766
int element(const std::string &sym) {
6867
char elem[3]{" "};
69-
char pse[118][3]{
70-
"h ", "he", "li", "be", "b ", "c ", "n ", "o ", "f ", "ne", "na", "mg",
71-
"al", "si", "p ", "s ", "cl", "ar", "k ", "ca", "sc", "ti", "v ", "cr",
72-
"mn", "fe", "co", "ni", "cu", "zn", "ga", "ge", "as", "se", "br", "kr",
73-
"rb", "sr", "y ", "zr", "nb", "mo", "tc", "ru", "rh", "pd", "ag", "cd",
74-
"in", "sn", "sb", "te", "i ", "xe", "cs", "ba", "la", "ce", "pr", "nd",
75-
"pm", "sm", "eu", "gd", "tb", "dy", "ho", "er", "tm", "yb", "lu", "hf",
76-
"ta", "w ", "re", "os", "ir", "pt", "au", "hg", "tl", "pb", "bi", "po",
77-
"at", "rn", "fr", "ra", "ac", "th", "pa", "u ", "np", "pu", "am", "cm",
78-
"bk", "cf", "es", "fm", "md", "no", "lr", "rf", "db", "sg", "bh", "hs",
79-
"mt", "ds", "rg", "cn", "nh", "fl", "mc", "lv", "ts", "og",
80-
};
81-
8268
std::transform(sym.begin(), sym.end(), elem, ::tolower);
8369

8470
for (int i = 0; i != 118; i++) {
File renamed without changes.
File renamed without changes.

include/dftd_cblas.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace dftd4 {
2626

2727
/**
2828
* @brief General matrix vector multiplication (`C = alpha * A * V + C`).
29-
*
29+
*
3030
* @param C Result vector C. Modified in-place.
3131
* @param A Matrix A.
3232
* @param V Vector V.
@@ -80,10 +80,9 @@ inline int BLAS_Add_Mat_x_Vec(
8080
return EXIT_FAILURE;
8181
};
8282

83-
8483
/**
8584
* @brief General matrix-matrix multiplication (`C = alpha * A * B + C`).
86-
*
85+
*
8786
* @param C Result matrix C. Modified in-place.
8887
* @param A Matrix A.
8988
* @param B Matrix B.
@@ -205,7 +204,7 @@ inline int BLAS_Add_Mat_x_Mat(
205204

206205
/**
207206
* @brief Compute inverse of a matrix using LU decomposition.
208-
*
207+
*
209208
* @param a Matrix a.
210209
* @return Exit code.
211210
*/

include/dftd_cutoff.h

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,18 @@ static const double disp3_default = 40.0;
3333

3434
// Collection of real space cutoffs.
3535
class TCutoff {
36-
public:
37-
double disp2;
38-
double disp3;
39-
double cn;
40-
double cn_eeq;
41-
42-
explicit TCutoff(
43-
double cut_disp2 = disp2_default,
44-
double cut_disp3 = disp3_default,
45-
double cut_cn = cn_default,
46-
double cut_cn_eeq = cn_eeq_default
47-
);
36+
public:
37+
double disp2;
38+
double disp3;
39+
double cn;
40+
double cn_eeq;
41+
42+
explicit TCutoff(
43+
double cut_disp2 = disp2_default,
44+
double cut_disp3 = disp3_default,
45+
double cut_cn = cn_default,
46+
double cut_cn_eeq = cn_eeq_default
47+
);
4848
};
4949

5050
} // namespace dftd4

include/dftd_geometry.h

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,25 @@
2323
namespace dftd4 {
2424
// Input of the molecular geometry
2525
class TMolecule {
26-
public:
27-
int NAtoms;
28-
TMatrix<double> xyz; // Cartesian Coordinates: (NAtoms x 3)-matrix
29-
TVector<int> at; // atomic numbers
26+
public:
27+
int NAtoms;
28+
TMatrix<double> xyz; // Cartesian Coordinates: (NAtoms x 3)-matrix
29+
TVector<int> at; // atomic numbers
3030

31-
TMolecule() { NAtoms = 0; }
32-
~TMolecule() { FreeMemory(); }
31+
TMolecule() { NAtoms = 0; }
32+
~TMolecule() { FreeMemory(); }
3333

34-
void GetMemory(int NumAt_) {
35-
FreeMemory();
36-
NAtoms = NumAt_;
37-
xyz.New(NAtoms, 3);
38-
at.New(NAtoms);
39-
}
34+
void GetMemory(int NumAt_) {
35+
FreeMemory();
36+
NAtoms = NumAt_;
37+
xyz.New(NAtoms, 3);
38+
at.New(NAtoms);
39+
}
4040

41-
void FreeMemory(void) {
42-
xyz.Delete();
43-
at.Delete();
44-
}
41+
void FreeMemory(void) {
42+
xyz.Delete();
43+
at.Delete();
44+
}
4545
};
4646

4747
} // namespace dftd4

include/dftd_readxyz.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,19 @@
2121

2222
#include "dftd_geometry.h"
2323

24+
static const char pse[118][3]{
25+
"h ", "he", "li", "be", "b ", "c ", "n ", "o ", "f ", "ne", "na", "mg",
26+
"al", "si", "p ", "s ", "cl", "ar", "k ", "ca", "sc", "ti", "v ", "cr",
27+
"mn", "fe", "co", "ni", "cu", "zn", "ga", "ge", "as", "se", "br", "kr",
28+
"rb", "sr", "y ", "zr", "nb", "mo", "tc", "ru", "rh", "pd", "ag", "cd",
29+
"in", "sn", "sb", "te", "i ", "xe", "cs", "ba", "la", "ce", "pr", "nd",
30+
"pm", "sm", "eu", "gd", "tb", "dy", "ho", "er", "tm", "yb", "lu", "hf",
31+
"ta", "w ", "re", "os", "ir", "pt", "au", "hg", "tl", "pb", "bi", "po",
32+
"at", "rn", "fr", "ra", "ac", "th", "pa", "u ", "np", "pu", "am", "cm",
33+
"bk", "cf", "es", "fm", "md", "no", "lr", "rf", "db", "sg", "bh", "hs",
34+
"mt", "ds", "rg", "cn", "nh", "fl", "mc", "lv", "ts", "og",
35+
};
36+
2437
extern void read_xyzfile(const std::string &, dftd4::TMolecule &);
2538

2639
extern int element(const std::string &);

meson.build

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ project(
2020
'cpp',
2121
version: '2.0',
2222
license: 'LGPL3-or-later',
23-
meson_version: '>=0.45',
23+
meson_version: '>=0.46',
24+
default_options: [
25+
'default_library=both',
26+
],
2427
)
2528

2629
cxx = meson.get_compiler('cpp')
@@ -41,8 +44,8 @@ srcs = files(
4144
'src/dftd_eeq.cpp',
4245
'src/dftd_model.cpp',
4346
'src/dftd_ncoord.cpp',
44-
'src/damping/atm.cpp',
45-
'src/damping/rational.cpp',
47+
'src/damping/dftd_atm.cpp',
48+
'src/damping/dftd_rational.cpp',
4649
)
4750

4851
cpp_d4_inc = include_directories('include')
@@ -66,8 +69,8 @@ install_headers(
6669
'include/dftd_model.h',
6770
'include/dftd_ncoord.h',
6871
'include/dftd_parameters.h',
69-
'include/damping/atm.h',
70-
'include/damping/rational.h',
72+
'include/damping/dftd_atm.h',
73+
'include/damping/dftd_rational.h',
7174
)
7275

7376
cpp_d4_dep = declare_dependency(
@@ -79,8 +82,8 @@ cpp_d4_dep = declare_dependency(
7982
executable(
8083
meson.project_name(),
8184
sources: files(
82-
'src/program_dftd.cpp',
83-
'src/dftd_readxyz.cpp',
85+
'app/main.cpp',
86+
'app/readxyz.cpp',
8487
),
8588
dependencies: cpp_d4_dep,
8689
install: true,

src/damping/atm.cpp renamed to src/damping/dftd_atm.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#include "dftd_matrix.h"
3131
#include "dftd_ncoord.h"
3232
#include "dftd_parameters.h"
33-
#include "damping/atm.h"
33+
#include "damping/dftd_atm.h"
3434

3535
namespace dftd4 {
3636

src/damping/rational.cpp renamed to src/damping/dftd_rational.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
#include "dftd_matrix.h"
2626
#include "dftd_ncoord.h"
2727
#include "dftd_parameters.h"
28-
#include "damping/atm.h"
29-
#include "damping/rational.h"
28+
#include "damping/dftd_atm.h"
29+
#include "damping/dftd_rational.h"
3030

3131

3232
namespace dftd4 {

src/dftd_dispersion.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
*/
2222
#include <cmath>
2323

24-
#include "damping/atm.h"
25-
#include "damping/rational.h"
24+
#include "damping/dftd_atm.h"
25+
#include "damping/dftd_rational.h"
2626
#include "dftd_cblas.h"
2727
#include "dftd_dispersion.h"
2828
#include "dftd_eeq.h"

src/dftd_model.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -258,21 +258,21 @@ int TD4Model::get_atomic_c6(
258258

259259
int TD4Model::set_refalpha_eeq(const TMolecule &mol, TMatrix<double> &alpha)
260260
const {
261-
int iat{0}, is{0};
261+
int izp{0}, is{0};
262262
double iz{0.0}, aiw{0.0};
263263

264-
for (int i = 0; i != mol.NAtoms; i++) {
265-
iat = mol.at(i);
266-
for (int ir = 0; ir != refn[iat]; ir++) {
267-
is = refsys[iat][ir];
264+
for (int iat = 0; iat != mol.NAtoms; iat++) {
265+
izp = mol.at(iat);
266+
for (int ir = 0; ir != refn[izp]; ir++) {
267+
is = refsys[izp][ir];
268268
iz = zeff[is];
269269
for (int k = 0; k != 23; k++) {
270270
aiw = secscale[is] * secalpha[is][k] *
271-
zeta(ga, gam[is] * gc, iz, refsq[iat][ir] + iz);
272-
alpha(i, 23 * ir + k) = std::max(
271+
zeta(ga, gam[is] * gc, iz, refsq[izp][ir] + iz);
272+
alpha(iat, 23 * ir + k) = std::max(
273273
0.0,
274-
refascale[iat][ir] *
275-
(refalpha[iat][23 * ir + k] - refscount[iat][ir] * aiw)
274+
refascale[izp][ir] *
275+
(refalpha[izp][23 * ir + k] - refscount[izp][ir] * aiw)
276276
);
277277
}
278278
}

src/dftd_ncoord.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@
2323
* This module works on a distance matrix to avoid recalculating
2424
* the distances every time.
2525
*/
26-
#include "dftd_ncoord.h"
27-
2826
#include <cmath>
2927
#include <iostream>
3028

3129
#include "dftd_geometry.h"
30+
#include "dftd_ncoord.h"
3231
#include "dftd_matrix.h"
3332

3433
namespace dftd4 {

0 commit comments

Comments
 (0)