GQCP
Loading...
Searching...
No Matches
BaseNuclearOperator.hpp
Go to the documentation of this file.
1// This file is part of GQCG-GQCP.
2//
3// Copyright (C) 2017-2020 the GQCG developers
4//
5// GQCG-GQCP is free software: you can redistribute it and/or modify
6// it under the terms of the GNU Lesser General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// GQCG-GQCP is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU Lesser General Public License for more details.
14//
15// You should have received a copy of the GNU Lesser General Public License
16// along with GQCG-GQCP. If not, see <http://www.gnu.org/licenses/>.
17
18#pragma once
19
20
22
23
24namespace GQCP {
25
26
31private:
32 // The nuclear framework underlying a nuclear operator.
33 NuclearFramework nuclear_framework;
34
35public:
36 /*
37 * MARK: Constructors
38 */
39
45 BaseNuclearOperator(const NuclearFramework& nuclear_framework);
46
52 BaseNuclearOperator(const std::vector<Nucleus>& nuclei);
53
54
55 /*
56 * MARK: Destructor
57 */
58
59 // Make the destructor pure virtual in order to make this class abstract.
60 virtual ~BaseNuclearOperator() = 0;
61
62
63 /*
64 * MARK: Nuclear framework
65 */
66
70 const NuclearFramework& nuclearFramework() const { return this->nuclear_framework; }
71};
72
73
74} // namespace GQCP
Definition: BaseNuclearOperator.hpp:30
virtual ~BaseNuclearOperator()=0
Definition: BaseNuclearOperator.cpp:51
const NuclearFramework & nuclearFramework() const
Definition: BaseNuclearOperator.hpp:70
Definition: NuclearFramework.hpp:35
Definition: BaseOneElectronIntegralBuffer.hpp:25