GQCP
Loading...
Searching...
No Matches
Orbital2DM.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
25
26
27namespace GQCP {
28
29
30/*
31 * MARK: `Orbital2DM` implementation
32 */
33
39template <typename _Scalar>
41 public Simple2DM<_Scalar, Orbital2DM<_Scalar>> {
42public:
43 // The scalar type used for a density matrix element: real or complex.
44 using Scalar = _Scalar;
45
46public:
47 /*
48 * MARK: Constructors
49 */
50
51 // Inherit `Simple2DM`'s constructors.
53};
54
55
56/*
57 * MARK: `DensityMatrixTraits`
58 */
59
63template <typename Scalar>
65
66 // The type of transformation that is naturally related to an `Orbital2DM`. The only transformations that should be naturally possible for an orbital 2-DM are restricted transformations, thereby assuming that the density matrices for alpha-alpha, alpha-beta, beta-alpha and beta-beta are equal and thus transform similarly.
68
69 // The type of the one-electron density matrix that is naturally related to an `Orbital2DM`.
71};
72
73
74/*
75 * MARK: `BasisTransformableTraits`
76 */
77
81template <typename Scalar>
83
84 // The type of transformation that is naturally related to an `Orbital2DM`. The only transformations that should be naturally possible for an orbital 2-DM are restricted transformations, thereby assuming that the density matrices for alpha-alpha, alpha-beta, beta-alpha and beta-beta are equal and thus transform similarly.
86};
87
88
89/*
90 * MARK: `JacobiRotatableTraits`
91 */
92
96template <typename Scalar>
98
99 // The type of Jacobi rotation that is naturally related to a `G2DM`.
101};
102
103
104} // namespace GQCP
Definition: JacobiRotation.hpp:33
Definition: Orbital1DM.hpp:42
Definition: Orbital2DM.hpp:41
_Scalar Scalar
Definition: Orbital2DM.hpp:44
Definition: Simple2DM.hpp:47
Definition: BaseOneElectronIntegralBuffer.hpp:25
Definition: BasisTransformable.hpp:37
Definition: DensityMatrixTraits.hpp:28
Definition: JacobiRotatable.hpp:37