42 std::vector<size_t> occupied_indices;
43 std::vector<size_t> active_indices;
44 std::vector<size_t> virtual_indices;
46 std::vector<size_t> all_indices;
59 OrbitalSpace(
const std::vector<size_t>& occupied_indices,
const std::vector<size_t>& active_indices,
const std::vector<size_t>& virtual_indices);
69 OrbitalSpace(
const std::vector<size_t>& occupied_indices,
const std::vector<size_t>& virtual_indices);
101 template <
typename Scalar>
105 const auto row_indices = this->
indices(row_type);
106 const auto column_indices = this->
indices(column_type);
129 template <
typename Scalar>
133 const auto axis1_indices = this->
indices(axis1_type);
134 const auto axis2_indices = this->
indices(axis2_type);
135 const auto axis3_indices = this->
indices(axis3_type);
136 const auto axis4_indices = this->
indices(axis4_type);
150 const std::vector<size_t>&
indices()
const {
return this->all_indices; }
172 template <
typename Scalar>
181 return this->createRepresentableObjectFor<Scalar>(row_type, column_type, M);
200 template <
typename Scalar>
204 const auto axis1_dimension =
static_cast<long>(this->
numberOfOrbitals(axis1_type));
205 const auto axis2_dimension =
static_cast<long>(this->
numberOfOrbitals(axis2_type));
206 const auto axis3_dimension =
static_cast<long>(this->
numberOfOrbitals(axis3_type));
207 const auto axis4_dimension =
static_cast<long>(this->
numberOfOrbitals(axis4_type));
209 Tensor<Scalar, 4> T {axis1_dimension, axis2_dimension, axis3_dimension, axis4_dimension};
Definition: ImplicitMatrixSlice.hpp:38
static ImplicitMatrixSlice< Scalar > FromIndices(const std::vector< size_t > &row_indices, const std::vector< size_t > &col_indices, const MatrixX< Scalar > &M)
Definition: ImplicitMatrixSlice.hpp:134
Definition: ImplicitRankFourTensorSlice.hpp:38
static ImplicitRankFourTensorSlice< Scalar > FromIndices(const std::vector< std::vector< size_t > > &axes_indices, const Tensor< Scalar, 4 > &T)
Definition: ImplicitRankFourTensorSlice.hpp:128
Definition: Matrix.hpp:47
Definition: OrbitalSpace.hpp:40
const std::vector< size_t > & indices() const
Definition: OrbitalSpace.hpp:150
size_t numberOfExcitations(const OccupationType from, const OccupationType to) const
Definition: OrbitalSpace.cpp:187
ImplicitRankFourTensorSlice< Scalar > createRepresentableObjectFor(const OccupationType axis1_type, const OccupationType axis2_type, const OccupationType axis3_type, const OccupationType axis4_type, const Tensor< Scalar, 4 > &T) const
Definition: OrbitalSpace.hpp:130
static OrbitalSpace Implicit(const std::map< OccupationType, size_t > &occupation_type_numbers)
Definition: OrbitalSpace.cpp:74
size_t numberOfOrbitals(const OccupationType type) const
Definition: OrbitalSpace.hpp:242
ImplicitMatrixSlice< Scalar > initializeRepresentableObjectFor(const OccupationType row_type, const OccupationType column_type) const
Definition: OrbitalSpace.hpp:173
ImplicitRankFourTensorSlice< Scalar > initializeRepresentableObjectFor(const OccupationType axis1_type, const OccupationType axis2_type, const OccupationType axis3_type, const OccupationType axis4_type) const
Definition: OrbitalSpace.hpp:201
size_t numberOfOrbitals() const
Definition: OrbitalSpace.hpp:235
bool isIndex(const OccupationType type, const size_t p) const
Definition: OrbitalSpace.cpp:174
ImplicitMatrixSlice< Scalar > createRepresentableObjectFor(const OccupationType row_type, const OccupationType column_type, const MatrixX< Scalar > &M) const
Definition: OrbitalSpace.hpp:102
std::string description() const
Definition: OrbitalSpace.cpp:119
Definition: Tensor.hpp:46
Definition: BaseOneElectronIntegralBuffer.hpp:25
OccupationType
Definition: OccupationType.hpp:29