• R/O
  • HTTP
  • SSH
  • HTTPS

python: 提交

libtetrabz python package


Commit MetaInfo

修訂cc1bb06250ff90967d1a30418cb033d8e8de910d (tree)
時間2021-11-17 12:25:56
作者Mitsuaki Kawamura <kawamitsuaki@gmai...>
CommiterMitsuaki Kawamura

Log Message

Add information of tutorial notebook and manual into readme

Change Summary

差異

--- a/README.md
+++ b/README.md
@@ -4,12 +4,17 @@ Libtetrabz is a library which perform efficiently the Brillouin-zone
44 integration in the electronic structure calculation in a solid by
55 using the tetrahedron method.
66
7-## Manual
7+## Quick start guide
88
9+To experience libtetrabz, please open the following python notebook with jupyter, Google colab, etc.
910
11+https://libtetrabz.osdn.jp/python/libtetrabz_tutorial.ipynb
1012
11-## For citing libtetrabz
13+## Manual
1214
15+https://libtetrabz.osdn.jp/python/
16+
17+## For citing libtetrabz
1318 We would appreciate if you cite the following article in your
1419 research with libtetrabz.
1520
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -3,8 +3,15 @@
33 You can adapt this file completely to your liking, but it should at least
44 contain the root `toctree` directive.
55
6-Welcome to libtetrabz documentation!
7-====================================
6+libtetrabz Python Manual
7+========================
8+
9+Quick guide
10+-----------
11+
12+To experience libtetrabz, please open the following python notebook with jupyter, Google colab, etc.
13+
14+:download:`Tutorial notebook <../src/libtetrabz_tutorial.ipynb>`
815
916 .. toctree::
1017 :maxdepth: 2
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
11 [metadata]
22 name = libtetrabz
3-version = 0.0.1
3+version = 0.0.2
44 author = Mitsuaki Kawamura
55 author_email = kawamitsuaki@gmail.com
66 description = Optimized tetrahedron method to perform brillouin-zone integral
--- a/src/dos.py
+++ /dev/null
@@ -1,32 +0,0 @@
1-import time
2-
3-import numpy
4-import libtetrabz
5-import matplotlib.pyplot as plt
6-import matplotlib
7-
8-
9-bvec = numpy.array([[10.0, 0.0, 0.0],
10- [0.0, 10.0, 0.0],
11- [0.0, 0.0, 10.0]])
12-
13-ng0 = 10
14-nb = 1
15-ng = numpy.array([ng0, ng0, ng0])
16-eig = numpy.empty([ng[0], ng[1], ng[2], nb], dtype=numpy.float_)
17-for i0 in range(ng[0]):
18- for i1 in range(ng[1]):
19- for i2 in range(ng[2]):
20- kvec = 2.0*numpy.pi*numpy.array([i0, i1, i2]) / ng[0:3]
21- eig[i0, i1, i2, 0] = - numpy.cos(kvec).sum(0)
22-
23-e0 = numpy.linspace(-3, 3, 100)
24-
25-t0 = time.time()
26-wght = libtetrabz.dos(bvec, eig, e0)
27-t1 = time.time()
28-print("Time", t1-t0, "sec", wght.sum())
29-dos = wght.sum(3).sum(2).sum(1).sum(0)
30-matplotlib.use('TkAgg')
31-plt.plot(e0, dos)
32-plt.show()
--- a/src/libtetrabz_tutorial.ipynb
+++ b/src/libtetrabz_tutorial.ipynb
@@ -1,6 +1,7 @@
11 {
22 "cells": [
33 {
4+ "attachments": {},
45 "cell_type": "markdown",
56 "metadata": {
67 "id": "pahorUv9vKeB"
@@ -28,6 +29,7 @@
2829 ]
2930 },
3031 {
32+ "attachments": {},
3133 "cell_type": "markdown",
3234 "metadata": {
3335 "id": "dGU3CIgJipXD"
@@ -189,6 +191,7 @@
189191 ]
190192 },
191193 {
194+ "attachments": {},
192195 "cell_type": "markdown",
193196 "metadata": {},
194197 "source": [
@@ -242,6 +245,13 @@
242245 ]
243246 },
244247 {
248+ "attachments": {
249+ "libtetrabz.svg": {
250+ "image/svg+xml": [
251+ "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTAwbW0iCiAgIGhlaWdodD0iMTAwbW0iCiAgIHZpZXdCb3g9IjAgMCAxMDAgMTAwIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc4IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjMgKDI0MDU1NDYsIDIwMTgtMDMtMTEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJ0ZXRyYS5zdmciCiAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0iL2hvbWUva2F3YW11cmEvcHJvZ3JhbS9saWJ0ZXRyYWJ6L2RvYy9maWdzL3RldHJhLnBuZyIKICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9Ijk2IgogICBpbmtzY2FwZTpleHBvcnQteWRwaT0iOTYiPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMyIj4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIKICAgICAgIGlua3NjYXBlOnZwX3g9Ii0xOS41MTA2NzUgOiAxNjQuNTM2MTYgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDk5OS45OTk5NiA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF96PSIxNDIuMTEzNTUgOiAxNDYuNjI5MTEgOiAxIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjEwNSA6IDk4Ljk5OTk5NiA6IDEiCiAgICAgICBpZD0icGVyc3BlY3RpdmU4MTUiIC8+CiAgPC9kZWZzPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxLjQiCiAgICAgaW5rc2NhcGU6Y3g9IjI0OC4yNDU0MSIKICAgICBpbmtzY2FwZTpjeT0iMTcwLjQyMjU2IgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJtbSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTQ3MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI4NDEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjY0IgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyMyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGlua3NjYXBlOnNuYXAtZ2xvYmFsPSJmYWxzZSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSLjg6zjgqTjg6Tjg7wgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwtMTk3KSI+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzAwMDBmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC41O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDQ2LjQ0OTYzMSwxOTkuMjk4NTYgMTIuOTYyNTcsMzIuMDcyMzQgMzAuMTM0NjUsLTIwLjk4MDY2IHoiCiAgICAgICBpZD0icGF0aDg5NCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6IzAwZmYwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC41O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDY1LjU1OTQwMywyMzguMDAwMjYgMzAuMTM0NjUsMjYuNDA3MyBWIDIxNy4wMTk2IFoiCiAgICAgICBpZD0icGF0aDg5NC0zIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojYjRiNGI0O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNjUuNTU5NDAzLDIzOC4wMDAyNiAzMC4xMzQ2NSwyNi40MDczIC00My4wOTcyMiwtMTEuMDkxNjkgeiIKICAgICAgIGlkPSJwYXRoODk0LTEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNiNGI0YjQ7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA0OS42NTY4NjgsMjYyLjQwMzAzIDEyLjk2MjU3LDMyLjA3MjM1IHYgLTQ3LjM4Nzk2IHoiCiAgICAgICBpZD0icGF0aDg5NC05IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMDBmZjAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNjIuNjE5NDM4LDI0Ny4wODc0MiB2IDQ3LjM4Nzk2IGwgMzAuMTM0NjUsLTIwLjk4MDY2IHoiCiAgICAgICBpZD0icGF0aDg5NC01IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojYjRiNGI0O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gNDguMDUzMjQ5LDI0MS42MDg0IDMuODIwMTQ0LDI3Ny45MDQ2NyAzNS4wOTA2NzksMjU2LjkyNDAxIFoiCiAgICAgICBpZD0icGF0aDg5NC0yNSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6I2I0YjRiNDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC41O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDQ2LjQ0OTYzMSwxOTkuMjk4NTYgdiA0Ny4zODc5NSBsIDEyLjk2MjU3LC0xNS4zMTU2MSB6IgogICAgICAgaWQ9InBhdGg4OTQtMTAiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNiNGI0YjQ7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSA1OS40MTIyMDEsMjMxLjM3MDkgLTEyLjk2MjU3LDE1LjMxNTYxIDQzLjA5NzIyLC0zNi4yOTYyNyB6IgogICAgICAgaWQ9InBhdGg4OTQtMTEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0iTSAzOC40MzE1NDgsMjAwLjA0Nzk4IDcuMTYxMDEzMSwyMjEuMDI4NjQgNTEuMzk0MTE4LDIzMi4xMjAzMiBaIgogICAgICAgaWQ9InBhdGg4OTQtMCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6I2I0YjRiNDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC41O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDcuMTYxMDEzMSwyMjEuMDI4NjQgMzEuMjcwNTM0OSwyNi40MDcyOSAxMi45NjI1NywtMTUuMzE1NjEgeiIKICAgICAgIGlkPSJwYXRoODk0LTQiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNmZjAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0iTSA1Mi43MzA0NjYsMjQ4LjI5MDE0IDguNDk3MzYwNywyODQuNTg2NDEgNTIuNzMwNDY2LDI5NS42NzgxIFoiCiAgICAgICBpZD0icGF0aDg5NC04IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojZmYwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMy44MjAxNDQsMjMwLjUxNjcyIHYgNDcuMzg3OTUgTCA0OC4wNTMyNDksMjQxLjYwODQgWiIKICAgICAgIGlkPSJwYXRoODk0LTIiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjIiAvPgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZToyMC4wMTM2NTI4cHg7bGluZS1oZWlnaHQ6MS4yNTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6I2ZmZmYwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC41O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICB4PSItNDUuNzkzMTU2IgogICAgICAgeT0iMzQxLjU4NTUxIgogICAgICAgaWQ9InRleHQ4NTYiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjUwODA5NjcsLTAuMTg2Mzg1MDIsMC4yNjQ0OTMwOSwwLjYzMDM5ODg2LDAsMCkiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW44NTQiCiAgICAgICAgIHg9Ii00NS43OTMxNTYiCiAgICAgICAgIHk9IjM0MS41ODU1MSIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmYwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC41O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiPkxpPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zaXplOjIwLjAxMzY1MjhweDtsaW5lLWhlaWdodDoxLjI1O2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7ZmlsbDojZmZmZjAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIHg9Ii0yMC45Nzg2ODUiCiAgICAgICB5PSIzMzkuNDQ4NjQiCiAgICAgICBpZD0idGV4dDg2MCIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuNTA4MDk2NywtMC4xODYzODUwMiwwLjI2NDQ5MzA5LDAuNjMwMzk4ODYsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3Bhbjg1OCIKICAgICAgICAgeD0iLTIwLjk3ODY4NSIKICAgICAgICAgeT0iMzM5LjQ0ODY0IgogICAgICAgICBzdHlsZT0iZmlsbDojZmZmZjAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSI+YjwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZToxNi41ODk0MTI2OXB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMGZmZjk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgeD0iMTY1LjIxMjAxIgogICAgICAgeT0iMTYxLjE2MzgyIgogICAgICAgaWQ9InRleHQ4ODUiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjY4MTQ1OTY1LDAuOTA1OTE1MDEsLTAuNjgxNDU5NjUsMC41NjE1MjMzLDAsMCkiPjx0c3BhbgogICAgICAgICBzb2RpcG9kaTpyb2xlPSJsaW5lIgogICAgICAgICBpZD0idHNwYW44ODMiCiAgICAgICAgIHg9IjE2NS4yMTIwMSIKICAgICAgICAgeT0iMTYxLjE2MzgyIgogICAgICAgICBzdHlsZT0iZmlsbDojMDBmZmY5O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZSI+VGV0PC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zaXplOjE2LjU4OTQxMjY5cHg7bGluZS1oZWlnaHQ6MS4yNTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC41O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICB4PSIyMDIuODI0NzciCiAgICAgICB5PSIxNjAuMzE3MDUiCiAgICAgICBpZD0idGV4dDg4OSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuNjgxNDU5NjUsMC45MDU5MTUwMSwtMC42ODE0NTk2NSwwLjU2MTUyMzMsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3Bhbjg4NyIKICAgICAgICAgeD0iMjAyLjgyNDc3IgogICAgICAgICB5PSIxNjAuMzE3MDUiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMGZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIj5yYTwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZToyMi44ODMyODc0M3B4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZjAwZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgeD0iLTEyMi43ODE4NiIKICAgICAgIHk9IjI1My42NjY0MyIKICAgICAgIGlkPSJ0ZXh0ODkzIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC41NjIxMTU3LC0xLjI2OTkzNjksMC41NjIxMTU3LDAuNTA5MDU2MzEsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3Bhbjg5MSIKICAgICAgICAgeD0iLTEyMi43ODE4NiIKICAgICAgICAgeT0iMjUzLjY2NjQzIgogICAgICAgICBzdHlsZT0iZmlsbDojZmYwMGZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZSI+QjwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZToyMi44ODMyODc0M3B4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiNmZjAwZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgeD0iLTk5Ljc3MjkwMyIKICAgICAgIHk9IjI1Mi43NjU4MSIKICAgICAgIGlkPSJ0ZXh0ODk3IgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC41NjIxMTU3LC0xLjI2OTkzNjksMC41NjIxMTU3LDAuNTA5MDU2MzEsMCwwKSI+PHRzcGFuCiAgICAgICAgIHNvZGlwb2RpOnJvbGU9ImxpbmUiCiAgICAgICAgIGlkPSJ0c3Bhbjg5NSIKICAgICAgICAgeD0iLTk5Ljc3MjkwMyIKICAgICAgICAgeT0iMjUyLjc2NTgxIgogICAgICAgICBzdHlsZT0iZmlsbDojZmYwMGZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZSI+WjwvdHNwYW4+PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg=="
252+ ]
253+ }
254+ },
245255 "cell_type": "markdown",
246256 "metadata": {},
247257 "source": [
@@ -255,7 +265,8 @@
255265 "If we set $k_{\\rm F}=1$,\n",
256266 "$$\n",
257267 "\\chi(q) = 2 \\pi \\left(1 + \\frac{1 - q^2/4}{q} \\log\\left|\\frac{q+2}{q-2} \\right|\\right)\n",
258- "$$"
268+ "$$\n",
269+ "![libtetrabz.svg](attachment:libtetrabz.svg)"
259270 ]
260271 },
261272 {
@@ -423,7 +434,7 @@
423434 },
424435 "source": [
425436 "## 4, Multiband, low dimension, and partial DOS\n",
426- "We caonsider the simple honeycomb lattice which has two orbitals (bands) in a unit cell."
437+ "We caonsider the simple honeycomb lattice which has two orbitals (bands) in a unit cell.\n"
427438 ]
428439 },
429440 {
--- a/src/lindhard.py
+++ /dev/null
@@ -1,66 +0,0 @@
1-import numpy
2-import libtetrabz
3-import matplotlib.pyplot as plt
4-import matplotlib
5-
6-bvec = numpy.array([[3.0, 0.0, 0.0],
7- [0.0, 3.0, 0.0],
8- [0.0, 0.0, 3.0]])
9-VBZ = abs(numpy.linalg.det(bvec))
10-
11-ng0 = 10
12-nb = 1
13-ng = numpy.array([ng0, ng0, ng0])
14-eig = numpy.empty([ng[0], ng[1], ng[2], nb], dtype=numpy.float_)
15-
16-ef = 0.5
17-qmax = 4.0
18-
19-eig1 = numpy.empty([ng[0], ng[1], ng[2], nb], dtype=numpy.float_)
20-eig2 = numpy.empty([ng[0], ng[1], ng[2], nb], dtype=numpy.float_)
21-qx = numpy.arange(0.0, qmax, 0.4)
22-chi = numpy.empty(qx.shape, dtype=numpy.float_)
23-for iq in range(qx.shape[0]):
24- print(iq, "in", qx.shape[0])
25- #
26- qvec = numpy.array([qx[iq], 0.0, 0.0])
27- #
28- for i0 in range(ng[0]):
29- for i1 in range(ng[1]):
30- for i2 in range(ng[2]):
31- #
32- ikvec = numpy.array([i0, i1, i2])
33- for ii in range(3):
34- if ikvec[ii] * 2 >= ng[ii]:
35- ikvec[ii] += - ng[ii]
36- kvec = ikvec[0:3] / ng[0:3]
37- kvec[0:3] = kvec.dot(bvec)
38- #
39- eig1[i0, i1, i2, 0] = 0.5 * kvec.dot(kvec) - ef
40- #
41- kvec[0:3] += qvec[0:3]
42- eig2[i0, i1, i2, 0] = 0.5 * kvec.dot(kvec) - ef
43- #
44- #
45- if iq == 0:
46- e0 = numpy.array([0.0])
47- wght = libtetrabz.dos(bvec, eig1, e0)
48- chi[iq] = wght.sum() * VBZ / (4.0*numpy.pi)
49- else:
50- wght = libtetrabz.polstat(bvec, eig1, eig2)
51- chi[iq] = wght.sum() * VBZ / (4.0 * numpy.pi) * 2.0
52- #
53-matplotlib.use('TkAgg')
54-qx0 = numpy.arange(0.0, qmax, 0.011)
55-chi0 = qx0.copy()
56-for iq in range(qx0.shape[0]):
57- if qx0[iq] < 1.0e-8:
58- chi0[iq] = 1.0
59- elif abs(qx0[iq] - 2.0) < 1.0e-8:
60- chi0[iq] = 0.5
61- else:
62- chi0[iq] = 0.5 + 0.5 / qx0[iq] * (1 - 0.25 * qx0[iq] ** 2) * numpy.log(numpy.abs((qx0[iq] + 2) / (qx0[iq] - 2)))
63-plt.plot(qx0, chi0, label="Exact")
64-plt.plot(qx, chi, label="Calc", linestyle="None", marker="o")
65-plt.legend()
66-plt.show()
--- a/src/tutorial.ipynb
+++ /dev/null
@@ -1,262 +0,0 @@
1-{
2- "cells": [
3- {
4- "cell_type": "code",
5- "execution_count": 1,
6- "id": "4cdce61d",
7- "metadata": {},
8- "outputs": [
9- {
10- "name": "stderr",
11- "output_type": "stream",
12- "text": [
13- "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\lib\\site-packages\\numpy\\_distributor_init.py:32: UserWarning: loaded more than 1 DLL from .libs:\n",
14- "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\lib\\site-packages\\numpy\\.libs\\libopenblas.WCDJNK7YVMPZQ2ME2ZZHJJRJ3JIKNDB7.gfortran-win_amd64.dll\n",
15- "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\lib\\site-packages\\numpy\\.libs\\libopenblas.XWYDX2IKJW2NMTWSFYNGFUWKQU3LYTCZ.gfortran-win_amd64.dll\n",
16- " stacklevel=1)\n"
17- ]
18- }
19- ],
20- "source": [
21- "import numpy\n",
22- "import libtetrabz\n",
23- "import matplotlib.pyplot as plt"
24- ]
25- },
26- {
27- "cell_type": "code",
28- "execution_count": 2,
29- "id": "43f60703",
30- "metadata": {},
31- "outputs": [],
32- "source": [
33- "bvec=numpy.array([[10.0,0.0,0.0],\n",
34- " [0.0,10.0,0.0],\n",
35- " [0.0,0.0,10.0]])"
36- ]
37- },
38- {
39- "cell_type": "code",
40- "execution_count": 3,
41- "id": "bb4b70ad",
42- "metadata": {},
43- "outputs": [],
44- "source": [
45- "ng0 = 10\n",
46- "nb = 1\n",
47- "ng = numpy.array([ng0, ng0, ng0])\n",
48- "eig = numpy.empty([ng[0], ng[1], ng[2], nb], dtype=numpy.float_)\n",
49- "for i0 in range(ng[0]):\n",
50- " for i1 in range(ng[1]):\n",
51- " for i2 in range(ng[2]):\n",
52- " kvec = 2.0*numpy.pi*numpy.array([i0, i1, i2]) / ng[0:3]\n",
53- " eig[i0, i1, i2, 0] = - numpy.cos(kvec).sum(0)"
54- ]
55- },
56- {
57- "cell_type": "code",
58- "execution_count": 4,
59- "id": "4ffb1f01",
60- "metadata": {},
61- "outputs": [],
62- "source": [
63- "e0=numpy.linspace(-3, 3, 100)"
64- ]
65- },
66- {
67- "cell_type": "code",
68- "execution_count": 5,
69- "id": "7bc36b9c",
70- "metadata": {
71- "scrolled": false
72- },
73- "outputs": [],
74- "source": [
75- "wght=libtetrabz.dos(bvec,eig,e0)"
76- ]
77- },
78- {
79- "cell_type": "code",
80- "execution_count": 6,
81- "id": "75396ee0",
82- "metadata": {},
83- "outputs": [],
84- "source": [
85- "dos=wght.sum(3).sum(2).sum(1).sum(0)"
86- ]
87- },
88- {
89- "cell_type": "code",
90- "execution_count": 7,
91- "id": "72caf309",
92- "metadata": {},
93- "outputs": [
94- {
95- "data": {
96- "text/plain": [
97- "[<matplotlib.lines.Line2D at 0x160bd035c08>]"
98- ]
99- },
100- "execution_count": 7,
101- "metadata": {},
102- "output_type": "execute_result"
103- },
104- {
105- "data": {
106- "image/png": "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\n",
107- "text/plain": [
108- "<Figure size 432x288 with 1 Axes>"
109- ]
110- },
111- "metadata": {
112- "needs_background": "light"
113- },
114- "output_type": "display_data"
115- }
116- ],
117- "source": [
118- "plt.plot(e0,dos)"
119- ]
120- },
121- {
122- "cell_type": "code",
123- "execution_count": 8,
124- "id": "ec75ef83",
125- "metadata": {},
126- "outputs": [],
127- "source": [
128- "ef, wght, iteration=libtetrabz.fermieng(bvec, eig, 0.4)"
129- ]
130- },
131- {
132- "cell_type": "code",
133- "execution_count": 9,
134- "id": "e88213bb",
135- "metadata": {},
136- "outputs": [
137- {
138- "data": {
139- "text/plain": [
140- "0.3999999999670125"
141- ]
142- },
143- "execution_count": 9,
144- "metadata": {},
145- "output_type": "execute_result"
146- }
147- ],
148- "source": [
149- "wght.sum()"
150- ]
151- },
152- {
153- "cell_type": "code",
154- "execution_count": 10,
155- "id": "4c259f40",
156- "metadata": {},
157- "outputs": [
158- {
159- "data": {
160- "text/plain": [
161- "-0.3498372919857502"
162- ]
163- },
164- "execution_count": 10,
165- "metadata": {},
166- "output_type": "execute_result"
167- }
168- ],
169- "source": [
170- "ef"
171- ]
172- },
173- {
174- "cell_type": "code",
175- "execution_count": 11,
176- "id": "09446911",
177- "metadata": {},
178- "outputs": [
179- {
180- "data": {
181- "text/plain": [
182- "28"
183- ]
184- },
185- "execution_count": 11,
186- "metadata": {},
187- "output_type": "execute_result"
188- }
189- ],
190- "source": [
191- "iteration"
192- ]
193- },
194- {
195- "cell_type": "code",
196- "execution_count": null,
197- "id": "e28c3ef4",
198- "metadata": {},
199- "outputs": [],
200- "source": [
201- "with open(\"sc.frmsf\", \"w\") as f:\n",
202- " print(ng[0], ng[1], ng[2], file=f)\n",
203- " print(1, file=f)\n",
204- " print(nb, file=f)\n",
205- " for ii in range(3):\n",
206- " print(bvec[ii, 0], bvec[ii, 1], bvec[ii, 2], file=f)\n",
207- " for ib in range(nb):\n",
208- " for i0 in range(ng[0]):\n",
209- " for i1 in range(ng[1]):\n",
210- " for i2 in range(ng[2]):\n",
211- " print(eig[i0, i1, i2, ib]-ef, file=f)"
212- ]
213- },
214- {
215- "cell_type": "code",
216- "execution_count": null,
217- "id": "ba33dd26",
218- "metadata": {},
219- "outputs": [],
220- "source": [
221- "# Lindhard function"
222- ]
223- },
224- {
225- "cell_type": "markdown",
226- "id": "564dd3eb",
227- "metadata": {},
228- "source": [
229- "$\\varepsilon$"
230- ]
231- },
232- {
233- "cell_type": "code",
234- "execution_count": null,
235- "id": "9fcff06e",
236- "metadata": {},
237- "outputs": [],
238- "source": []
239- }
240- ],
241- "metadata": {
242- "kernelspec": {
243- "display_name": "Python 3 (ipykernel)",
244- "language": "python",
245- "name": "python3"
246- },
247- "language_info": {
248- "codemirror_mode": {
249- "name": "ipython",
250- "version": 3
251- },
252- "file_extension": ".py",
253- "mimetype": "text/x-python",
254- "name": "python",
255- "nbconvert_exporter": "python",
256- "pygments_lexer": "ipython3",
257- "version": "3.7.8"
258- }
259- },
260- "nbformat": 4,
261- "nbformat_minor": 5
262-}
Show on old repository browser