-
Notifications
You must be signed in to change notification settings - Fork 43
/
shellecp.cc
65 lines (57 loc) · 2.08 KB
/
shellecp.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//
// BAGEL - Brilliantly Advanced General Electronic Structure Library
// Filename: shell_ecp.cc
// Copyright (C) 2014 Quantum Simulation Technologies, Inc.
//
// Author: Hai-Anh Le <anh@u.northwestern.edu>
// Maintainer: QSimulate
//
// This file is part of the BAGEL package.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
#include <sstream>
#include <src/molecule/shellecp.h>
using namespace std;
using namespace bagel;
Shell_ECP::Shell_ECP()
: Shell_base(false, {{0.0, 0.0, 0.0}}, 0),
ecp_exponents_(0.0), ecp_coefficients_(0.0), ecp_r_power_(0) {}
Shell_ECP::Shell_ECP(const array<double,3>& _position, const int _ang,
const vector<double>& _ecp_expo, const vector<double>& _ecp_coef,
const vector<int>& _ecp_r)
: Shell_base(false, _position, _ang),
ecp_exponents_(_ecp_expo), ecp_coefficients_(_ecp_coef), ecp_r_power_(_ecp_r) {}
string Shell_ECP::show() const {
stringstream ss;
ss << "position: ";
ss << position_[0] << " " << position_[1] << " " << position_[2] << endl;
ss << "ecp_angular: " << angular_number_ << endl;
ss << "ecp_exponents: ";
for (int i = 0; i != ecp_exponents_.size(); ++i) {
ss << " " << ecp_exponents_[i];
}
ss << endl;
ss << "ecp_coefficients: ";
for (int i = 0; i != ecp_coefficients_.size(); ++i) {
ss << " " << ecp_coefficients_[i];
}
ss << endl;
ss << "ecp_r_power: ";
for (int i = 0; i != ecp_r_power_.size(); ++i) {
ss << " " << ecp_r_power_[i];
}
ss << endl;
return ss.str();
}