Loading...
Searching...
No Matches
q3::internal Namespace Reference

Namespaces

namespace  dense_matrix
 
namespace  dense_matrix_product
 
namespace  interpolation_checkpoint
 
namespace  interpolation_stream
 
namespace  wannier90_format
 
namespace  wannier_payload
 

Functions

WannierInputs build_wannier_interface_record (const InterpolationSpecification &specification, PlanewavePseudopotentialKohnShamSCFIterator &iterator, int number_of_bands)
 The Wannier method's record: interface matrices on the full k-grid.
 
template<typename ValueType >
std::vector< ValueType > read_array (std::istream &stream)
 
template<typename ValueType >
ValueType read_scalar (std::istream &stream)
 
Vector3D read_vector3d (std::istream &stream)
 
void record_lattice (const Crystal &crystal_structure, InterpolationRecord &record)
 The crystal's lattice in the record's units: Cartesian bohr, and inverse bohr with the 2 pi.
 
template<typename ValueType >
void write_array (std::ostream &stream, const std::vector< ValueType > &values)
 Length-prefixed array of trivially copyable values.
 
template<typename ValueType >
void write_scalar (std::ostream &stream, const ValueType &value)
 
void write_vector3d (std::ostream &stream, const Vector3D &vector)
 

Variables

constexpr uint32_t mean_field_record_magic = 0x464D3351
 
constexpr uint32_t mean_field_record_version = 1
 

Function Documentation

◆ build_wannier_interface_record()

WannierInputs q3::internal::build_wannier_interface_record ( const InterpolationSpecification &  specification,
PlanewavePseudopotentialKohnShamSCFIterator &  iterator,
int  number_of_bands 
)
inline

The Wannier method's record: interface matrices on the full k-grid.

Without a range the model is built from the lowest bands, which is what an isolated valence manifold needs. With one, the range says where the manifold starts – semicore states from the pseudopotential sit below it – and how many bands it holds.

The augmentation tables and the electronic state are in two different objects, and the snapshot is the one to ask. iterator.quantum_system() returns a by-value member declared as the base PlanewaveKohnShamQuantumSystem, so its dynamic type is always exactly that and a cast of it can never succeed, for any dataset. The ultrasoft ITERATOR's snapshot is the augmentation-aware quantum system.

The snapshot carries the pseudopotential data but only the electronic state of its last refresh, and the builder reads wavefunctions, eigenvalues and the Fermi energy out of the same object it reads ultrasoft_basis() from, so refresh it first.

Definition at line 75 of file capture.hpp.

References q3::InterpolationSpecification::bands, q3::PlanewaveWannierCapture::build(), q3::PlanewaveWannierCapture::build_ultrasoft(), q3::create_planewave_local_orbital_set(), q3::KohnShamSCFIterator::crystal_structure(), q3::PlanewaveKohnShamSCFIterator::execution_policy(), q3::InterpolationSpecification::first_band_index(), q3::PlanewaveKohnShamSCFIterator::g_vector_indices(), q3::InterpolationSpecification::grid, q3::PseudopotentialSet::has_augmentation_charges(), q3::InterpolationSpecification::has_band_selection(), q3::log::info(), q3::PlanewaveKohnShamSCFIterator::kpoint_grid(), q3::PlanewavePseudopotentialKohnShamSCFIterator::norm_conserving_quantum_system(), q3::KPointsGrid::number_of_kpoints(), q3::InterpolationSpecification::number_of_selected_bands(), q3::PlanewaveKohnShamSCFIterator::planewave_basis(), q3::InterpolationSpecification::projection_centers, q3::InterpolationSpecification::projection_decay_bohr, q3::PlanewavePseudopotentialKohnShamSCFIterator::pseudopotential_set(), q3::PlanewaveKohnShamSCFIterator::quantum_system(), q3::PlanewavePseudopotentialKohnShamSCFIterator::refresh_quantum_system_snapshot(), and q3::InterpolationSpecification::trial_shells.

Referenced by q3::capture_interpolation_record().

◆ read_array()

template<typename ValueType >
std::vector< ValueType > q3::internal::read_array ( std::istream &  stream)

Definition at line 83 of file checkpoint.hpp.

◆ read_scalar()

template<typename ValueType >
ValueType q3::internal::read_scalar ( std::istream &  stream)

Definition at line 53 of file checkpoint.hpp.

◆ read_vector3d()

Vector3D q3::internal::read_vector3d ( std::istream &  stream)
inline

Definition at line 65 of file checkpoint.hpp.

References q3::Vector3D::x, q3::Vector3D::y, and q3::Vector3D::z.

◆ record_lattice()

void q3::internal::record_lattice ( const Crystal &  crystal_structure,
InterpolationRecord &  record 
)
inline

◆ write_array()

template<typename ValueType >
void q3::internal::write_array ( std::ostream &  stream,
const std::vector< ValueType > &  values 
)

Length-prefixed array of trivially copyable values.

Definition at line 75 of file checkpoint.hpp.

◆ write_scalar()

template<typename ValueType >
void q3::internal::write_scalar ( std::ostream &  stream,
const ValueType &  value 
)

Definition at line 49 of file checkpoint.hpp.

◆ write_vector3d()

void q3::internal::write_vector3d ( std::ostream &  stream,
const Vector3D &  vector 
)
inline

Definition at line 59 of file checkpoint.hpp.

References q3::Vector3D::x, q3::Vector3D::y, and q3::Vector3D::z.

Variable Documentation

◆ mean_field_record_magic

constexpr uint32_t q3::internal::mean_field_record_magic = 0x464D3351
constexpr

Definition at line 46 of file checkpoint.hpp.

◆ mean_field_record_version

constexpr uint32_t q3::internal::mean_field_record_version = 1
constexpr

Definition at line 47 of file checkpoint.hpp.