|
Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
|
Writes the records BerkeleyGW's files share; see the file comment. More...
#include <record_writer.hpp>
Public Member Functions | |
| BerkeleyGWRecordWriter (const MeanFieldRecord &&)=delete | |
| See the file writers' own deleted rvalue constructors: this holds a reference. | |
| BerkeleyGWRecordWriter (const MeanFieldRecord &record) | |
| void | write_charge_density_gvectors (std::ofstream &output_file) const |
| [nrecord=1][ng][gvec(3,ng)] – the charge-density G-set, in the record's order. | |
| void | write_complex_block (std::ofstream &output_file, int32_t count, const Complex *values, size_t number_of_values) const |
[nrecord=1][count][values] – one data block of count complex values per spin. | |
| void | write_kpoint_coordinates (std::ofstream &output_file) const |
| void | write_kpoint_gvectors (std::ofstream &output_file, int kpoint_index) const |
| [nrecord=1][ngk][gvec_k(3,ngk)] – the plane waves of one k-point, in the record's order. | |
| void | write_normalized_kpoint_weights (std::ofstream &output_file) const |
| void | write_plane_wave_counts (std::ofstream &output_file) const |
| ngk(nk) – plane waves per k-point. | |
Writes the records BerkeleyGW's files share; see the file comment.
Definition at line 28 of file record_writer.hpp.
|
inlineexplicit |
Definition at line 30 of file record_writer.hpp.
|
explicitdelete |
See the file writers' own deleted rvalue constructors: this holds a reference.
|
inline |
[nrecord=1][ng][gvec(3,ng)] – the charge-density G-set, in the record's order.
Definition at line 35 of file record_writer.hpp.
References q3::MeanFieldRecord::charge_density_miller_indices.
Referenced by q3::BerkeleyGWFieldFile::write(), q3::BerkeleyGWKleinmanBylanderProjectorFile::write_to_file(), and q3::BerkeleyGWWavefunctionFile::write_to_file().
|
inline |
[nrecord=1][count][values] – one data block of count complex values per spin.
Definition at line 129 of file record_writer.hpp.
Referenced by q3::BerkeleyGWFieldFile::write().
|
inline |
kpt(3,nk), crystal coordinates. Q3 holds k-points in crystal coordinates throughout (kpoint.hpp), so unlike the converter, which converts from Cartesian, nothing is transformed here.
Definition at line 95 of file record_writer.hpp.
References q3::MeanFieldRecord::kpoint_coordinates, q3::QEBinaryRecordFormat::write_record(), q3::Vector3D::x, q3::Vector3D::y, and q3::Vector3D::z.
Referenced by q3::BerkeleyGWKleinmanBylanderProjectorFile::write_to_file(), and q3::BerkeleyGWWavefunctionFile::write_to_file().
|
inline |
[nrecord=1][ngk][gvec_k(3,ngk)] – the plane waves of one k-point, in the record's order.
Definition at line 110 of file record_writer.hpp.
References q3::MeanFieldRecord::charge_density_miller_indices, q3::MeanFieldRecord::kpoint_g_vector_indices, and q3::MeanFieldRecord::plane_waves_per_kpoint.
|
inline |
kw(nk), normalized so sum(kw) = 1 as BerkeleyGW requires.
The converter gets there by writing the k-point weight times the number of spin components over 2, which leans on the invariant that the weights sum to 2. Q3's generated grids share that invariant (KPointsGrid::scale_weights()), but an explicit control.kpoints_list reaches here from the input verbatim – and a list written on BerkeleyGW's own sum-to-1 convention, the natural choice for the NSCF run BerkeleyGW is fed from, would land on disk as sum(kw) = 0.5. So the weights are divided by their actual sum: identical whenever the invariant holds, correct when it does not.
Definition at line 71 of file record_writer.hpp.
References q3::MeanFieldRecord::kpoint_weights, and q3::QEBinaryRecordFormat::write_record().
Referenced by q3::BerkeleyGWKleinmanBylanderProjectorFile::write_to_file(), and q3::BerkeleyGWWavefunctionFile::write_to_file().
|
inline |
ngk(nk) – plane waves per k-point.
Definition at line 51 of file record_writer.hpp.
References q3::MeanFieldRecord::plane_waves_per_kpoint, and q3::QEBinaryRecordFormat::write_record().
Referenced by q3::BerkeleyGWKleinmanBylanderProjectorFile::write_to_file(), and q3::BerkeleyGWWavefunctionFile::write_to_file().