Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
U
usadelndsoc
Manage
Activity
Members
Labels
Plan
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
JYU Condensed Matter Theory
usadelndsoc
Commits
fd98919b
Commit
fd98919b
authored
2 years ago
by
patavirt
Browse files
Options
Downloads
Patches
Plain Diff
DOC
parent
daec2ddf
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
README.md
+2
-2
2 additions, 2 deletions
README.md
doc/discretization.md
+711
-0
711 additions, 0 deletions
doc/discretization.md
with
713 additions
and
2 deletions
README.md
+
2
−
2
View file @
fd98919b
...
@@ -6,8 +6,8 @@ Uses a discretization with local gauge invariance.
...
@@ -6,8 +6,8 @@ Uses a discretization with local gauge invariance.
## Requirements
## Requirements
-
C++ compiler
-
C++
17 compatible
compiler
-
C++ libraries: Eigen, CppAD
-
C++ libraries:
[
Eigen
](
https://eigen.tuxfamily.org/
)
,
[
CppAD
](
https://coin-or.github.io/CppAD/
)
-
Python 3
-
Python 3
## Compiling
## Compiling
...
...
This diff is collapsed.
Click to expand it.
doc/discretization.md
0 → 100644
+
711
−
0
View file @
fd98919b
# Gauge-invariant discretization
We do the discretization of the Usadel equation as follows. We first
discretize the action $S$, and derive the discrete saddle-point
equation from the discretized action. This simplifies things somewhat,
because proper handling of the gauge fields is simpler to do
in the action formulation.
The action is
```
math
S[Q]
&=
\mathrm{Tr}[D(\hat{\nabla}Q)^2 + F_{ij}Q\hat{\nabla}_iQ\hat{\nabla}_jQ + \Omega Q]
\,,
```
where $
\h
at{
\n
abla}_j Q =
\p
artial_j Q - i[
\m
athcal{A}_j, Q]$. We'd
like the discretized functional to be also gauge invariant.

