Skip to content

Commit

Permalink
fix conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
loganbvh committed Sep 23, 2023
2 parents 59b9eda + 09d5e25 commit b8dd3bd
Show file tree
Hide file tree
Showing 5 changed files with 479 additions and 11 deletions.
17 changes: 6 additions & 11 deletions docs/background.rst
Original file line number Diff line number Diff line change
Expand Up @@ -431,8 +431,8 @@ Here we go through the full derivation of the quadratic equation for :math:`\lef
Screening
=========

By default ``pyTDGL`` assumes that screening is negligible, i.e., that the total vector potential in the film is time-independent
and equal to the applied vector potential: :math:`\mathbf{A}(\mathbf{r}, t)=\mathbf{A}_\mathrm{applied}(\mathbf{r})`.
By default ``pyTDGL`` assumes that screening is negligible, i.e., that the total vector potential in the film is
equal to the applied vector potential: :math:`\mathbf{A}(\mathbf{r}, t)=\mathbf{A}_\mathrm{applied}(\mathbf{r})`.
Screening can optionally be included by evaluating the vector potential induced by currents flowing in the film.
The vector potential in a 2D film induced by a sheet current density :math:`\mathbf{K}` flowing in the film is given by

Expand All @@ -447,7 +447,7 @@ Taking the induced vector potential into account, the total vector potential in
.. math::
:label: A-total
\mathbf{A}(\mathbf{r}, t)=\mathbf{A}_\mathrm{applied}(\mathbf{r})+\mathbf{A}_\mathrm{induced}(\mathbf{r}, t).
\mathbf{A}(\mathbf{r}, t)=\mathbf{A}_\mathrm{applied}(\mathbf{r}, t)+\mathbf{A}_\mathrm{induced}(\mathbf{r}, t).
Because :math:`\mathbf{A} =\mathbf{A}_\mathrm{applied}+\mathbf{A}_\mathrm{induced}` enters into the covariant gradient and Laplacian of
:math:`\psi` (:eq:`grad-psi` and :eq:`laplacian-psi`), which in turn determine the current density :math:`\mathbf{J}=\mathbf{K}/d`,
Expand All @@ -474,14 +474,9 @@ In :eq:`polyak`, we evaluate the sheet current density :math:`\mathbf{K}^n_\ell=
sites :math:`\mathbf{r}_\ell`, and the vector potential on the mesh edges :math:`\mathbf{r}_{ij}`, so the denominator
:math:`|\mathbf{r}_{ij}-\mathbf{r}_\ell|` is strictly greater than zero and :eq:`polyak` is well-defined.
:eq:`polyak` involves the pairwise distances between all edges and all sites in the mesh, so,
in contrast to the sparse finite volume calculation, it requires a dense matrix representation. This means that
including screening significantly increases both the memory and number of floating point operations required for a
TDGL simulation. To accelerate this portion of the calculation, the first line of :eq:`polyak` is automatically evaluated on a graphics processing unit (GPU)
if one is available. Although including screening does introduce some time-dependence to the total vector potential in the film
(:eq:`A-total`), we assume that :math:`\partial\mathbf{A}/\partial t` remains small enough that the electric field in the film is
:math:`\mathbf{E}=-\nabla\mu - \partial\mathbf{A}/\partial t \approx -\nabla\mu`. The screening calculation (:eq:`polyak`) can fail
to converge for models with strong screening, where the effective magnetic penetration depth :math:`\Lambda=\lambda^2/d` is much smaller
than the film size.
in contrast to the sparse finite volume calculation, it is a "dense" problem. This means that
including screening significantly increases the number of floating point operations required for a
TDGL simulation.

Pseduocode for the solver algorithms
====================================
Expand Down
Binary file modified docs/images/logo-transparent-large.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/logo-transparent-small.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ The ``pyTDGL`` Python API is adapted from `SuperScreen <https://superscreen.read
:maxdepth: 2
:caption: Tutorials

notebooks/screening.ipynb
notebooks/polygons.ipynb
notebooks/logo.ipynb

Expand Down
472 changes: 472 additions & 0 deletions docs/notebooks/screening.ipynb

Large diffs are not rendered by default.

0 comments on commit b8dd3bd

Please sign in to comment.