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.
Перейти к файлу
Shriram Jagannathan 32c07b7f0a 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
docs Remove a dot file; Add a README file for docs. 2020-10-15 15:23:17 -07:00
examples Initial import. 2020-10-15 15:17:49 -07:00
svirl Remove a dot file; Add a README file for docs. 2020-10-15 15:23:17 -07:00
tests Initial import. 2020-10-15 15:17:49 -07:00
.gitignore Initial commit 2020-08-25 23:01:29 +00: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 Replace gl by svirl in files that were left out. 2020-10-18 14:55:37 -07:00
SECURITY.md Initial SECURITY.md commit 2020-08-25 16:01:41 -07:00
cgmanifest.json Initial import. 2020-10-15 15:17:49 -07:00
setup.py Remove unneeded package related inputs. 2020-10-16 15:40:24 -07:00

README.md

Svirl: A Ginzburg-Landau (GL) solver

Svirl is an open source GPU accelerated solver that solves the two-dimensional time-dependent Ginzburg-Landau (TDGL) equations at both finite and infinite kappa limits for an arbitrary user-defined material tiling. The solver is also capable of minimizing the GL free energy using a modified non-linear conjugate-gradient method (CG). The two solvers, TDGL and CG, can be used interchangeably during the simulation.

The solver can compute the following observables: magnetic field, current and supercurrent densities, and free energy density, and can detect the presence of vortices using algorithms from the literature.

The TDGL solver supports fixing vortices at a particular position.

Main features:

  • 2D time-dependent TDGL solver at finite and infinite GL parameter limits
  • single and double precision floating point arithmetic
  • Modified non-linear conjugate gradient solver to
  • user-defined material domain for order parameter
  • fixed vortices can be added by using irregular vector potential
  • vortex detector (CPU version)
  • observables such as GL free energy, current and supercurrent densities, and induced magnetic field

Requires:

Example:

import numpy as np
from svirl import GinzburgLandauSolver

gl = GinzburgLandauSolver(
    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)

Directory structure

Further reading

For details, refer to this [paper] (https://arxiv.org/pdf/1409.8340.pdf).

Code of Conduct

We follow the Microsoft Open Source Code of Conduct