Recent site activity

How-to guides‎ > ‎

Complete input file

Main input file 

This is a sample input file for a typical workflow (e.g., electronic structure calculations) that can be executed as a single run.
  • optimization : possibly with multiple loops with different optimization options
  • vmc-(dmc)-dmc : main DMC, vmc and optional dmc is used to accelerate main DMC run
In practice, breaking up the workflow into two stages, optimization and  DMC, is recommened.

The include sections are common but make sure to replace wfs.xml with the optimized trial wavefunction. 
Each optimization iteration generates a wavefunction file (*.s###.opt.xml ) and the subsequent DMC run should use the *best* wavefunction.

<?xml version="1.0"?>
<simulation>
  <project id="myproject" series="0"/>
  <randmo seed="-1"/>        <!-- time-based parallel random seeds -->
  <include href="ptcl.xml"/> <!-- define particlesets: ions and e -->
  <include href="wfs.xml"/>  <!-- define trial wavefunction -->
  <include href="ham.xml"/>  <!-- define hamiltonian -->
  <!-- optimize : 4 iterations, using 24000 samples per iteration -->
  <loop max="4">
    <qmc method="linear" move="pbyp" checkpoint="-1" gpu="no">
      <!-- Set vmc parameters -->      
      <estimator name="LocalEnergy" hdf5="no"/>
      <parameter name="blocks">     5  </parameter>
      <parameter name="warmupsteps"> 10 </parameter>
      <parameter name="timestep">  2.00 </parameter>
      <parameter name="useDrift">  yes </parameter>
      <!-- Set the samples used during optimization -->
      <parameter name="samples">  24000 </parameter>
      <parameter name="stepsbetweensamples">    10 </parameter>
      <!-- Cost function to optimize, primarily variance -->     
      <cost name="energy">                   0.05 </cost>
      <cost name="unreweightedvariance">     0.0 </cost>
      <cost name="reweightedvariance">       0.95 </cost>
      <!-- Parameters used by optimization -->      
      <parameter name="minwalkers">  0.5 </parameter>
      <parameter name="maxWeight">    1e9 </parameter>
      <parameter name="MinMethod">rescale</parameter>
      <parameter name="GEVMethod">mixed</parameter>
      <parameter name="beta">  0.05  </parameter>
      <parameter name="exp0"> -6 </parameter>
      <parameter name="bigchange">1.1</parameter>
      <parameter name="alloweddifference"> 1.0e-8 </parameter>
      <parameter name="stepsize">5.0e-1</parameter>
      <parameter name="stabilizerscale">  0.5 </parameter>
      <parameter name="nstabilizers"> 10 </parameter>
      <parameter name="max_its"> 1 </parameter>
      <parameter name="cgsteps"> 3 </parameter>     
      <parameter name="eigcg">   1 </parameter>
    </qmc>
  </loop>
  <!-- VMC to generate 8000 samples for following DMCs
       checkpoint="-1" : nothing is saved in *.config.h5
    -->
  <qmc method="vmc" checkpoint="-1" move="pbyp" gpu="yes">
    <estimator name="LocalEnergy" hdf5="no"/>
    <parameter name="useDrift">yes</parameter>                                               
    <parameter name="blocks">100</parameter>
    <parameter name="steps">10</parameter>
    <parameter name="samples">8000</parameter>
    <parameter name="warmupsteps">10</parameter>
    <parameter name="timestep">2.0</parameter>
  </qmc>
  <!-- Warmup DMC with a large timestep=0.05 -->
  <qmc method="dmc" checkpoint="100" move="pbyp" gpu="yes">
    <estimator name="LocalEnergy" hdf5="no"/>
    <parameter name="nonlocalmoves"> yes </parameter>
    <parameter name="blocks">2</parameter>
    <parameter name="steps">25</parameter>
    <parameter name="warmupsteps">25</parameter>
    <parameter name="timestep">5.e-2</parameter>
  </qmc>
  <!-- Main DMC with timestep=0.02 -->
  <qmc method="dmc" checkpoint="100"  move="pbyp" gpu="yes">
    <estimator name="LocalEnergy" hdf5="no"/>
    <parameter name="nonlocalmoves"> yes </parameter>
    <parameter name="warmupsteps">100</parameter>
    <parameter name="blocks">1000</parameter>
    <parameter name="steps">10</parameter>
    <parameter name="timestep">0.02</parameter>
  </qmc>
</simulation>

Particle set file

ptcl.xml is a graphite example and has

<?xml version="1.0"?>
<qmcsystem>
  <simulationcell name="global">
    <parameter name="lattice" units="bohr">
    4.650993958258145    0.000000000000000    0.000000000000000
   -2.325496979129072    4.027878920699780    0.000000000000000
    0.000000000000000    0.000000000000000   12.676093926783608
    </parameter>
    <parameter name="bconds"> p p p </parameter>
    <parameter name="LR_dim_cutoff"> 15 </parameter>
  </simulationcell>
  <particleset name="ion0" size="4">
    <group name="C">
      <parameter name="charge"> 4.00000000000000     </parameter>
    </group>
    <attrib name="ionid" datatype="stringArray"> C C C C </attrib>
    <attrib name="position" datatype="posArray" condition="0">
    0.000000000000000    0.000000000000000    0.000000000000000
   -0.000000000002325    2.685252613801196    0.000000000000000
    0.000000000000000    0.000000000000000    6.338046963391803
    2.325496979131398    1.342626306898584    6.338046963391803
    </attrib>
  </particleset>
  <particleset name="e" random="yes" random_source="ion0">
    <group name="u" size="8">
      <parameter name="charge"> -1 </parameter>
    </group>
    <group name="d" size="8">
      <parameter name="charge"> -1 </parameter>
    </group>
  </particleset>
</qmcsystem>

Trial wavefunction file

wfs.xml is generally applicable to the solid-state calculations with the single-particle orbitals generated by Plane-Wave code and has

<?xml version="1.0"?>
<qmcsystem>
  <wavefunction name="psi0" target="e">
    <determinantset type="bspline" href="lda.pwscf.h5" sort="1" tilematrix="1 0 0 0 1 0 0 0 1" 
     twistnum="0" source="ion0" version="0.10" gpu="yes">
      <slaterdeterminant>
        <determinant id="updet" size="8">
          <occupation mode="ground" spindataset="0"/>
        </determinant>
        <determinant id="downdet" size="8">
          <occupation mode="ground" spindataset="0"/>
        </determinant>
      </slaterdeterminant>
    </determinantset>
    <jastrow name="J2" type="Two-Body" function="Bspline" print="yes">
      <correlation speciesA="u" speciesB="u" size="8">
        <coefficients id="uu" type="Array"> 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 </coefficients>
      </correlation>
      <correlation speciesA="u" speciesB="d" size="8">
        <coefficients id="ud" type="Array">
          0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 </coefficients> 
      </correlation>
    </jastrow>
    <jastrow name="J1" type="One-Body" function="Bspline" source="ion0" print="yes">
      <correlation elementType="C" size="8">
        <coefficients id="eC" type="Array">
          0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 </coefficients>
      </correlation>
    </jastrow>
  </wavefunction>
</qmcsystem>

Hamiltonian file

hamiltonian.xml is for the pseudopotential (Carbon this case) and can be used with any trial wavefunction and has

<?xml version="1.0"?>
<!-- paripot@type=(coulomb, pseudo) -->
<qmcsystem>
  <hamiltonian name="h0" type="generic" target="e">
    <pairpot name="ElecElec" type="coulomb" source="e" target="e"/>
    <pairpot name="IonIon" type="coulomb" source="ion0" target="ion0"/>
    <pairpot type="pseudo" name="PseudoPot" source="ion0" wavefunction="psi0" format="xml">
      <pseudo elementType="C" href="C.BFD.xml" format="xml"/>
    </pairpot>
  </hamiltonian>
</qmcsystem>