# ore_algebra.examples.fcc¶

Face-centered cubic lattices

The following examples are adapted from Koutschan’s study of the face-centered cubic lattice (Ch. Koutschan, Lattice Green’s Functions of the Higher-Dimensional Face-Centered Cubic Lattices, J. Phys. A: Math. Theor. 46 (2013) 125005, arXiv:1108.2164).

sage: from ore_algebra import *
sage: Dops, z, Dz = DifferentialOperators(QQ, "z")


Koutschan shows that the lattice Green’s function (LGF) of the four-dimensional face-centered cubic is annihilated be the following operator:

sage: from ore_algebra.examples import fcc
sage: fcc.dop4
(9*z^10 + ... - 4608*z^3)*Dz^4 + ... + 3072*z


Using this differential equation, he computes the value of the LGF at z=1 (and from there the return probability of the lattice):

sage: fcc.dop4.numerical_solution([0, 0, 0, 1], [0, 1], 1e-60)
[1.10584379792120476018299547088585107443954623663875285836...]
+ [+/- ...]*I


Note that the result is complex even though that particular solution is real-valued because some local solutions involve logarithms.

Similarly, in dimension five, Koutschan obtains:

sage: fcc.dop5
(752544*z^17 + ... - 1012500000000*z^4)*Dz^6 + ... + 810000000000


In this case, the segment [0, 1] contains a singularity of the operator:

sage: fcc.dop5.numerical_solution([0, 0, 0, 0, 1, 0], [0, 1])
Traceback (most recent call last):
...
ValueError: Step 0 --> 1 passes through or too close to singular point
0.2050... (to compute the connection to a singular point, make it a vertex
of the path)


We can nevertheless evaluate the solution of interest using an integration path that passes above the singular point:

sage: fcc.dop5.numerical_solution([0, 0, 0, 0, 1, 0], [0, 1/5+i/2, 1], 1e-60) # (1.3 s)
[1.04885235135491485162956376369999275945402550465206640313845...] + [+/-...]*I


In the six-dimensional case, Koutschan gives the following operator:

sage: fcc.dop6
(27122036833024*z^43 + ... + 2276991208061142220800000000000000000*z^6)*Dz^8
+ ... - 2428790621931885035520000000000000000
sage: ini = [0, 0, 0, 0, 0, 1, 0, 0]
sage: fcc.dop6.numerical_solution(ini, [0, 3/2 + i, 1], 1e-60) # long time (9.3 s)
[1.02774910062749883985936367927396850209243990900114872425...] + [...]*I


TESTS:

An experimental feature:

sage: fcc.dop5.numerical_solution([0, 0, 0, 0, 1, 0], [0, 1], assume_analytic=True) # (1.1 s)
[1.0488523513549...] + [+/- ...]*I