• CONTACT
  • LAST ISSUE
  • IN PROGRESS
  • EARLY VIEW
  • ACCEPTED PAPERS
GET_pdf

Volume 21 (4) 2015, 181-189

Developing of Scientific Software Applications in Python. I. Transformation of Hubbard Hamiltonian into the Matrix and its Diagonalization

Herok Łukasz 1, Szczęśniak Radosław 1,2, Durajski Artur 2*

1 Institute of Physics, Jan Długosz University
Al. Armii Krajowej 13/15, 42-200 Częstochowa, Poland

2 Institute of Physics, Częstochowa University of Technology
Al. Armii Krajowej 19, 42-200 Częstochowa, Poland
*E-mail: adurajski@wip.pcz.pl

Received:

Received: 28 April 2015; revised: 06 September 2015; accepted: 07 September 2015; published online: 06 November 2015

DOI:   10.12921/cmst.2015.21.04.002

Abstract:

In order to perform larger scale physics research in the area of superconductivity, we have developed an application that can transform the Hubbard Hamiltonian into a matrix and diagonalize it to find the selected model’s energy spectrum. For that purpose we have used the Python language and its wide ecosystem. This paper proves that selected tools are capable of creating scientific applications in a general sense. After a short introduction into the physics problem and the designed algorithm we will present the computer science problems and their solutions in creating usual scientific programs, in particular: performance and parallelization issues, storage of input data and the results, bottlenecks detections, as well as optimization and testing. The most interesting examples of the developing cycle will be described to give a prepared solution for implementing the other scientific software.

Key words:

hamiltonian matrix, Python, scipy, sparse matrix

References:

