Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "ae7688ac",
"metadata": {},
"outputs": [],
"source": [
"from pseudowalls import *"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "cc0d5079",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"Chern Character:\\begin{array}{l} \\mathrm{ch}_{0} = 1 \\\\ \\mathrm{ch}_{1} = 0 \\ell^{1} \\end{array}"
],
"text/plain": [
"<pseudowalls.chern_character.Chern_Char object at 0x7f1b13fac400>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"O = Chern_Char(1,0)\n",
"O"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "2a351730",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"Chern Character:\\begin{array}{l} \\mathrm{ch}_{0} = 1 \\\\ \\mathrm{ch}_{1} = 1 \\ell^{1} \\end{array}"
],
"text/plain": [
"<pseudowalls.chern_character.Chern_Char object at 0x7f1b14057400>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"O1 = exponential_chern(1,1)\n",
"O1"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "feb674aa",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"Chern Character:\\begin{array}{l} \\mathrm{ch}_{0} = 1 \\\\ \\mathrm{ch}_{1} = -1 \\ell^{1} \\end{array}"
],
"text/plain": [
"<pseudowalls.chern_character.Chern_Char object at 0x7f1b140577c0>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"O1inv = exponential_chern(-1,1)\n",
"O1inv"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ec14fd95",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/latex": [
"Chern Character:\\begin{array}{l} \\mathrm{ch}_{0} = 1 \\\\ \\mathrm{ch}_{1} = 2 \\ell^{1} \\end{array}"
],
"text/plain": [
"<pseudowalls.chern_character.Chern_Char object at 0x7f1b14054f40>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"O2 = O1 * O1\n",
"O2"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "45fcb764",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"Chern Character:\\begin{array}{l} \\mathrm{ch}_{0} = 0 \\\\ \\mathrm{ch}_{1} = 1 \\ell^{1} \\end{array}"
],
"text/plain": [
"<pseudowalls.chern_character.Chern_Char object at 0x7f1b0bb9bfa0>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"O_x = Chern_Char(0,1)\n",
"O_x"
]
},
{
"cell_type": "code",
"execution_count": 117,
"id": "a0847d59",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"Graphics object consisting of 21 graphics primitives"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def plot_central_charge(chern, name):\n",
" Z = stability.Mumford().central_charge(chern)\n",
" x = Z.real()\n",
" y = Z.imag()\n",
" argument = arctan(y/x) if x != 0 else pi\n",
" if argument <= 0:\n",
" argument += pi\n",
" \n",
" return point(\n",
" Z,\n",
" marker = \"o\",\n",
" size = 600,\n",
" rgbcolor = \"white\",\n",
" #markeredgecolor = \"purple\",\n",
" zorder = 100\n",
" ) + point(\n",
" Z,\n",
" marker = name,\n",
" size = 500,\n",
" rgbcolor = \"red\",\n",
" zorder = 101\n",
" ) + line(\n",
" (0, Z),\n",
" rgbcolor = \"red\",\n",
" linestyle = \"dashed\",\n",
" zorder = 99\n",
" ) + disk(\n",
" (0,0),\n",
" float((pi-argument/2)/pi),\n",
" (0, float(argument)),\n",
" alpha=.2,\n",
" fill=False,\n",
" thickness=1,\n",
" rgbcolor=\"purple\"\n",
" )\n",
"\n",
"p = sum(\n",
" plot_central_charge(chern, name)\n",
" for chern, name in [\n",
" (O1, r\"$\\mathcal{O}(1)$\"),\n",
" (O, r\"$\\mathcal{O}_X$\"),\n",
" (O1inv, r\"$\\mathcal{O}(-1)$\"),\n",
" (O2, r\"$\\mathcal{O}(2)$\"),\n",
" (O_x, r\"$\\mathcal{O}_p$\")\n",
" ]\n",
")\n",
"\n",
"xmax = (2.5)\n",
"xmin = (-2.5)\n",
"ymin = (-0.25)\n",
"ymax = (1.5)\n",
"aspect_ratio = (1)\n",
"\n",
"p += polygon(\n",
" [\n",
" (xmax + 1,0),\n",
" (xmin - 1,0),\n",
" (xmin - 1,ymax + 1),\n",
" (xmax + 1,ymax + 1)\n",
" ],\n",
" rgbcolor = \"yellow\",\n",
" alpha = 0.2,\n",
" zorder = 102\n",
")\n",
"\n",
"p.xmax(xmax)\n",
"p.xmin(xmin)\n",
"p.ymin(ymin)\n",
"p.ymax(ymax)\n",
"p.set_aspect_ratio(aspect_ratio)\n",
"\n",
"p.axes_labels([r\"$\\mathcal{R}$\",r\"$\\mathcal{I}$\"])\n",
"p.show()"
]
},
{
"cell_type": "code",
"execution_count": 96,
"id": "011017ec",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1/4*pi"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"z = 1 + I\n",
"arctan(1)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 9.7",
"language": "sage",
"name": "sagemath"
},
"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.8"
}
},
"nbformat": 4,
"nbformat_minor": 5
}