diff --git a/include/ufo/ufo.impl.hpp b/include/ufo/ufo.impl.hpp index 12a8be1..c6e368d 100644 --- a/include/ufo/ufo.impl.hpp +++ b/include/ufo/ufo.impl.hpp @@ -95,8 +95,9 @@ inline Input::Input(std::string filename) for (unsigned i = 0; i < points.size(); i++) for (unsigned j = 0; j < 3; j++) atom_position_to_super_cell(i, j) = points[i]["coordinates"][j].as(); - auto super_cell = SuperCellDeformation.value_or(Eigen::Matrix3d::Identity()) - * SuperCellMultiplier.cast().asDiagonal() * PrimativeCell; + auto super_cell = SuperCellDeformation + ? (*SuperCellDeformation * SuperCellMultiplier.cast().asDiagonal() * PrimativeCell).eval() + : SuperCellMultiplier.cast().asDiagonal() * PrimativeCell; AtomPosition = atom_position_to_super_cell * super_cell; } if (QPointDataInputFile.Format == "yaml")