[1] T.E. Oliphant, Python for Scientific Computing, Computing in
Science & Engineering 9, 10-20 (2007).
[2] D.M. Beazley, P.S. Lomdahl, Extensible Message Passing
Application Development and Debugging with Python, Proceedings
11th International Parallel Processing Symposium,
650-655 (1997).
[3] J. Spałek, Wst˛ep do fizyki materii skondensowanej, Wydawnictwo
Naukowe PWN, Warszawa 2015.
[4] H. Fangohr, Python for Computational Science and Engineering,
Faculty of Engineering and the Environment University
of Southampton, Southampton 2014.
[5] Python Software Foundation, Python Documentation,
https://docs.python.org, 2015.
[6] D.M. Beazley, Scientific Computing with Python, Astronomical
Data Analysis Software and Systems IX ASP Conference
Series 216, San Francisco 2000.
[7] D.M. Beazley, P.S. Lomdahl, Building Flexible Large-Scale
Scientific Computing Applications with Scripting Languages,
8th SIAM Conference on Parallel Processing for Scientific
Computing, Minnesota 1997.
[8] X. Cai, H. P. Langtangen, H. Moe, On the Performance of
the Python Programming Language for Serial and Parallel
Scientific Computations, Scientific Programming 13, 31-56
(2005).
[9] R.B. Lehoucq, D.C. Sorensen, C.Yang, ARPACK Users’
Guide: Solution of Large-Scale Eigenvalue Problems with
Implicitly Restarted Arnoldi Methods, University of Leeds,
1997.
[10] S. Behnel, R. Bradshaw, C. Citro, L. Dalcin, D. S. Seljebotn,
K. Smith, Cython: The Best of Both Worlds, Computing in
Science and Engineering 13, 31-39 (2011).
[11] A. S. Szalay, J. A. Blakeley, Gray’s laws: database-centric
computing in science, [in:] T. Hey (ed.), S. Tansley (ed.), K.
Tolle (ed.), The Fourth Paradigm: Data-Intensive Scientific
Discovery, Redmond, p. 5-11, 2009.
[12] P. Buneman, Why Don’t Scientists Use Databases?, Microsoft
PowerPoint Presentation to National e-Science Centre, (2002).
[13] A. Noreen, K. Olaussen, A Python Class for Higher-Dimensional
Schroedinger Equations, arXiv:1503.04607
[physics.comp-ph], (2015).
[14] M.R B. Kristensen, B. Vinter, Numerical Python for scalable
architectures, Proceedings of the Fourth Conference on Partitioned
Global Address Space Programming Model, New York,
art. 15 2010.
[15] J.K. Nilsen, X. Cai, B. Høyland, H. P. Langtangen, Simplifying
the parallelization of scientific codes by a function-centric
approach in Python, Computational Science & Discovery 3,
(2010).

  • JOURNAL MENU

    • AIMS AND SCOPE
    • EDITORS
    • EDITORIAL BOARD
    • NOTES FOR AUTHORS
    • CONTACT
    • IAN SNOOK PRIZES 2015
    • IAN SNOOK PRIZES 2016
    • IAN SNOOK PRIZES 2017
    • IAN SNOOK PRIZES 2018
    • IAN SNOOK PRIZES 2019
    • IAN SNOOK PRIZES 2020
    • IAN SNOOK PRIZES 2021
    • IAN SNOOK PRIZES 2024
  • GALLERY

    CMST_vol_24_1_2018_okladka_
  • LAST ISSUE

  • MANUSCRIPT SUBMISSION

    • SUBMIT A MANUSCRIPT
  • FUTURE ISSUES

    • ACCEPTED PAPERS
    • EARLY VIEW
    • Volume 31 (1) – in progress
  • ALL ISSUES

    • 2024
      • Volume 30 (3–4)
      • Volume 30 (1–2)
    • 2023
      • Volume 29 (1–4)
    • 2022
      • Volume 28 (4)
      • Volume 28 (3)
      • Volume 28 (2)
      • Volume 28 (1)
    • 2021
      • Volume 27 (4)
      • Volume 27 (3)
      • Volume 27 (2)
      • Volume 27 (1)
    • 2020
      • Volume 26 (4)
      • Volume 26 (3)
      • Volume 26 (2)
      • Volume 26 (1)
    • 2019
      • Volume 25 (4)
      • Volume 25 (3)
      • Volume 25 (2)
      • Volume 25 (1)
    • 2018
      • Volume 24 (4)
      • Volume 24 (3)
      • Volume 24 (2)
      • Volume 24 (1)
    • 2017
      • Volume 23 (4)
      • Volume 23 (3)
      • Volume 23 (2)
      • Volume 23 (1)
    • 2016
      • Volume 22 (4)
      • Volume 22 (3)
      • Volume 22 (2)
      • Volume 22 (1)
    • 2015
      • Volume 21 (4)
      • Volume 21 (3)
      • Volume 21 (2)
      • Volume 21 (1)
    • 2014
      • Volume 20 (4)
      • Volume 20 (3)
      • Volume 20 (2)
      • Volume 20 (1)
    • 2013
      • Volume 19 (4)
      • Volume 19 (3)
      • Volume 19 (2)
      • Volume 19 (1)
    • 2012
      • Volume 18 (2)
      • Volume 18 (1)
    • 2011
      • Volume 17 (1-2)
    • 2010
      • Volume SI (2)
      • Volume SI (1)
      • Volume 16 (2)
      • Volume 16 (1)
    • 2009
      • Volume 15 (2)
      • Volume 15 (1)
    • 2008
      • Volume 14 (2)
      • Volume 14 (1)
    • 2007
      • Volume 13 (2)
      • Volume 13 (1)
    • 2006
      • Volume SI (1)
      • Volume 12 (2)
      • Volume 12 (1)
    • 2005
      • Volume 11 (2)
      • Volume 11 (1)
    • 2004
      • Volume 10 (2)
      • Volume 10 (1)
    • 2003
      • Volume 9 (1)
    • 2002
      • Volume 8 (2)
      • Volume 8 (1)
    • 2001
      • Volume 7 (2)
      • Volume 7 (1)
    • 2000
      • Volume 6 (1)
    • 1999
      • Volume 5 (1)
    • 1998
      • Volume 4 (1)
    • 1997
      • Volume 3 (1)
    • 1996
      • Volume 2 (1)
      • Volume 1 (1)
  • DATABASES

    • AUTHORS BASE
  • CONTACT
  • LAST ISSUE
  • IN PROGRESS
  • EARLY VIEW
  • ACCEPTED PAPERS

© 2025 CMST