47 std::string file_name;
48 std::string dataset_name;
51 attrib.
add(grid.start,
"start");
52 attrib.
add(grid.end,
"end");
53 attrib.
add(grid.num,
"num");
54 attrib.
add(file_name,
"file_name");
55 attrib.
add(dataset_name,
"dataset_name");
56 attrib.
add(pbc,
"pbc");
59 double delta = (grid.end - grid.start) / (grid.num - 1);
66 delta = (grid.end - grid.start) / (grid.num);
72 bool read_okay = hin.
open(file_name, H5F_ACC_RDONLY);
75 app_log() <<
"Failed to open HDF5 file: " << file_name <<
"." << std::endl;
79 app_log() <<
" ==============================\n" 80 <<
" Information of grid:\n" 81 <<
" Grid start: " << grid.start << std::endl
82 <<
" Grid end: " << grid.end << std::endl
83 <<
" Grid num: " << grid.num << std::endl
84 <<
" Grid delta: " << delta << std::endl
85 <<
" Grid file_name: " << file_name << std::endl
86 <<
" Grid dataset_name: " << dataset_name << std::endl
87 <<
" Periodic: " << pbc << std::endl
88 <<
" ==============================\n";
91 hin.
read(data, dataset_name);
93 spline_data_.reset(create_UBspline_3d_d(grid, grid, grid, BC, BC, BC, data.
data()), destroy_Bspline);
101 os <<
"External grid potential" << std::endl;
108 return std::make_unique<GridExternalPotential>(*this);
114 #if !defined(REMOVE_TRACEMANAGER) 126 eval_UBspline_3d_d(
spline_data_.get(), r[0], r[1], r[2], &val);
130 #if !defined(REMOVE_TRACEMANAGER) 141 #if !defined(REMOVE_TRACEMANAGER) Return_t evaluate_sp(ParticleSet &P)
bool streaming_particles_
GridExternalPotential(ParticleSet &P)
bool open(const std::filesystem::path &fname, unsigned flags=H5F_ACC_RDWR)
open a file
helper functions for EinsplineSetBuilder
bool streaming_array(const std::string &name)
QTBase::RealType RealType
Return_t evaluate(ParticleSet &P) override
Evaluate the local energy contribution of this component.
size_t getTotalNum() const
Array< TraceReal, 1 > * v_sample_
single particle trace sample array
bool get(std::ostream &os) const override
write about the class
bool put(xmlNodePtr cur)
assign attributes to the set
void deleteParticleQuantities() override
TraceRequest request_
whether traces are being collected
std::string name_
name of this object
Specialized paritlce class for atomistic simulations.
class to handle a set of attributes of an xmlNode
void oneBodyQuantumDomain(const ParticleSet &P)
set quantum domain for one-body operator
void setEnergyDomain(EnergyDomains edomain)
Set the Energy Domain.
std::unique_ptr< OperatorBase > makeClone(ParticleSet &P, TrialWaveFunction &psi) final
void checkoutParticleQuantities(TraceManager &tm) override
Array< TraceReal, D > * checkout_real(const std::string &name, int n1=1, int n2=0, int n3=0, int n4=0)
FullPrecRealType Return_t
type of return value of evaluate
MakeReturn< UnaryNode< FnSqrt, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sqrt(const Vector< T1, C1 > &l)
bool put(xmlNodePtr cur) override
Read the input parameter.
Class to represent a many-body trial wave function.
Return_t value_
current value
void contribute_array(const std::string &name, bool default_quantity=false)
const auto & getLattice() const
Tensor< typename BinaryReturn< T1, T2, OpMultiply >::Type_t, D > dot(const AntiSymTensor< T1, D > &lhs, const AntiSymTensor< T2, D > &rhs)
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 ...
void contributeParticleQuantities() override
std::shared_ptr< UBspline_3d_d > spline_data_
void add(PDT &aparam, const std::string &aname, std::vector< PDT > candidate_values={}, TagStatus status=TagStatus::OPTIONAL)
add a new attribute