Svirl is GPU-accelerated solver of complex Ginzburg-Landau equations for superconductivity. It consists of time-dependent solver to describe vortex dynamics and free energy minimizer to accurately find static configurations.
Перейти к файлу
Ivan Sadovskyy 8d0da6a03a
Replaced python --> python3 in run_examples.sh
2020-12-21 22:13:25 -08:00
docs Changed name of the svirl solver class to GLSolver. 2020-11-11 19:24:28 -08:00
examples Replaced python --> python3 in run_examples.sh 2020-12-21 22:13:25 -08:00
svirl Changed the names of files and modules to make them consistent with the class names 2020-12-18 17:14:24 -08:00
tests Changed name of the svirl solver class to GLSolver. 2020-11-11 19:24:28 -08:00
.gitignore Initial commit 2020-08-25 23:01:29 +00:00
AUTHORS Adding authors file. 2020-12-21 11:19:43 -08:00
CODE_OF_CONDUCT.md Initial CODE_OF_CONDUCT.md commit 2020-08-25 16:01:39 -07:00
CONTRIBUTING.md Initial import. 2020-10-15 15:17:49 -07:00
LICENSE Initial LICENSE commit 2020-08-25 16:01:40 -07:00
MANIFEST.in Update setup.py to include files that were previously left out, and include a manifest file. 2020-10-16 09:49:50 -07:00
NOTICE.txt CELA confirmed that the initial version of our NOTICE file was correct, so I'm reverting to our previous version. 2020-10-21 14:38:11 -07:00
README.md Merge branch 'main' of github.com:microsoft/svirl into main 2020-11-11 19:26:49 -08:00
SECURITY.md Initial SECURITY.md commit 2020-08-25 16:01:41 -07:00
cgmanifest.json Fix typo. 2020-10-23 14:15:07 -07:00
setup.py Updated setup.py: common email, keywords, and classifiers 2020-10-25 23:01:11 -07:00

README.md

Svirl: GPU-accelerated Ginzburg-Landau equations solver

Svirl is an open source solver of complex Ginzburg-Landau (GL) equations mainly used to describe magnetic vortices in superconductors. It consists of two parts: (i) time-dependent Ginzburg-Landau (TDGL) solver [1] and (ii) GL free energy minimizer with uses modified non-linear conjugate gradient method.

The current version of Svirl can be used for two-dimensional (2D) systems only, the work on three-dimensional (3D) solver is in progress.

Svirl has intuitive Python3 API and requires nVidia GPU to run. The idea of GPU-acceletrated TDGL solver was initially developed in the framework of OSCon project for infinite GL parameter limit.

Main features

  • 2D time-dependent GL solver
  • 2D GL free energy minimizer
  • finite and infinite GL parameters
  • user-defined material domain for order parameter
  • calculates observables such as GL free energy, current density, and magnetic field
  • detector of vortex positions
  • uses nVidia CUDA by means of pyCUDA

Example

import numpy as np
from svirl import GLSolver

gl = GLSolver(
    dx = 0.5, dy = 0.5,
    Lx = 64, Ly = 64,
    order_parameter = 'random',
    gl_parameter = 5.0,  # np.inf
    normal_conductivity = 200.0,
    homogeneous_external_field = 0.1,
    dtype = np.float64,
)

gl.solve.td(dt=0.1, Nt=1000)

gl.solve.cg(n_iter = 1000)

vx, vy, vv = gl.params.fixed_vortices.vortices
print('Order parameter: array of shape', gl.vars.order_parameter.shape)
print('%d vortices detected' % vx.size)

print('Free energy: ', gl.observables.free_energy)

ch, cv = gl.observables.current_density
print('Total current density: two arrays of shape', ch.shape, '[horizontal links] and', cv.shape, '[vertical links]')

ch, cv = gl.observables.supercurrent_density
print('Supercurrent density: two arrays of shape', ch.shape, '[horizontal links] and', cv.shape, '[vertical links]')
print('Magnetic field: array of shape', gl.observables.magnetic_field.shape)

References

  1. I.A. Sadovskyy et al, Stable large-scale solver for Ginzburg-Landau equations for superconductors, J. Comp. Phys. 294, 639 (2015); arXiv:1409.8340.

Code of conduct

We follow the Microsoft Open Source Code of Conduct.