QMCPACK
RMCFactory.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) 2016 Jeongnim Kim and QMCPACK developers.
6 //
7 // File developed by: Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
8 // Raymond Clay III, j.k.rofling@gmail.com, Lawrence Livermore National Laboratory
9 //
10 // File created by: Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
11 //////////////////////////////////////////////////////////////////////////////////////
12 
13 
14 #include "RMCFactory.h"
15 #include "QMCDrivers/RMC/RMC.h"
16 #include "Concurrency/OpenMP.h"
17 
18 namespace qmcplusplus
19 {
20 std::unique_ptr<QMCDriver> RMCFactory::create(const ProjectData& project_data,
22  TrialWaveFunction& psi,
23  QMCHamiltonian& h,
25 {
26  std::unique_ptr<QMCDriver> qmc;
27 
28  if (RMCMode == 0 || RMCMode == 1) //(0,0,0) (0,0,1) pbyp and all electron
29  {
30  qmc = std::make_unique<RMC>(project_data, w, psi, h, comm);
31  }
32  qmc->setUpdateMode(RMCMode & 1);
33  return qmc;
34 }
35 } // namespace qmcplusplus
A set of walkers that are to be advanced by Metropolis Monte Carlo.
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
class ProjectData
Definition: ProjectData.h:36
Collection of Local Energy Operators.
Wrapping information on parallelism.
Definition: Communicate.h:68
std::unique_ptr< QMCDriver > create(const ProjectData &project_data, MCWalkerConfiguration &w, TrialWaveFunction &psi, QMCHamiltonian &h, Communicate *comm)
Definition: RMCFactory.cpp:20
Class to represent a many-body trial wave function.