QMCPACK
DriftModifierBuilder.cpp
Go to the documentation of this file.
1 //////////////////////////////////////////////////////////////////////////////////////
2 // This file is distributed under the University of Illinois/NCSA Open Source License.
3 // See LICENSE file in top directory for details.
4 //
5 // Copyright (c) 2019 QMCPACK developers.
6 //
7 // File developed by: Ye Luo, yeluo@anl.gov, Argonne National Laboratory
8 //
9 // File created by: Ye Luo, yeluo@anl.gov, Argonne National Laboratory
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 
13 #include "DriftModifierBuilder.h"
15 #include "OhmmsData/ParameterSet.h"
16 
17 namespace qmcplusplus
18 {
19 DriftModifierBase* createDriftModifier(xmlNodePtr cur, const Communicate* myComm)
20 {
21  std::string ModifierName("UNR");
22  ParameterSet m_param;
23  m_param.add(ModifierName, "drift_modifier");
24  m_param.put(cur);
25  if (ModifierName != "UNR")
26  myComm->barrier_and_abort("createDriftModifier unknown drift_modifier " + ModifierName);
27  DriftModifierBase* DriftModifier = new DriftModifierUNR;
28  return DriftModifier;
29 }
30 
31 DriftModifierBase* createDriftModifier(const std::string& drift_modifier_str, QMCTraits::RealType unr_a)
32 {
33  std::string dm_str(lowerCase(drift_modifier_str));
34  if (dm_str != "unr")
35  throw std::runtime_error("createDriftModifier unknown drift_modifier ");
36  DriftModifierBase* DriftModifier = new DriftModifierUNR(unr_a);
37  return DriftModifier;
38 }
39 
40 } // namespace qmcplusplus
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
QTBase::RealType RealType
Definition: Configuration.h:58
this class implements drift modification
bool put(std::istream &is) override
read from std::istream
Definition: ParameterSet.h:42
Wrapping information on parallelism.
Definition: Communicate.h:68
class to handle a set of parameters
Definition: ParameterSet.h:27
std::string lowerCase(const std::string_view s)
++17
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>
void barrier_and_abort(const std::string &msg) const
DriftModifierBase * createDriftModifier(xmlNodePtr cur, const Communicate *myComm)
create DriftModifier