This commit is contained in:
陈浩南 2023-09-27 20:35:53 +08:00
parent 0a299493c7
commit 6e741ee944
3 changed files with 8 additions and 5 deletions

View File

@ -30,8 +30,12 @@ namespace Eigen
{
constexpr inline auto serialize(auto & archive, Eigen::Matrix3d& matrix)
{ return archive(std::span(matrix.data(), matrix.size())); }
constexpr inline auto serialize(auto & archive, const Eigen::Matrix3d& matrix)
{ return archive(std::span(matrix.data(), matrix.size())); }
constexpr inline auto serialize(auto & archive, Eigen::Vector3d& vector)
{ return archive(std::span(vector.data(), vector.size())); }
constexpr inline auto serialize(auto & archive, const Eigen::Vector3d& vector)
{ return archive(std::span(vector.data(), vector.size())); }
}
// 在相位中, 约定为使用 $\exp (2 \pi i \vec{q} \cdot \vec{r})$ 来表示原子的运动状态
@ -138,7 +142,7 @@ struct Output
};
std::vector<QPointDataType_> QPointData;
void write(std::string filename, std::string format, unsigned percision = 10);
void write(std::string filename, std::string format, unsigned percision = 10) const;
Output() = default;
Output(std::string filename);

View File

@ -102,7 +102,6 @@ inline Input::Input(std::string filename)
QPointData.resize(phonon.size());
for (unsigned i = 0; i < phonon.size(); i++)
{
QPointData[i].QPoint.resize(3);
for (unsigned j = 0; j < 3; j++)
QPointData[i].QPoint(j) = phonon[i]["q-position"][j].as<double>();
auto band = phonon[i]["band"].as<std::vector<YAML::Node>>();
@ -158,7 +157,7 @@ inline Input::Input(std::string filename)
}
}
inline void Output::write(std::string filename, std::string format, unsigned percision)
inline void Output::write(std::string filename, std::string format, unsigned percision) const
{
if (format == "yaml")
std::ofstream(filename) << [&]
@ -230,7 +229,7 @@ inline void Output::write(std::string filename, std::string format, unsigned per
static_assert(sizeof(char) == sizeof(std::byte));
std::ofstream file(filename, std::ios::binary | std::ios::out);
file.exceptions(std::ios::badbit | std::ios::failbit);
file.write(reinterpret_cast<char*>(data.data()), data.size());
file.write(reinterpret_cast<const char*>(data.data()), data.size());
}
}

View File

@ -7,6 +7,6 @@ PrimativeCellBasisNumber: [ 8, 8, 8 ]
AtomPositionInputFile: { FileName: "/home/chn/Documents/lammps-SiC/14/14.2/14.2.2/14.2.2.4/band.yaml", Format: "yaml" }
QPointDataInputFile: { FileName: "/home/chn/Documents/lammps-SiC/14/14.2/14.2.2/14.2.2.4/band.yaml", Format: "yaml" }
QPointDataOutputFile:
- { FileName: "test/14.2.2.result.yaml", Format: "yaml-human-readable" }
- { FileName: "test/14.2.2.result.yaml", Format: "yaml" }
- { FileName: "test/14.2.2.result.human-readable.yaml", Format: "yaml-human-readable" }
- { FileName: "test/14.2.2.result.zpp", Format: "zpp" }