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