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: Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
8 //                    Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
9 //                    Mark A. Berrill, berrillma@ornl.gov, Oak Ridge National Laboratory
10 //
11 // File created by: Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
12 //////////////////////////////////////////////////////////////////////////////////////
13 
14 
15 #ifndef ESHDF_PARTICLE_PARSER_H
16 #define ESHDF_PARTICLE_PARSER_H
17 
18 #include "Particle/ParticleSet.h"
19 #include "OhmmsData/HDFAttribIO.h"
20 
21 class Communicate;
22 
23 namespace qmcplusplus
24 {
25 struct ESHDFElectronsParser
26 {
27   ESHDFElectronsParser(ParticleSet& aptcl, hid_t h = -1, Communicate* c = 0);
28 
29   bool put(xmlNodePtr cur);
30 
31   ParticleSet& ref_;
32   hid_t hfile_id;
33   Communicate* myComm;
34 };
35 
36 struct ESHDFIonsParser
37 {
38   ESHDFIonsParser(ParticleSet& aptcl, hid_t h = -1, Communicate* c = 0);
39 
40   bool put(xmlNodePtr cur);
41   void readESHDF();
42   //expand the ionic systems
43   void expand(Tensor<int, 3>& tilematrix);
44 
45   ParticleSet& ref_;
46   hid_t hfile_id;
47   Communicate* myComm;
48   std::string atomic_number_tag;
49   std::string charge_tag;
50   std::string mass_tag;
51 };
52 
53 } // namespace qmcplusplus
54 
55 #endif
56