We subdivide the space to cells, centered on a rectangular lattice
$
\v
ec{r}_j=(h j_x, h j_y, h j_z)$ with $j_{x,y,z}
\i
n
\m
athbb{Z}$
and $h$ are the lattice spacings. See Fig.~
\r
ef{fig:discr}
We choose $Q(j) = Q(
\v
ec{r}_j)$ to be values of $Q$ at the lattice
sites. We define the Wilson link matrices
$U_{ij}
=U_{ji}^{-1}
=U(
\v
ec{r}_{i},
\v
ec{r}_{j})
=
\m
athrm{Pexp}[i
\i
nt_{L(
\v
ec{r}_i,
\v
ec{r}_j)}
\d
d{
\v
ec{r}'}
\c
dot
\v
ec{
\m
athcal{A}}(
\v
ec{r}')]$
%
where $L(
\v
ec{r}_i,
\v
ec{r}_j)$ is straight line from $
\v
ec{r}_j$ to
$
\v
ec{r}_i$ and $
\m
athrm{Pexp}$ is the path-ordered integral.
The neighbor cells of $j$ are $i
\i
n{}
\m
athrm{neigh}(j)$
ie. $i=(j_x
\p
m1,j_y,j_z)$, $i=(j_x,j_y
\p
m1,j_z)$,
$i=(j_x,j_y,j_z
\p
m1)$. Since the gauge field $
\v
ec{
\m
athcal{A}}$ is
fixed, the link matrices can be computed cheaply, and there's no need
to expand them.
We want a discretized theory that is invariant under the discrete gauge transformation
%
\b
egin{align}
Q(j)
&
\m
apsto
u(j)
Q
u(j)^{-1}
\,
,
&
U_{ij}
\m
apsto
u(i)U_{ij}u(j)^{-1}
\,
,
\e
nd{align}
%
and in the continuum limit reduces to the original theory. Such
discretization has the advantage of being insensitive to the gauge
choice, and having exact discrete conservation laws associated with
the symmetry.
We then discretize
%
\b
egin{align}
S_2
&=
\T
r D(
\h
at{
\n
abla} Q)^2
\m
apsto
D
\f
rac{2d}{|
\m
athrm{neigh}|}
\f
rac{h^d}{h^2}
\s
um_{
\m
athrm{neigh}(i,j)}
\T
r[Q(i) - U_{ij}Q(j)U_{ji}]^2
\\
&
\s
imeq
\f
rac{h^{d}d}{|
\m
athrm{neigh}|}
\s
um_{i}
\s
um_{j
\i
n{}
\m
athrm{neigh}(i)}
\T
r
\B
igl(
\f
rac{Q(i) - Q(j)}{h} - [i
\m
athcal{A}(
\f
rac{
\v
ec{r}_i+
\v
ec{r}_j}{2}), Q(j)]
\B
igr)^2
\,
,
\e
nd{align}
%
where $d$ is the space dimension. The first line is gauge
invariant. The second line verifies the reduction to the continuum
limit.
The link matrices have the usual continuum limit expansion
%
\b
egin{align}
U_{ji}
&=
%
\s
um_{n=0}^
\i
nfty
\f
rac{i^n}{n!} |
\v
ec{r}_i-
\v
ec{r}_j|^n
\i
nt_{-1/2}^{1/2}
\d
d{s_1}
\!\!\c
dots{}
\d
d{s_n} P[
\m
athcal{A}(s_1)
\c
dots
\m
athcal{A}(s_n)]
%=
\s
um_{n=0}^
\i
nfty i^n |
\v
ec{r}_i-
\v
ec{r}_j|^n
\i
nt_{-1/2}^{1/2}
\d
d{s_1}
\i
nt_{-1/2}^{s_1}
\d
d{s_2}
\l
dots
\i
nt_{-1/2}^{s_{n-1}}
\d
d{s_n}
\m
athcal{A}(s_1)
\c
dots
\m
athcal{A}(s_n)
\l
abel{eq:link-expansion}
\\
&
\a
pprox
1 + i h
\m
athcal{A}(s=0)
+
\f
rac{(ih)^2}{2}
\m
athcal{A}(s=0)^2
+
\m
athcal{O}(h^3)
\,
,
\e
nd{align}
%
where $
\m
athcal{A}(s)=
\m
athcal{A}[(
\f
rac{1}{2} - s)
\v
ec{r}_i + (
\f
rac{1}{2} + s)
\v
ec{r}_j]$. The second line indicates the midpoint rule,
found using $
\m
athcal{A}(s)
\s
imeq
\m
athcal{A}(
\f
rac{1}{2}) + (s-
\f
rac{1}{2})
\m
athcal{A}'(
\f
rac{1}{2})+
\l
dots$
and observing that and $
\f
rac{d^n}{ds^n}
\m
athcal{A}(s) =
\m
athcal{O}(h^n)$.
As well known in lattice QCD, the field strength can be expressed in
terms of the link matrices $U$ via a plaquette loop. Consider then
the plaquette (see Fig.~
\r
ef{fig:discr}), with edges $j
\l
eftarrow{}i$ and $k
\l
eftarrow{}l$ in
direction $
\m
u$ and $l
\l
eftarrow{}i$, $k
\l
eftarrow{}j$ in direction $
\n
u$, and expand around
$
\v
ec{r}_0=
\f
rac{
\v
ec{r}_i+
\v
ec{r}_j+
\v
ec{r}_k+
\v
ec{r}_l}{4}$:
%
\b
egin{align}
P_{lkji}
&=
U_{il}U_{lk}U_{kj}U_{ji}
\,
,
\\
U_{ji}
&
\s
imeq
1 + i h
\m
athcal{A}_
\m
u(
\v
ec{r}_0) +
\f
rac{1}{2}(i h
\m
athcal{A}_
\m
u(
\v
ec{r}_0))^2 + i h (-h)
\p
artial_
\n
u
\m
athcal{A}_{
\m
u}(
\v
ec{r}_0)
+
\l
dots
\,
,
\\
U_{kj}
&
\s
imeq
1 + i h
\m
athcal{A}_
\n
u(
\v
ec{r}_0) +
\f
rac{1}{2}(i h
\m
athcal{A}_
\n
u(
\v
ec{r}_0))^2 + i h (+h)
\p
artial_
\m
u
\m
athcal{A}_{
\n
u}(
\v
ec{r}_0)
+
\l
dots
\,
,
\\
U_{lk}
&
\s
imeq
1 - i h
\m
athcal{A}_
\m
u(
\v
ec{r}_0) +
\f
rac{1}{2}(-i h
\m
athcal{A}_
\m
u(
\v
ec{r}_0))^2 - i h (+h)
\p
artial_
\n
u
\m
athcal{A}_{
\m
u}(
\v
ec{r}_0)
+
\l
dots
\,
,
\\
U_{il}
&
\s
imeq
1 - i h
\m
athcal{A}_
\n
u(
\v
ec{r}_0) +
\f
rac{1}{2}(-i h
\m
athcal{A}_
\n
u(
\v
ec{r}_0))^2 - i h (-h)
\p
artial_
\m
u
\m
athcal{A}_{
\m
u}(
\v
ec{r}_0)
+
\l
dots
\,
,
\\
\R
ightarrow
P_{lkji}
&
\s
imeq
1
-
i h^2
\b
igl(
\p
artial_
\m
u
\m
athcal{A}_
\n
u -
\p
artial_
\n
u
\m
athcal{A}_
\m
u - i[
\m
athcal{A}_
\m
u,
\m
athcal{A}_
\n
u]
\b
igr)
+
\m
athcal{O}(h^3)
=
1
+
i h^2 F_{
\m
u
\n
u}(
\v
ec{r}_0)
+
\m
athcal{O}(h^3)
\\
\R
ightarrow
F_{
\m
u
\n
u}(
\v
ec{r}_0)
&
\s
imeq
-
\f
rac{1}{i h^2}(1 - P_{lkji})
\s
imeq
+
\f
rac{1}{i h^2}(1 - P_{jkli})
\e
nd{align}
%
Let us then construct computer algebra for doing the continuum limit expansions to order $h^4$,
and use it to verify this. First, define the algebra of noncommutative indexed symbols $a$, $Q$,
with coefficients being polynomials of $h$ with $h^5=0$. The indices on $a$ and $Q$ indicate plain derivatives.
%
\b
egin{sageblock}
from indexed_letter_monoid import IndexedLetterMonoid, relabel, distributive_op
from reduce_term import reduce_term, coerce_algebra, divide_monomial, divide_monomial_cyclic
var_props = {'Q': 'involution', 'q': 'involution', 'a': 'symmetric-tail', 'F': '2-idx'}
GG = IndexedLetterMonoid(letter_init=tuple(var_props.items()))
QQi = I.parent()
PP0 = PolynomialRing(QQi, 'h,s')
PP = PP0.quotient(PP0.ideal(PP0.gens()[0]
**
5), names='h,s')
PP.inject_variables()
FF = GG.algebra(PP)
FF0 = GG.algebra(PP0)
def a(idxs): return FF(GG([("a", tuple(idxs))]))
def Q(idxs=()): return FF(GG([("Q", tuple(idxs))]))
def q(idxs=()): return FF(GG([("q", tuple(idxs))]))
def F(idxs=()): return FF(GG([("F", tuple(idxs))]))
\e
nd{sageblock}
%
Define taylor expansions of $a$ and $Q$ matrices around center of the
plaquette, and compute $U$ from Eq.~
\e
qref{eq:link-expansion}. We want
the conditions $U_{ij}U_{ji}=1$ and $Q^2=1$ to hold to order $h^4$.
%
\b
egin{sageblock}
@mem_cache
def symtaylor(fun, mu, dx, dy, order=4):
res = fun(mu)
for n in range(1, order + 1):
for ni in range(n + 1):
nj = n - ni
res = res + PP(QQi(binomial(n, ni)) / factorial(n)
*
dx
**
ni
* dy**nj) *
fun(mu + "i"
*ni + "j"*
nj)
return res
def Qexpansion(dx, dy, order=4):
return symtaylor(Q, "", dx, dy, order=order)
def aexpansion(mu, dx, dy, order=4):
return symtaylor(a, mu, dx, dy, order=order)
@mem_cache
def Uexpansion(mu, dx, dy, sgn=1, order=4):
# path-ordered integral of midpoint Taylor expansion of a(x,y)
if dx == 0:
b = aexpansion(mu, sgn
* s *
h, dy, order=order)
elif dy == 0:
b = aexpansion(mu, dx, sgn
* s *
h, order=order)
else:
raise ValueError()
res = 1
for n in range(1, order + 1):
res = res + PSintegral(b, n) * (I*h*sgn)**n
return res
def PSintegral(b, n, expr=None):
r"""
Pexp(
\i
nt_{-1/2}^{1/2} ds b(s))
"""
ring = b.parent().base_ring()
if expr is None:
expr = b
ss = SR(s.lift())
if n == 1:
ig = expr.map_coefficients(lambda z: ring(integrate(SR(z.lift()), ss, -1/2, 1/2)))
return ig
else:
ig = expr.map_coefficients(lambda z: ring(integrate(SR(z.lift()), ss, -1/2, ss)))
return PSintegral(b, n-1, b
*
ig)
Q1val = Qexpansion(-h/2, -h/2)
Q2val = Qexpansion(h/2, -h/2)
Q3val = Qexpansion(h/2, h/2)
Q4val = Qexpansion(-h/2, h/2)
U21 = Uexpansion("i", 0, -h/2, sgn=1)
U32 = Uexpansion("j", h/2, 0, sgn=1)
U43 = Uexpansion("i", 0, h/2, sgn=-1)
U14 = Uexpansion("j", -h/2, 0, sgn=-1)
U12 = Uexpansion("i", 0, -h/2, sgn=-1)
U23 = Uexpansion("j", h/2, 0, sgn=-1)
U34 = Uexpansion("i", 0, h/2, sgn=1)
U41 = Uexpansion("j", -h/2, 0, sgn=1)
Fijval = a("ji") - a("ij") - I
*(a("i")*
a("j") - a("j")
*
a("i"))
Qival = Q("i") - I
*(a("i") *
Q() - Q()
*
a("i"))
Qjval = Q("j") - I
*(a("j") *
Q() - Q()
*
a("j"))
def hcoef(expr, order):
if order == 0:
return expr.map_coefficients(lambda z: z.lift().constant_coefficient())
elif order > 0:
return expr.map_coefficients(lambda z: z.lift().monomial_coefficient(h.lift()
**
order))
else:
raise ValueError(order)
def htrunc(expr, order):
return sum(h
**
n
*
hcoef(expr, n) for n in range(order + 1))
@distributive_op
def tr_permute(m, c, algebra):
return min((algebra.term(GG(m.value[k:] + m.value[:k]), c) for k in range(len(m))),
default=algebra.term(m, c))
def partitions(total, left=(), right=()):
total = tuple(total)
if not total:
yield left, right
else:
t2 = total[1:]
s = total[0]
l2 = left + (s,)
r2 = right + (s,)
yield from partitions(t2, l2, right)
yield from partitions(t2, left, r2)
@mem_cache
def Qideal():
# commutation rules from derivatives of Q^2 = 1
return [
sum(Q(p1)
*
Q(p2) for p1, p2 in partitions(ptot))
for ptot in ["i", "j", "ii", "ij", "jj",
"iii", "iij", "ijj", "jjj",
"iiii", "iiij", "iijj", "ijjj", "jjjj"]
]
@mem_cache
def simplify(expr, trace=False):
ideal = Qideal()
s = tr_permute if trace else None
divide = divide_monomial_cyclic if trace else divide_monomial
return reduce_term(expr, ideal, algebra=FF0, simplify=s, divide=divide)
@distributive_op
def gderiv(m, c, algebra, i):
assert len(i) == 1
new = []
for letter, idx in m.value:
new.append((letter, tuple(idx) + tuple(i)))
expr0 = FF.term(m, c)
expr1 = FF.term(GG(new), c)
return expr1 - I
*(a(i)*
expr0 - expr0
*
a(i))
@mem_cache
def to_covariant(expr, trace=False,
**
kw):
comm = lambda a, b: a
*b - b*
a
ideal = [Q() - q()]
ideal += [gderiv(Q(), i) - q(i) for i in "ij"]
ideal += [gderiv(gderiv(Q(), i), j) - q((i,j)) for i in "ij" for j in "ij"]
ideal += [gderiv(gderiv(gderiv(Q(), i), j), k) - q((i,j,k)) for i in "ij" for j in "ij" for k in "ij"]
ideal += [Fijval - F(("i", "j"))]
ideal += [F(("j", "i")) + F(("i", "j"))]
ideal += [gderiv(Fijval, k) - F(("i","j",k)) for k in "ij"]
ideal += [F(("j","i",k)) + F(("i","j",k)) for k in "ij"]
ideal += Qideal()
s = tr_permute if trace else None
divide = divide_monomial_cyclic if trace else divide_monomial
return reduce_term(expr, ideal, max_key=_max_key_cov, algebra=FF0,
simplify=s, divide=divide,
**
kw)
def _max_key_cov(m):
cov_badness = sum(letter in ("a", "Q") for letter, idx in m.value)
return (cov_badness, m)
\e
nd{sageblock}
%
The plaquette loop:
%
\b
egin{sageblock}
P4321 = U14
* U43 *
U32
*
U21
\e
nd{sageblock}
%
Then, to order $
\m
athcal{O}(h^3)$,
%
\b
egin{sageexample}
sage: I
*
htrunc(1 - P4321, 2)
\e
nd{sageexample}
%
When discretizing the $Q
\h
at{
\n
abla}_iQ
\h
at{
\n
abla}_jQ$ part, we can
consider a discrete derivative
%
\b
egin{align}
D_{ij}
\c
oloneqq
Q(i) U_{ij} - U_{ij} Q(j)
\,
,
\q
quad
\R
ightarrow
Q(i) D_{ij} = - D_{ij} Q(j)
\,
,
\e
nd{align}
%
which satisfies a discrete gauge-invariant version of the $Q (
\h
at{
\n
abla}Q) =
-(
\h
at{
\n
abla}Q) Q$ relation. Then, in the plaquette of Fig.~
\r
ef{fig:discr} we
have
%
\b
egin{align}
\t
r
F_{
\m
u
\n
u}Q
\h
at{
\n
abla}_
\m
u Q
\h
at{
\n
abla}_
\n
u Q
\r
vert_{
\m
u=ji,
\n
u=li}
&
\s
imeq
\f
rac{i}{h^4}
\t
r
(1 - P_{lkji}) U_{ij} D_{ji} Q(i) D_{il} U_{li}
=
\f
rac{-i}{h^4}
\t
r
(U_{lk} U_{kj} - U_{li} U_{ij}) D_{ji} Q(i) D_{il}
\e
nd{align}
%
So the structure is $
\f
rac{-i}{h^4}$ $
\t
imes$ (gauge factors for
counterclockwise loop $-$ return back clockwise) $
\t
imes$ $DQD$ for
three sites in counterclockwise order. Since only $Q(i)$, $Q(j)$,
$Q(l)$ appear here, one can also think of this as a plaquette corner
with $Q(i)$ being the corner.
Indeed:
%
\b
egin{sageblock}
Fijval = a("ji") - a("ij") - I
*(a("i")*
a("j") - a("j")
*
a("i"))
Fjival = -Fijval
Qival = Q("i") - I
*(a("i") *
Q() - Q()
*
a("i"))
Qjval = Q("j") - I
*(a("j") *
Q() - Q()
*
a("j"))
D41 = Q4val
* U41 - U41 *
Q1val
D34 = Q3val
* U34 - U34 *
Q4val
D21 = Q2val
* U21 - U21 *
Q1val
D32 = Q3val
* U32 - U32 *
Q2val
D14 = Q1val
* U14 - U14 *
Q4val
D43 = Q4val
* U43 - U43 *
Q3val
D12 = Q1val
* U12 - U12 *
Q2val
D23 = Q2val
* U23 - U23 *
Q3val
f_1 = -I
*((U43*
U32 - U41
*U12) *
D21
*Q1val*
D14)
f_2 = -I
*((U14*
U43 - U12
*U23) *
D32
*Q2val*
D21)
f_3 = -I
*((U21*
U14 - U23
*U34) *
D43
*Q3val*
D32)
f_4 = -I
*((U32*
U21 - U34
*U41) *
D14
*Q4val*
D43)
fb_xy = Fijval
*Q()*
Qival
*Qjval *
h
**
4
fb_yx = Fjival
*Q()*
Qjval
*Qival *
h
**
4
\e
nd{sageblock}
\b
egin{sageexample}
sage: simplify(f_1 - fb_xy, trace=True)
sage: simplify(f_2 - fb_yx, trace=True)
sage: simplify(f_3 - fb_xy, trace=True)
sage: simplify(f_4 - fb_yx, trace=True)
\e
nd{sageexample}
To do the sum over the $
\m
u$, $
\n
u$ indices, one can average over
corners of the plaquettes as follows:
%
\b
egin{align}
S_H
&=
\a
lpha
\T
r F_{
\m
u
\n
u}Q
\h
at{
\n
abla}_
\m
u Q
\h
at{
\n
abla}_
\n
u Q
\\
&
\m
apsto
\a
lpha
\f
rac{h^d d}{4ih^4}
\s
um_{
\m
athrm{plaqc}(ijkl; i)}
\T
r
\B
igl(
(U_{lk} U_{kj} - U_{li} U_{ij}) D_{ji} Q(i) D_{il}
\B
igr)
\\
&=
\f
rac{
\a
lpha h^{d-4} d}{4i}
\s
um_{
\m
athrm{plaqc}(i; jkl)}
\T
r
\B
igl(
(P_{lkji} - 1)(Q(i) - U_{ij} Q(j) U_{ji} Q(i) U_{il} Q(l) U_{li})
\B
igr)
\,
,
\e
nd{align}
%
where $
\m
athrm{plaqc}(i;jkl)$ are the plaquette corners. The last line
follows with direct calculation, and considering the cyclic
permutations.
Indeed:
%
\b
egin{sageblock}
@mem_cache
def get_fc():
P4321 = U14
* U43 *
U32
*
U21
P3214 = U43
* U32 *
U21
*
U14
P2143 = U32
* U21 *
U14
*
U43
P1432 = U21
* U14 *
U43
*
U32
fc_1 = (P4321-1) * (Q1val - U12*Q2val*U21*Q1val*U14*Q4val*U41)
fc_2 = (P1432-1) * (Q2val - U23*Q3val*U32*Q2val*U21*Q1val*U12)
fc_3 = (P2143-1) * (Q3val - U34*Q4val*U43*Q3val*U32*Q2val*U23)
fc_4 = (P3214-1) * (Q4val - U41*Q1val*U14*Q4val*U43*Q3val*U34)
return (-I/2) * (fc_1 + fc_2 + fc_3 + fc_4)
fc_tot = get_fc()
\e
nd{sageblock}
\b
egin{sageexample}
sage: simplify(fc_tot - (fb_xy + fb_yx), trace=True)
\e
nd{sageexample}
The last term is simple:
%
\b
egin{align}
\T
r
\O
mega Q
\m
apsto
\s
um_{i} h^3
\T
r
\O
mega(j) Q(j)
\,
.
\e
nd{align}
%
It is gauge invariant if $
\O
mega$ transforms as
$
\O
mega(j)
\m
apsto{}u(j)
\O
mega(j)u(j)^{-1}$.
We can also calculate the matrix current $j
\m
apsto{}i$ between neighboring cells:
%
\b
egin{align}
J_{ij}^a
&=
\f
rac{
\p
artial}{
\p
artial
\x
i}
S[
U_{ij}
\m
apsto
e^{i
\x
i h T^a} U_{ij}
]
\r
vert_{
\x
i=0}
=
\f
rac{
\p
artial}{
\p
artial
\x
i}
S[
U_{ij}
\m
apsto
U_{ij}
+
\f
rac{ih}{2}T^a U_{ij}
\x
i
]
\r
vert_{
\x
i=0}
\e
nd{align}
%
where $T^a$ is an appropriate matrix generator, and the transformation
is inserted only to one of the links. Indeed, in the continuum limit
%
\b
egin{align}
J_{ij}^a
&
\s
imeq
\f
rac{
\p
artial}{
\p
artial
\x
i}
S[
U_{ij}
\m
apsto
1
+
i
h
\m
athcal{A}
+
ih
\x
i T^a
]
\r
vert_{
\x
i=0}
\s
imeq
\f
rac{
\p
artial}{
\p
artial
\x
i}
S[
\m
athcal{A}
\m
apsto
\m
athcal{A}
+
\x
i T^a
]
\r
vert_{
\x
i=0}
\,
.
\e
nd{align}
%
The local gauge invariance now implies that there is an exact discrete
continuity equation
%
\b
egin{align}
\s
um_{j
\i
n{}N_i} J_{ij}^a
=
\f
rac{
\p
artial}{
\p
artial
\x
i}
S[Q(i)
\m
apsto{}e^{i
\x
i T^a}Q(i)e^{-i
\x
i T^a}]
\r
vert_{
\x
i=0}
=
\f
rac{
\p
artial}{
\p
artial
\x
i}
S[
\O
mega(i)
\m
apsto{}e^{-i
\x
i T^a}
\O
mega(i)e^{i
\x
i T^a}]
\r
vert_{
\x
i=0}
=
R_{i}^a
\,
.
\e
nd{align}
%
This is one main advantage of the procedure, in addition to its
invariance vs. gauge fixing.
However, the definition of the matrix current is
\e
mph{asymmetric}, so
that $J_{ij}
\n
e{}-J_{ji}$ as they differ by a quantity of order
$
\m
athcal{O}(h^2)$. The asymmetry arises when $T^a$ does not commute
with $U_{ij}$, so it is an issue only for the SU(2) component. The
problem is to some degree just in the interpretation of what $J_{ij}$
means: it is the incoming current measured at site $i$, whereas
$J_{ji}$ is measured as site $j$. Since the parallel transport of
spin between these two locations can imply rotation due to the gauge
field, there's no reason why we should have $J_{ij} = -J_{ji}$, except
in the continuum limit where the two points become close to each
other.
\s
ubsection{Saddle point}
We have the variations
%
\b
egin{align}
\d
elta S_2
&=
\f
rac{2Dd}{|
\m
athrm{neigh}|}
\f
rac{h^d}{h^2}
\s
um_{
\m
athrm{neigh}(i,j)}
\T
r
\B
igl(
2
\d
elta Q(i) [Q(i) - U_{ij}Q(j)U_{ji}]
+
2
\d
elta Q(j) [Q(j) - U_{ji} Q(i) U_{ij}]
\B
igr)
\\
&=
\f
rac{4Dh^{d-2}d}{|
\m
athrm{neigh}|}
\s
um_{i}
\s
um_{j
\i
n
\m
athrm{neigh}(i,j)}
\T
r
\B
igl(
\d
elta Q(i) [Q(i) - U_{ij}Q(j)U_{ji}]
\B
igr)
\,
,
\e
nd{align}
%
and
%
\b
egin{align}
\d
elta S_H
&
\s
imeq
\a
lpha
\f
rac{h^{d-4}d}{4i}
\s
um_{
\m
athrm{plaqc}(i; jkl)}
\T
r
\B
igl(
(P_{lkji} - 1)(
\d
elta Q(i)
-
U_{ij}
\d
elta Q(j) U_{ji} Q(i) U_{il} Q(l) U_{li}
-
U_{ij} Q(j) U_{ji}
\d
elta Q(i) U_{il} Q(l) U_{li}
\\\n
otag&
\q
quad
-
U_{ij} Q(j) U_{ji} Q(i) U_{il}
\d
elta Q(l) U_{li}
)
\B
igr)
\,
,
\\
&=
\a
lpha
\f
rac{h^{d-4}d}{4i}
\s
um_{i}
\s
um_{jkl
\i
n
\m
athrm{plaqc}(i; jkl)}
\T
r
\d
elta Q(i)
\B
igl(
(P_{lkji} - 1)
-
U_{il} Q(l) U_{lk} Q(k) U_{kl} (P_{kjil} - 1) U_{li}
-
U_{il} Q(l) U_{li}(P_{lkji} - 1) U_{ij} Q(j) U_{ji}
\\\n
otag&
\q
quad
-
U_{ij} () U_{jk} Q(k) U_{kj} Q(j) U_{ji}
\B
igr)
\,
.
\e
nd{align}
%
Hence, the lattice gauge-invariant Usadel equation is
%
\b
egin{align}
[Q(i), Z_2(i) + Z_H(i)] &= 0
\,
,
\\
Z_2(i)
&=
\f
rac{4Dh^{d-2}d}{|
\m
athrm{neigh}|}
\s
um_{j
\i
n
\m
athrm{neigh}(i,j)}
[Q(i) - U_{ij}Q(j)U_{ji}]
\,
,
\\
Z_H(i)
&=
\f
rac{
\a
lpha h^{d-4}d}{4}
\s
um_{jkl
\i
n
\m
athrm{plaqc}(i; jkl)}
\B
igl(
F_{lkji}
\\\n
otag&
\q
quad
-
U_{il} Q(l) U_{lk} Q(k) U_{kl}U_{li} F_{lkji}
\\\n
otag&
\q
quad
-
U_{il} Q(l) U_{li} F_{lkji} U_{ij} Q(j) U_{ji}
\\\n
otag&
\q
quad
-
F_{lkji} U_{ij} U_{jk} Q(k) U_{kj} Q(j) U_{ji}
\B
igr)
\,
,
\q
quad
\q
quad
F_{lkji}
\c
oloneqq
i(1 - P_{lkji})
\,
,
\\
&
\h
at{=}
\f
rac{
\a
lpha h^{d-4} d}{4}
\s
um_{jkl
\i
n
\m
athrm{plaqc}(i; jkl)}
\B
igl(
F_{lkji} - U_{il} Q(l) U_{lk} Q(k) U_{kl}U_{li} F_{lkji}
\\\n
otag&
\q
quad
+
Q(i) F_{lkji} Q(i) - U_{il} Q(l) U_{li} F_{lkji} U_{ij} Q(j) U_{ji}
\\\n
otag&
\q
quad
+
F_{lkji} - F_{lkji} U_{ij} U_{jk} Q(k) U_{kj} Q(j) U_{ji}
\B
igr)
\e
nd{align}
%
In the discretization of the $F_{
\m
u
\n
u}$ term, we added
$[Q(i),F_{lkji} + Q(i)F_{lkji}Q(i)]=0$ to the equation, so that the
leading order in $h$ of the continuum expansion of $Z_H$ is canceled.
We can verify that
%
\b
egin{sageblock}
Fp = I
*
(1 - P4321)
ZH = (
Fp - U14
*Q4val*
U43
*Q3val*
U32
*U21*
Fp
+
Q1val
*Fp*
Q1val - U14
*Q4val*
U41
*Fp*
U12
*Q2val*
U21
+
Fp - Fp
*U12*
U23
*Q3val*
U32
*Q2val*
U21)
\e
nd{sageblock}
\s
ubsection{Implementation}
The above is sufficient for numerical implementation: it is not
necessary to find out the saddle point equation symbolically. It can
be deduced by parametrizing first so that $Q^2=1$ and then using
automatic differentiation (AD). Only a routine evaluating the value of
the action is then needed.
When looking for the saddle point in equilibrium, the problem becomes
even simpler; $Q$ has then additional restrictions, and we are looking
for the minimum of the free energy $S$.
\b
ibliography{socquestion}
\e
nd{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment