diff --git a/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.cpp b/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.cpp index 26cbcc4ea98334946de6614cf9aca238ada94d40..f3cb719fc019c4f68a80a04bc676b2445ef1082e 100644 --- a/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.cpp +++ b/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.cpp @@ -1,7 +1,8 @@ #include "DetermineLatticeType.h" +#include "unitcells/UnitCellTypes.h" DetermineLatticeType::DetermineLatticeType(ParseInputFile* filedata) - : _data(filedata) + : _data(filedata), _unitcell(BCC), _type(UnrecognisedLatticeType) { if (!_data->_hasCells && !_data->_hasPositions) { @@ -9,6 +10,17 @@ DetermineLatticeType::DetermineLatticeType(ParseInputFile* filedata) return; } + if (_data->_hasCellType) + { + const std::string& cellstring = _data->_cellType; + if (SupportedCells::isSupportedCell(cellstring)) + _unitcell = SupportedCells::getCellType(cellstring); + else + { + _errors.emplace_back(UnrecognisedUnitCell); + } + } + // Simple Lattice if (!_data->_hasPositions) { diff --git a/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.h b/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.h index 271b400ebbde8a52559a2ea057a4410d8179568e..2a384a7b0a74bc39fc425f0df83c4e7a9ec2a74c 100644 --- a/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.h +++ b/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.h @@ -3,6 +3,8 @@ #include "ParseInputFile.h" #include "lattice/LatticeData.h" +enum UnitCells; + /* Lattice Type Determination */ class DetermineLatticeType @@ -12,11 +14,13 @@ private: std::vector<ErrorCodes> _errors; LatticeType _type; + UnitCells _unitcell; public: DetermineLatticeType(ParseInputFile* filedata); + UnitCells getCellType() { return _unitcell; } LatticeType getLatticeType() { return _type; } template<class T> T getLatticeData()