35template <
typename _QCModel,
typename _Scalar =
double>
47 std::vector<Scalar> energies;
50 std::vector<QCModel> model_parameters;
62 QCStructure(
const std::vector<Scalar>& energies,
const std::vector<QCModel>& model_parameters) :
64 model_parameters {model_parameters} {
66 const auto n = energies.size();
69 throw std::invalid_argument(
"QCStructure(const std::vector<Scalar>&, const std::vector<QCModel>&): You have given an empty number of energies.");
72 if (n != model_parameters.size()) {
73 throw std::invalid_argument(
"QCStructure(const std::vector<Scalar>&, const std::vector<QCModel>&): The number of energies and sets of parameters do not match.");
87 Scalar energy(
const size_t i = 0)
const {
return this->energies[i]; }
Definition: QCStructure.hpp:36
const QCModel & parameters(const size_t i=0) const
Definition: QCStructure.hpp:104
_QCModel QCModel
Definition: QCStructure.hpp:39
Scalar groundStateEnergy() const
Definition: QCStructure.hpp:92
Scalar energy(const size_t i=0) const
Definition: QCStructure.hpp:87
const QCModel & groundStateParameters() const
Definition: QCStructure.hpp:109
QCStructure(const std::vector< Scalar > &energies, const std::vector< QCModel > &model_parameters)
Definition: QCStructure.hpp:62
_Scalar Scalar
Definition: QCStructure.hpp:42
Definition: BaseOneElectronIntegralBuffer.hpp:25