8 #ifndef SPARROW_ELEMENTPAIRPARAMETERS_H
9 #define SPARROW_ELEMENTPAIRPARAMETERS_H
31 using PM6DiatomicParametersPtr = std::unique_ptr<PM6DiatomicParameters>;
32 using ParameterContainer = std::array<PM6DiatomicParametersPtr, 110>;
33 using PPContainer = std::array<ParameterContainer, 110>;
37 parameters_ = PPContainer{};
40 bool isSet(Utils::ElementType e1, Utils::ElementType e2)
const {
43 return parameters_[z2][z1] !=
nullptr;
45 void set(Utils::ElementType e1, Utils::ElementType e2, std::unique_ptr<PM6DiatomicParameters>&& parameters) {
48 parameters_[z2][z1] = std::move(parameters);
50 const PM6DiatomicParameters&
get(Utils::ElementType e1, Utils::ElementType e2)
const {
54 return *parameters_[z2][z1];
56 throw Utils::Methods::ParametersDoNotExistForElementPairException(e1, e2);
60 PPContainer parameters_;
67 #endif // SPARROW_ELEMENTPAIRPARAMETERS_H
Definition: ElementPairParameters.h:29
static constexpr unsigned Z(const ElementType e) noexcept
void clear()
Definition: ElementPairParameters.h:36