GQCP
Loading...
Searching...
No Matches
LondonCartesianGTO.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
24#include "Utilities/complex.hpp"
25
26
27namespace GQCP {
28
29
38 public Function<complex, Vector<double, 3>> {
39public:
40 // The return type of the `operator()`.
42
43 // The input type of the `operator()`.
45
46
47private:
48 // The homogeneous magnetic field appearing in the London modification.
50
51 // The base Cartesian GTO.
52 CartesianGTO gto;
53
54
55public:
56 /*
57 * MARK: Constructors
58 */
59
65
66
67 /*
68 * MARK: Magnetic field
69 */
70
74 const HomogeneousMagneticField& magneticField() const { return this->B; }
75
80
81
82 /*
83 * MARK: Function evaluation
84 */
85
89 const CartesianGTO& cartesianGTO() const { return this->gto; }
90
99
107 complex operator()(const Vector<double, 3>& r) const;
108
115
120
121};
122
123
124} // namespace GQCP
Definition: CartesianGTO.hpp:38
Definition: EvaluableLinearCombination.hpp:46
Definition: Function.hpp:153
Definition: HomogeneousMagneticField.hpp:30
Definition: LondonCartesianGTO.hpp:38
const HomogeneousMagneticField & magneticField() const
Definition: LondonCartesianGTO.hpp:74
complex operator()(const Vector< double, 3 > &r) const
Definition: LondonCartesianGTO.cpp:77
Vector< EvaluableLinearCombination< complex, LondonCartesianGTO >, 3 > calculatePositionGradient() const
Definition: LondonCartesianGTO.cpp:139
Vector< double, 3 > kVector() const
Definition: LondonCartesianGTO.cpp:45
EvaluableLinearCombination< complex, LondonCartesianGTO > calculatePositionDerivative(const CartesianDirection direction) const
Definition: LondonCartesianGTO.cpp:88
const CartesianGTO & cartesianGTO() const
Definition: LondonCartesianGTO.hpp:89
complex phaseFactor(const Vector< double, 3 > &r) const
Definition: LondonCartesianGTO.cpp:63
complex OutputType
Definition: LondonCartesianGTO.hpp:41
Definition: Matrix.hpp:47
Definition: BaseOneElectronIntegralBuffer.hpp:25
std::complex< double > complex
Definition: complex.hpp:31
CartesianDirection
Definition: CartesianDirection.hpp:27