![]()
(Contributed by Gary Leaf and David Levine)
We used the time-dependent Ginzburg-Landau (TDGL) equation for the numerical simulation of vortex dynamics and phase transitions in high-temperature, Type-II superconductors. Effects of external currents, material defects, and thermal fluctuations are incorporated into our model. We are interested in the formation and subsequent evolution of magnetic flux vortices and the influence of random impurities on vortex pinning.
We developed a program to solve the three-dimensional TDGL equations for a superconducting cube in a fixed external magnetic field on bounded domains. The code solves numerically for the complex-valued order parameter as well as the magnetic field within a bulk superconducting material.
The three-dimensional domain is subdivided into an array of cells. We identify the order parameter with the vertices of each cell and the gauge field with the edges (links) of each cell. The resulting equations of motion are solved by using a single time step, forward Euler procedure. The primary data structures used are four complex, three-dimensional arrays whose values are updated each time step according to the equations of motion.
Color Plate 1 Figure
and Color Plate 2 Figure
show the early time dynamics of vortex trapping by twin boundary defects
in a high-temperature, Type-II superconductor. The dynamics were initiated from a doped
state in the presence of an external magnetic field whose strength was adjusted so that
the material is in the mixed state. The material was modeled with a pair of planar defects
(twin boundaries) running diagonally through the sample. Inhomogeneties in the twin
boundaries were modeled with random point defects imbedded in the twin boundaries. The
phenomenological model used was a three-dimensional, time-dependent Ginzburg-Landau
system.
The figures show the early time evolution of the vortices from an initial seed. We see the twin boundaries pinning the vortices and the consequent alignment of vortices trapped between the twin boundaries.
To parallelize the program, we partitionid the array of cells (grid) among the
processors. Each processor was responsible for updating all the cells in the subgrid
contained in its memory. The update step for each cell requires values from neighboring
cells. Because of the array decomposition, neighbors of some of the cells that a processor
has required values from cells stored in other processor's memories. To communicate these
values between processors, we use the BlockComm package developed by William Gropp (see
Section
). With BlockComm, the programmer specifies, via function calls, the
decomposition that will be used. BlockComm produces an internal description of this
decomposition. Whenever data from other processors is needed, the programmer calls the
BlockComm routine BCexec; this manages all of the communication needed to provide
the data.
Preliminary timings on the IBM SP1 are shown in Table
. The first column is the number of processors used. The other columns
report time per iteration (seconds) as a function of the number of processors for grid
sizes of 11#11, 12#12, and 13#13, respectively. EUIH in a column indicates IBM's EUIH
message-passing software was used in conjunction with the high-performance switch. For
comparative purposes, the smallest problem was also run using a version of the p4
message-passing software that used Unix sockets to communicate over an external Ethernet
network that also connects the processors.
|
||||||||||||||||||||||||||||||||||||||||||||||||||
![]()