Saputantri, Kushan (2008) Improving the two-electron integral computation in MUNgauss. Masters thesis, Memorial University of Newfoundland.
- Accepted Version
Available under License - The author retains copyright ownership and moral rights in this thesis. Neither the thesis nor substantial extracts from it may be printed or otherwise reproduced without the author's permission.
A major step in the self consistent field method is assembling and diagonalizing the Fock matrix. In order to form the Fock matrix, one-electron integrals, overlap integrals, and two-electron integrals must be computed. Computation of the two-electron integrals is the most time consuming and computationally difficult among them. The focus of this research is to improve the two-electron integral computation code in MUNgauss. -- Improved the two-electron integral computation code by introducing new Fortran 90/95 features, where applicable. Specialized subroutines were introduced to replace general two-electron computation subroutine I2ER_SPDF, in order to compute less complicated two-electron integrals. Parallel implementation of subroutine I2ER_SPDF was also investigated. -- The two-electron integral code was improved by using Fortran 90 modules to improve readability, efficiency, and organization. Derived types, "select case", and "do" constructs were introduced to improve readability. The introduction of dynamic memory allocation reduced the usage of memory and improved the code efficiency. -- Subroutine I2ER_SPDF can be specialized by identifying the shell (s,p,d,f) quadruplets before calling the subroutine to compute the two-electron integrals. Specialize4l subroutines were introduced to compute two-electron integrals belonging to the ssss quadruplet to dddd quadruplet. Introduction of specialized subroutines to compute simpler types of integrals reduces the memory usage and reduces the time spent on two-electron integral computations. -- Two-electron integrals are labeled using indices I, J, K, and L. For a given set of indices I, J, K, and L, there are three unique blocks of two-electron integrals. They are: IJKL, ILJK and IKJL. Three mutually independent blocks, IJKL, ILJK and IK.IL were computed in parallel using three processors on the same node. Shared memory parallel computing with OpenMP was used for this purpose. -- Results of the improved code and old code were compared for accuracy as well as time spent on computation using SGI Altix(Verdandi) housed at Memorial University.
|Item Type:||Thesis (Masters)|
|Additional Information:||Includes bibliographical references (leaves 70-71)|
|Department(s):||Science, Faculty of > Computer Science|
|Library of Congress Subject Heading:||Integral equations--Data processing; Schrodinger equation--Data processing; Self-consistent field theory|
Actions (login required)