Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
M
MeanFi
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Quantum Tinkerer
MeanFi
Commits
c7c0707a
Commit
c7c0707a
authored
10 months ago
by
Johanna Zijderveld
Browse files
Options
Downloads
Patches
Plain Diff
try to translate tEnergyTest.ipynb to the refactored code
parent
8af36681
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!4
Interface refactoring
Pipeline
#176660
skipped
Changes
1
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
examples/mexican_hat.ipynb
+158
-0
158 additions, 0 deletions
examples/mexican_hat.ipynb
with
158 additions
and
0 deletions
examples/mexican_hat.ipynb
0 → 100644
+
158
−
0
View file @
c7c0707a
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from codes.solvers import solver\n",
"from codes.tb import transforms, utils\n",
"from codes.model import Model\n",
"from codes import mf\n",
"from codes import observables"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"def density_matrix_tb(hop_vecs, mf_sol, filling=2): \n",
" fermi_energy = mf.fermi_on_grid(mf_sol, filling)\n",
" rho_grid = mf.density_matrix(mf_sol, fermi_energy)\n",
" rho_tb = transforms.kham_to_tb(rho_grid, hop_vecs)\n",
" return rho_tb\n",
"\n",
"def total_energy(ham_tb, rho_tb): \n",
" return np.real(observables.expectation_value(rho_tb, ham_tb))\n"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"U0 = 1\n",
"filling = 2\n",
"\n",
"hopp = np.kron(np.array([[0, 1], [0, 0]]), np.eye(2))\n",
"h_0 = {(0,): hopp + hopp.T.conj(), (1,): hopp, (-1,): hopp.T.conj()}\n",
"h_int_U0 = {\n",
" (0,): U0 * np.kron(np.eye(2), np.ones((2, 2))),\n",
" }\n",
"\n",
"\n",
"def model_U(U):\n",
" h_int = {\n",
" (0,): U * np.kron(np.eye(2), np.ones((2, 2))),\n",
" }\n",
" return Model(h_0=h_0, h_int=h_int, filling=filling)\n",
"\n",
"hop_vecs = model_U(U0).h_0.keys()"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"nk = 200\n",
"ks = np.linspace(-np.pi, np.pi, nk, endpoint=False)\n",
"hamiltonians_0 = transforms.tb_to_khamvector(h_0, nk, ndim=1, ks=ks) \n",
"guess = utils.generate_guess(frozenset(h_int_U0), len(list(h_0.values())[0]))\n",
"\n",
"def groundstate(U):\n",
" _model = model_U(U)\n",
" mf_sol = solver(_model, guess, nk=4000)\n",
" \n",
" return mf_sol\n",
"\n",
"mf_sol_groundstate = groundstate(U0)\n",
"mf_sol_groundstate = transforms.tb_to_khamvector(mf_sol_groundstate, nk, ndim=1, ks=ks)\n",
"\n",
"@np.vectorize\n",
"def mfRescaled(alpha, mf0=mf_sol_groundstate):\n",
" hamiltonian = hamiltonians_0 + mf0 * alpha\n",
" rho_tb = density_matrix_tb(hop_vecs, hamiltonian)\n",
" hamiltonian = hamiltonians_0 + np.sign(alpha) * mf0\n",
" hamiltonian_tb = transforms.kham_to_tb(hamiltonian, hop_vecs)\n",
" return total_energy(hamiltonian_tb, rho_tb)\n",
"\n",
"alphas = np.linspace(-5, 5, 301)\n",
"plt.plot(alphas, mfRescaled(alphas), 'o', ms=2)\n",
"plt.plot(-alphas, mfRescaled(alphas), 'o', ms=2)\n",
"plt.axvline(x=1, c=\"k\", ls=\"--\")\n",
"plt.axvline(x=-1, c=\"k\", ls=\"--\")\n",
"plt.ylabel(\"Total Energy\")\n",
"plt.xlabel(r\"$\\alpha$\")\n",
"# plt.ylim(-4.6, -4.5)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(alphas[:-1], np.diff(mfRescaled(alphas)))\n",
"# plt.plot(-alphas[:-1], -np.diff(mfRescaled(alphas)))\n",
"plt.axhline(0, ls='--', c='k')\n",
"plt.axvline(x=1, c=\"k\", ls=\"--\")\n",
"plt.axvline(x=-1, c=\"k\", ls=\"--\")\n",
"# plt.ylim(-4, -2)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "locenv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.11"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
%% Cell type:code id: tags:
```
python
import
numpy
as
np
import
numpy
as
np
import
matplotlib.pyplot
as
plt
from
codes.solvers
import
solver
from
codes.tb
import
transforms
,
utils
from
codes.model
import
Model
from
codes
import
mf
from
codes
import
observables
```
%% Cell type:code id: tags:
```
python
def
density_matrix_tb
(
hop_vecs
,
mf_sol
,
filling
=
2
):
fermi_energy
=
mf
.
fermi_on_grid
(
mf_sol
,
filling
)
rho_grid
=
mf
.
density_matrix
(
mf_sol
,
fermi_energy
)
rho_tb
=
transforms
.
kham_to_tb
(
rho_grid
,
hop_vecs
)
return
rho_tb
def
total_energy
(
ham_tb
,
rho_tb
):
return
np
.
real
(
observables
.
expectation_value
(
rho_tb
,
ham_tb
))
```
%% Cell type:code id: tags:
```
python
U0
=
1
filling
=
2
hopp
=
np
.
kron
(
np
.
array
([[
0
,
1
],
[
0
,
0
]]),
np
.
eye
(
2
))
h_0
=
{(
0
,):
hopp
+
hopp
.
T
.
conj
(),
(
1
,):
hopp
,
(
-
1
,):
hopp
.
T
.
conj
()}
h_int_U0
=
{
(
0
,):
U0
*
np
.
kron
(
np
.
eye
(
2
),
np
.
ones
((
2
,
2
))),
}
def
model_U
(
U
):
h_int
=
{
(
0
,):
U
*
np
.
kron
(
np
.
eye
(
2
),
np
.
ones
((
2
,
2
))),
}
return
Model
(
h_0
=
h_0
,
h_int
=
h_int
,
filling
=
filling
)
hop_vecs
=
model_U
(
U0
).
h_0
.
keys
()
```
%% Cell type:code id: tags:
```
python
nk
=
200
ks
=
np
.
linspace
(
-
np
.
pi
,
np
.
pi
,
nk
,
endpoint
=
False
)
hamiltonians_0
=
transforms
.
tb_to_khamvector
(
h_0
,
nk
,
ndim
=
1
,
ks
=
ks
)
guess
=
utils
.
generate_guess
(
frozenset
(
h_int_U0
),
len
(
list
(
h_0
.
values
())[
0
]))
def
groundstate
(
U
):
_model
=
model_U
(
U
)
mf_sol
=
solver
(
_model
,
guess
,
nk
=
4000
)
return
mf_sol
mf_sol_groundstate
=
groundstate
(
U0
)
mf_sol_groundstate
=
transforms
.
tb_to_khamvector
(
mf_sol_groundstate
,
nk
,
ndim
=
1
,
ks
=
ks
)
@np.vectorize
def
mfRescaled
(
alpha
,
mf0
=
mf_sol_groundstate
):
hamiltonian
=
hamiltonians_0
+
mf0
*
alpha
rho_tb
=
density_matrix_tb
(
hop_vecs
,
hamiltonian
)
hamiltonian
=
hamiltonians_0
+
np
.
sign
(
alpha
)
*
mf0
hamiltonian_tb
=
transforms
.
kham_to_tb
(
hamiltonian
,
hop_vecs
)
return
total_energy
(
hamiltonian_tb
,
rho_tb
)
alphas
=
np
.
linspace
(
-
5
,
5
,
301
)
plt
.
plot
(
alphas
,
mfRescaled
(
alphas
),
'
o
'
,
ms
=
2
)
plt
.
plot
(
-
alphas
,
mfRescaled
(
alphas
),
'
o
'
,
ms
=
2
)
plt
.
axvline
(
x
=
1
,
c
=
"
k
"
,
ls
=
"
--
"
)
plt
.
axvline
(
x
=-
1
,
c
=
"
k
"
,
ls
=
"
--
"
)
plt
.
ylabel
(
"
Total Energy
"
)
plt
.
xlabel
(
r
"
$\alpha$
"
)
# plt.ylim(-4.6, -4.5)
plt
.
show
()
```
%% Output
%% Cell type:code id: tags:
```
python
plt
.
plot
(
alphas
[:
-
1
],
np
.
diff
(
mfRescaled
(
alphas
)))
# plt.plot(-alphas[:-1], -np.diff(mfRescaled(alphas)))
plt
.
axhline
(
0
,
ls
=
'
--
'
,
c
=
'
k
'
)
plt
.
axvline
(
x
=
1
,
c
=
"
k
"
,
ls
=
"
--
"
)
plt
.
axvline
(
x
=-
1
,
c
=
"
k
"
,
ls
=
"
--
"
)
# plt.ylim(-4, -2)
plt
.
show
()
```
%% Output
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