{"id":16731082,"url":"https://github.com/amilsted/evomps","last_synced_at":"2025-07-13T13:35:43.840Z","repository":{"id":1983818,"uuid":"2915677","full_name":"amilsted/evoMPS","owner":"amilsted","description":"An implementation of the time dependent variational principle for matrix product states","archived":false,"fork":false,"pushed_at":"2022-03-16T23:13:47.000Z","size":5809,"stargazers_count":70,"open_issues_count":5,"forks_count":20,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-04T01:01:36.110Z","etag":null,"topics":["physics","quantum-mechanics","simulation"],"latest_commit_sha":null,"homepage":"http://amilsted.github.io/evoMPS/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amilsted.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-12-05T10:12:26.000Z","updated_at":"2025-04-01T03:06:44.000Z","dependencies_parsed_at":"2022-09-05T17:00:47.049Z","dependency_job_id":null,"html_url":"https://github.com/amilsted/evoMPS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amilsted/evoMPS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amilsted%2FevoMPS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amilsted%2FevoMPS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amilsted%2FevoMPS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amilsted%2FevoMPS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amilsted","download_url":"https://codeload.github.com/amilsted/evoMPS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amilsted%2FevoMPS/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260424782,"owners_count":23007044,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["physics","quantum-mechanics","simulation"],"created_at":"2024-10-12T23:35:49.945Z","updated_at":"2025-06-17T19:06:20.940Z","avatar_url":"https://github.com/amilsted.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"======================\n evoMPS \\|. \\|.:\\|::\u003e\n======================\n---------------------------------------------------------------\nQuantum many-particle dynamics in 1D with matrix product states\n---------------------------------------------------------------\n\nWhat's new?\n-----------\n\n* Python 3 is now supported as well as Python 2 (2.7 and up)\n* Removed dependency on EXPOKIT extension module for use of the \"split-step\" integrator\n\nTutorial videos:\n----------------\n\n* Installation \u003chttp://vimeo.com/user19042101/evomps-tutorial-installation\u003e\n* Find ground state \u003chttp://vimeo.com/user19042101/evomps-tutorial-ground\u003e\n* Find excitations \u003chttp://vimeo.com/user19042101/evomps-tutorial-excitations\u003e\n\nNote: These are based on an older version of evoMPS, but the differences are minor.\n      Most importantly, compilation of extension modules is no longer necessary.\n\nIntroduction\n------------\n\nevoMPS can find ground states and low-lying excited states of one-dimensional \nquantum systems (local, translation-invariant Hamiltonians) directly in the \nthermodynamic limit of infinitely long chains. States are represented as \ninfinite matrix product states (MPS) invariant under translation by L sites\n(block-translation invariant).\n\nevoMPS finds ground states efficiently, even for critical systems, using the \nnonlinear conjugate gradient method. It computes dispersion relations using\nthe MPS tangent space as ansatz states for low-lying excitations with well-defined momenta.\n\nevoMPS can also simulate nonuniform dynamics in a finite window of an infinite\nsystem.\n\nThe above features set evoMPS apart from other MPS and DMRG software, which do\nnot usually work directly in the thermodynamic limit and do not exploit the MPS \ntangent space as an excitations ansatz. In addition, evoMPS can find ground states\nand simulate real-time dynamics of finite systems with open boundary conditions.\n\nevoMPS is based on algorithms published by Haegeman et al. [1] and Milsted et al. [2],\namong others.\n\nSee the INSTALL file for installation instructions!\n\nKey Features\n------------\n\n* Finds ground states and simulates dynamics of infinite systems\n* Nonlinear conjugate gradient methods for finding ground states in infinite systems\n* Calculates dispersion relations for infinite systems using tangent plane methods\n* Handles locally nonuniform infinite systems (sandwich MPS aka infinite boundary conditions)\n* Time-Dependent Variational Principle for simulating time evolution\n* Runge-Kutta (RK4) and split-step (finite only) integrators for greater accuracy\n* Supports local Hamiltonians: nearest-neighbour (or next-nearest neighbour)\n* Limited support for long range Hamiltonians (in development, currently for finite systems only, using MPOs)\n\nUsage\n-----\n\nThe evoMPS algorithms are presented as python classes to be used in a script.\nSome example scripts can be found in the \"examples\" directory.\nTo run an example script without installing the evoMPS modules, copy it to the base \ndirectory first e.g. under Windows::\n    \n    copy examples\\transverse_ising_uniform.py .\n    python transverse_ising_uniform.py\n\nEssentially, the user defines a spin chain Hilbert space\nand a nearest-neighbour Hamiltonian and then carries out a series of small \ntime steps (numerically integrating the effective Schrödinger equation for the MPS parameters)::\n\n    sim = EvoMPS_TDVP_Uniform(bond_dim, local_hilb_dim, my_hamiltonian)\n    \n    for i in range(max_steps):\n        sim.update()\n        \n        my_exp_val = sim.expect_1s(my_op)\n        \n        sim.take_step_RK4(dtau)\n\nOperators, including the Hamiltonian, are defined as arrays like this::\n\n    pauli_z = numpy.array([[1, 0],\n                           [0, -1]])\n\nCalculating expectation values or other quantities can be done after each step \nas desired.\n\nSwitching between imaginary time evolution (for finding the ground state)\nand real time evolution is as easy as multiplying the time step size by a factor of i!\n\nContact\n-------\n\nPlease send comments to:\n\nashmilsted at \u003cgoogle's well-known email service\u003e\n\nTo submit ideas or bug reports, please use the GitHub Issues system \u003chttp://github.com/amilsted/evoMPS/\u003e.\n\nReferences\n----------\n\n1. \\J. Haegeman, J. I. Cirac, T. J. Osborne, I. Pizorn, H. Verschelde and F. Verstraete, arXiv:1103.0936. \u003chttp://arxiv.org/abs/1103.0936v2\u003e.\n2. \\A. Milsted, T. J. Osborne, F. Verstraete, J. Haegeman, arXiv:1207.0691. \u003chttp://arxiv.org/abs/1207.0691\u003e.\n\nAbout\n-----\n\nevoMPS was originally developed as part of an MSc project by Ashley Milsted,\nsupervised by Tobias Osborne at the Institute for Theoretical Physics of\nLeibniz Universität Hannover \u003chttp://www.itp.uni-hannover.de/\u003e.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Familsted%2Fevomps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Familsted%2Fevomps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Familsted%2Fevomps/lists"}