The framework of the UPI-9 package is shown schematically in the diagram UPI.png
The first step to set-up the simulation is to specify the potential energy functions for the system under consideration. In this project, the Hydrogen-Hydrogen and Hydrogen-Carbon interactions require two separate input files for POTGEN (H2_H2.in, H2_C.in). POTGEN processes the input files and generates the potential and grid values in the .dg file, and in an intermediate .dm file.
The second step is to compute the two-atoms density matrices for Lennard-Jones, and Silvera-Goldman potentials at different temperatures using SQUARER. SQUARER accepts the output of POTGEN(.dm file) and overwrites it generating the two-atoms density matrices at different temperatures (H2_H2.dm, H2_C.dm). The name SQUARER comes from the algorithm to compute the exact two-atoms density matrix. It works by constructing a high temperature semi-classical approximation and then numerically squaring this approximation to get down to low temperature[7]. In fact, SQUARER calculates the two-atoms density matrix and its derivatives, and it tabulates the values in the .dm file. SQUARER uses a partial wave decomposition to represent the angular variables, but for output it converts to a representation in distances only. It is important to test the convergence and accuracy of the actions calculated by SQUARER, that depends mostly on how fine the grid is and accurate the partial wave expansion is. A good way to test the output of SQUARER is to use the program FKPIMC. FKPIMC reads in the output of POTGEN and computes the action at specific points using the integration of Feynman-Kacs formula[7].
The goal of OCSET is to prepare the input file (H2_C.sy) for the computing engine UPI. OCSET generates the input file with number, mass, spin of the particles, and it sets the number of Monte Carlo steps and kind of moves. In addition, it writes a file with the initial position of particles on a lattice. Because OCSET can only set-up a simulation with one species and provides initial positions of the particles only on a lattice, OCSET has not been used in this project. It has been replaced with nanotube.m that generates the initial conditions for Carbon nano-tube atoms and Hydrogen molecules.
Once the density matrices and the initial condition for the particles are ready, we can finally start the Path Integral Monte Carlo simulation with UPI. UPI is the computational engine that executes the Path Integral Monte Carlo using multi level sampling with bisection[7]. It has as input three files the .sy file for the information about particles and Monte Carlo moves, the .dm files with the two density matrices at different temperatures for two potentials, and the initial condition files for Carbons in the nano-tube(H2_C.C.ic) and Hydrogen (H2_C.H2.in). UPI outputs the results regarding the pair correlation functions(.grr file), and structure function of the system, and acceptance probability for different moves as text files (.acc file). In addition, UPI outputs a series of binary files that can be opened by post-processing software, such as REPORT that opens the binary file(.bsc file) and writes a report with the average of energies and other scalar properties.
The following UPI source codes were modified by Jaron to output useful information for plotting and analysis.
All modifications begins with:
! janor add
And ends with:
! end janor add
The output was controlled with a new input file: write_configs.input
Jaron Krogel, Stefano Markidis, and Henry Wu