36 std::size_t found_xml = name.find(
".xml");
38 if (found_xml != std::string::npos) {
45 basis_property.
get(
"pseudopotential").
getAttribute<std::string>(
"name");
46 std::vector<tools::Property*> elementProps =
47 basis_property.
Select(
"pseudopotential.element");
50 std::string elementName = elementProp->getAttribute<std::string>(
"name");
51 Index lmax = elementProp->getAttribute<
Index>(
"lmax");
53 throw std::runtime_error(
"In ecps lmax larger " +
54 std::to_string(
Index(
L::I)) +
" is not allowed");
56 Index ncore = elementProp->getAttribute<
Index>(
"ncore");
60 std::vector<tools::Property*> shellProps = elementProp->Select(
"shell");
62 std::string shellType = shellProp->getAttribute<std::string>(
"type");
63 if (shellType.size() > 1) {
64 throw std::runtime_error(
65 "In ecps no combined shells e.g. SP are allowed. Here:" +
69 std::vector<tools::Property*> constProps = shellProp->Select(
"constant");
71 Index power = constProp->getAttribute<
Index>(
"power");
72 double decay = constProp->getAttribute<
double>(
"decay");
73 double contraction = constProp->getAttribute<
double>(
"contraction");