34 paramTag(
"parameters"),
37 pwMultTag(
"multipliers"),
38 eigTag(
"eigenstates"),
42 eigvecTag(
"eigenvector")
62 if (Ecut < 0 || Ecut >= ecut)
72 std::ostringstream oss;
77 oss <<
"/eigenvector";
79 hid_t dataset = H5Dopen(h, oss.str().c_str(), H5P_DEFAULT);
80 hid_t dataspace = H5Dget_space(dataset);
81 rank = H5Sget_simple_extent_ndims(dataspace);
82 int status_n = H5Sget_simple_extent_dims(dataspace, dimTot, NULL);
96 std::ostringstream oss;
97 oss <<
paramTag <<
"/complex_coefficients";
98 h_file.
read(iscomplex, oss.str());
107 std::ostringstream oss;
116 std::ostringstream oss;
123 std::ostringstream oss;
124 oss <<
"spin_" << ispin <<
"/" 131 std::ostringstream oss;
132 oss << hg <<
"/" <<
bandTag << ib;
136 oss <<
"/" <<
spinTag << ispin;
138 oss <<
"/eigenvector";
144 std::ostringstream oss;
145 oss << hg <<
"/" <<
bandTag << ib <<
"/center";
151 std::ostringstream oss;
152 oss << hg <<
"/" <<
bandTag << ib <<
"/origin";
158 std::ostringstream oss;
163 oss <<
"/" <<
spinTag << ispin;
165 oss <<
"/eigenvector";
171 std::ostringstream oss;
178 std::ostringstream oss;
187 hid_t dataset = H5Dopen(h.
getFileID(),
"version", H5P_DEFAULT);
188 hid_t datatype = H5Dget_type(dataset);
189 H5T_class_t classtype = H5Tget_class(datatype);
192 if (classtype == H5T_INTEGER)
196 else if (classtype == H5T_FLOAT)
199 h.
read(vt,
"version");
200 version[0] =
static_cast<int>(vt[0]);
201 version[1] =
static_cast<int>(vt[1]);
205 APP_ABORT(
"PWParameterSet::checkVersion The type of version is not integer or double.");
217 pwTag =
"planewaves";
std::string eigTag
tag for eigentstates
std::string bandTag
tag for the band
ParameterSet m_param
xml processor
Base class for any object which needs to know about a MPI communicator.
helper functions for EinsplineSetBuilder
hid_t getFileID() const
return file_id. should be only be used for connecting to old codes when porting
std::string basisTag
tag for the basis
std::string pwTag
tag for the planewaves
std::string getTwistAngleName()
PWParameterSet(Communicate *comm)
TinyVector< int, OHMMS_DIM > BoxDup
cell multiplications
void setName(const std::string &aname)
set name
int twistIndex
index of the twist angle
std::string getCenterName(const std::string &hg, int ib)
double BufferRadius
radius of buffer layer for truncated orbitals
std::string getEigVectorName(const std::string &hg, int ib, int ispin)
double getEcut(double ecut)
std::string pwMultTag
tag for the multipliers of the planewaves
Wrapping information on parallelism.
std::string getOriginName(const std::string &hg, int ib)
double Ecut
energy cutoff for QMC wavefunction
std::string getBandName(int ib, int ispin)
bool getEigVectorType(hid_t h)
get the dimensions of the eigenvectors
Communicate * myComm
pointer to Communicate
double Rcut
cutoff radius for truncated orbitals
#define APP_ABORT(msg)
Widely used but deprecated fatal error macros from legacy code.
TinyVector< int, 2 > version
version
void add(PDT &aparam, const std::string &aname_in, std::vector< PDT > candidate_values={}, TagStatus status=TagStatus::OPTIONAL)
add a new parameter corresponding to an xmlNode <parameter>
std::string spinTag
tag for the spin
std::string paramTag
tag for the parameters
void checkVersion(hdf_archive &h)
bool is_manager() const
return true if the rank == 0
void read(T &data, const std::string &aname)
read the data from the group aname and check status runtime error is issued on I/O error ...
bool hasSpin
true if spin channel exists
int rank() const
return the rank of the communicator
std::string eigvecTag
tag for eigvector
std::string getTwistName()
std::string twistTag
tag for twist angles
bool hasComplexData(hdf_archive &h)
std::string getSpinName(int ispin)