Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <head>
- <meta charset="UTF-8">
- <style>
- .r1 {color: #005f00; text-decoration-color: #005f00}
- .r2 {font-weight: bold}
- .r3 {color: #000080; text-decoration-color: #000080; font-weight: bold}
- .r4 {color: #005f00; text-decoration-color: #005f00; font-weight: bold}
- .r5 {color: #87af00; text-decoration-color: #87af00; font-weight: bold}
- .r6 {color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold}
- .r7 {color: #000080; text-decoration-color: #000080; font-weight: bold; font-style: italic}
- .r8 {color: #005f00; text-decoration-color: #005f00; font-weight: bold; font-style: italic}
- .r9 {color: #87af00; text-decoration-color: #87af00; font-weight: bold; font-style: italic}
- .r10 {color: #7f7f7f; text-decoration-color: #7f7f7f}
- .r11 {color: #000080; text-decoration-color: #000080}
- .r12 {color: #87af00; text-decoration-color: #87af00}
- .r13 {color: #008000; text-decoration-color: #008000; background-color: #f8f8f8; font-weight: bold}
- .r14 {color: #000000; text-decoration-color: #000000; background-color: #f8f8f8}
- .r15 {color: #0000ff; text-decoration-color: #0000ff; background-color: #f8f8f8; font-weight: bold}
- .r16 {background-color: #f8f8f8}
- .r17 {color: #0000ff; text-decoration-color: #0000ff; background-color: #f8f8f8}
- .r18 {color: #008000; text-decoration-color: #008000; background-color: #f8f8f8}
- .r19 {color: #666666; text-decoration-color: #666666; background-color: #f8f8f8}
- .r20 {color: #408080; text-decoration-color: #408080; background-color: #f8f8f8; font-style: italic}
- .r21 {color: #ba2121; text-decoration-color: #ba2121; background-color: #f8f8f8; font-style: italic}
- .r22 {color: #aa22ff; text-decoration-color: #aa22ff; background-color: #f8f8f8; font-weight: bold}
- .r23 {color: #ba2121; text-decoration-color: #ba2121; background-color: #f8f8f8}
- .r24 {color: #800000; text-decoration-color: #800000; font-weight: bold}
- .r25 {font-weight: bold; font-style: italic}
- .r26 {color: #0000ff; text-decoration-color: #0000ff}
- body {
- color: #000000;
- background-color: #ffffff;
- }
- </style>
- </head>
- <html>
- <body>
- <code>
- <pre style="font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace"> Memory usage: <span class="r1">▁▁▁▁▁▁▁▁▁▁▁▁</span> (max: 2.00MB, growth rate: 0%)
- hex_anneal_profile_v06.py: % of time = 100.00% out of 208.12s.
- ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
- <span class="r2"> </span>│<span class="r3">Time</span><span class="r2"> </span>│<span class="r3">––––––</span><span class="r2"> </span>│<span class="r3">––––––</span><span class="r2"> </span>│<span class="r4">Memory</span><span class="r2"> </span>│<span class="r4">––––––</span><span class="r2"> </span>│<span class="r4">–––––––––––</span><span class="r2"> </span>│<span class="r5">Copy</span><span class="r2"> </span>│<span class="r2"> </span>
- <span class="r2"> </span><span class="r6">Line</span><span class="r2"> </span>│<span class="r7">Python</span><span class="r2"> </span>│<span class="r7">native</span><span class="r2"> </span>│<span class="r7">system</span><span class="r2"> </span>│<span class="r8">Python</span><span class="r2"> </span>│<span class="r8">avg</span><span class="r2"> </span>│<span class="r8">timeline</span><span class="r4">/%</span><span class="r2"> </span>│<span class="r9">(MB/s)</span><span class="r2"> </span>│<span class="r2">hex_anneal_profile_v06.py </span>
- ╺━━━━━━┿━━━━━━━┿━━━━━━━┿━━━━━━━┿━━━━━━━━┿━━━━━━━┿━━━━━━━━━━━━━━━┿━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
- <span class="r10"> 1 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 38M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ </span>│<span class="r12"> </span>│<span class="r13">import</span><span class="r14"> </span><span class="r15">numpy</span><span class="r14"> </span><span class="r13">as</span><span class="r14"> </span><span class="r15">np</span><span class="r16"> </span>
- <span class="r10"> 2 </span>│<span class="r11"> 2% </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 81M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ </span>│<span class="r12"> </span>│<span class="r13">import</span><span class="r14"> </span><span class="r15">matplotlib.pyplot</span><span class="r14"> </span><span class="r13">as</span><span class="r14"> </span><span class="r15">plt</span><span class="r16"> </span>
- <span class="r10"> 3 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r13">from</span><span class="r14"> </span><span class="r15">matplotlib.collections</span><span class="r14"> </span><span class="r13">import</span><span class="r14"> LineCollection</span><span class="r16"> </span>
- <span class="r10"> 4 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r13">from</span><span class="r14"> </span><span class="r15">matplotlib</span><span class="r14"> </span><span class="r13">import</span><span class="r14"> colors </span><span class="r13">as</span><span class="r14"> mcolors </span><span class="r16"> </span>
- <span class="r10"> 5 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 38M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ </span>│<span class="r12"> </span>│<span class="r13">from</span><span class="r14"> </span><span class="r15">scipy.optimize</span><span class="r14"> </span><span class="r13">import</span><span class="r14"> minimize</span><span class="r16"> </span>
- <span class="r10"> 6 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r13">import</span><span class="r14"> </span><span class="r15">time</span><span class="r16"> </span>
- <span class="r10"> 7 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 8 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r13">class</span><span class="r14"> </span><span class="r15">Problem</span><span class="r14">():</span><span class="r16"> </span>
- <span class="r10"> 9 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">def</span><span class="r14"> </span><span class="r17">__init__</span><span class="r14">(</span><span class="r18">self</span><span class="r14">, name</span><span class="r19">=</span><span class="r13">None</span><span class="r14">, nmax</span><span class="r19">=12</span><span class="r14">, a_sub</span><span class="r19">=1.</span><span class="r14">, k_v</span>
- <span class="r10"> 10 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> h</span><span class="r19">=1.0</span><span class="r14">, k_bond</span><span class="r19">=2.</span><span class="r14">, R</span><span class="r19">=0.</span><span class="r14">, origin</span><span class="r19">=</span><span class="r14">np</span><span class="r19">.</span><span class="r14">zeros</span>
- <span class="r10"> 11 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">name </span><span class="r19">=</span><span class="r14"> </span><span class="r18">str</span><span class="r14">(name)</span><span class="r16"> </span>
- <span class="r10"> 12 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">nmax </span><span class="r19">=</span><span class="r14"> </span><span class="r18">int</span><span class="r14">(nmax)</span><span class="r16"> </span>
- <span class="r10"> 13 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">a_sub </span><span class="r19">=</span><span class="r14"> </span><span class="r18">float</span><span class="r14">(a_sub)</span><span class="r16"> </span>
- <span class="r10"> 14 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> twopi </span><span class="r19">=</span><span class="r14"> </span><span class="r19">2</span><span class="r14"> </span><span class="r19">*</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">pi</span><span class="r16"> </span>
- <span class="r10"> 15 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> r3o2 </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">sqrt(</span><span class="r19">3</span><span class="r14">) </span><span class="r19">/</span><span class="r14"> </span><span class="r19">2</span><span class="r16"> </span>
- <span class="r10"> 16 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> g </span><span class="r19">=</span><span class="r14"> (twopi </span><span class="r19">/</span><span class="r14"> (</span><span class="r18">self</span><span class="r19">.</span><span class="r14">a_sub </span><span class="r19">*</span><span class="r14"> r3o2)) </span><span class="r19">*</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">array([[</span><span class="r19">0</span>
- <span class="r10"> 17 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">g_sub </span><span class="r19">=</span><span class="r14"> g[::</span><span class="r19">-1</span><span class="r14">] </span><span class="r20"># for purposes of calculati</span>
- <span class="r10"> 18 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">k_vert </span><span class="r19">=</span><span class="r14"> </span><span class="r18">float</span><span class="r14">(k_vert)</span><span class="r16"> </span>
- <span class="r10"> 19 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">a </span><span class="r19">=</span><span class="r14"> </span><span class="r18">float</span><span class="r14">(a)</span><span class="r16"> </span>
- <span class="r10"> 20 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">h </span><span class="r19">=</span><span class="r14"> </span><span class="r18">float</span><span class="r14">(h)</span><span class="r16"> </span>
- <span class="r10"> 21 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">k_bond </span><span class="r19">=</span><span class="r14"> </span><span class="r18">float</span><span class="r14">(k_bond)</span><span class="r16"> </span>
- <span class="r10"> 22 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">R </span><span class="r19">=</span><span class="r14"> </span><span class="r18">float</span><span class="r14">(R)</span><span class="r16"> </span>
- <span class="r10"> 23 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">origin </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">array(origin, dtype</span><span class="r19">=</span><span class="r18">float</span><span class="r14">)</span><span class="r16"> </span>
- <span class="r10"> 24 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">sig </span><span class="r19">=</span><span class="r14"> </span><span class="r18">float</span><span class="r14">(sig)</span><span class="r16"> </span>
- <span class="r10"> 25 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">seed </span><span class="r19">=</span><span class="r14"> </span><span class="r18">int</span><span class="r14">(seed)</span><span class="r16"> </span>
- <span class="r10"> 26 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">initial_hex_lattice(origin</span><span class="r19">=</span><span class="r14">origin)</span><span class="r16"> </span>
- <span class="r10"> 27 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> np</span><span class="r19">.</span><span class="r14">random</span><span class="r19">.</span><span class="r14">seed(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">seed)</span><span class="r16"> </span>
- <span class="r10"> 28 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">random </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">sig </span><span class="r19">*</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">random</span><span class="r19">.</span><span class="r14">random(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">x</span>
- <span class="r10"> 29 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">x_initial </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">x0_init </span><span class="r19">+</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">random</span><span class="r16"> </span>
- <span class="r10"> 30 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">x </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">x_initial</span><span class="r19">.</span><span class="r14">copy() </span><span class="r20"># this array will</span>
- <span class="r10"> 31 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r20"># self.x_final = None</span><span class="r16"> </span>
- <span class="r10"> 32 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">n_atoms </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">x_initial</span><span class="r19">.</span><span class="r14">shape[</span><span class="r19">0</span><span class="r14">]</span><span class="r16"> </span>
- <span class="r10"> 33 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">define_nearest_neighbor_bonds()</span><span class="r16"> </span>
- <span class="r10"> 34 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">calculate_bond_energies()</span><span class="r16"> </span>
- <span class="r10"> 35 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">calculate_surface_energies()</span><span class="r16"> </span>
- <span class="r10"> 36 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 37 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">def</span><span class="r14"> </span><span class="r17">initial_hex_lattice</span><span class="r14">(</span><span class="r18">self</span><span class="r14">, origin):</span><span class="r16"> </span>
- <span class="r10"> 38 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r21">"""generates an N x 3 array of atom locations, o</span>
- <span class="r10"> 39 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r21"> Gaussian noise in 3D. The reduction to 1/6 sl</span>
- <span class="r10"> 40 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> i, j </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">mgrid[</span><span class="r19">-</span><span class="r18">self</span><span class="r19">.</span><span class="r14">nmax:</span><span class="r18">self</span><span class="r19">.</span><span class="r14">nmax</span><span class="r19">+1</span><span class="r14">, </span><span class="r19">-</span><span class="r18">self</span><span class="r19">.</span><span class="r14">nm</span>
- <span class="r10"> 41 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> keep </span><span class="r19">=</span><span class="r14"> (np</span><span class="r19">.</span><span class="r14">abs(i </span><span class="r19">+</span><span class="r14"> j) </span><span class="r19"><=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">nmax) </span><span class="r19">*</span><span class="r14"> </span><span class="r19">~</span><span class="r14">((i </span><span class="r19">==</span><span class="r14"> </span><span class="r19">0</span><span class="r14">)</span>
- <span class="r10"> 42 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> i, j </span><span class="r19">=</span><span class="r14"> [thing[keep] </span><span class="r13">for</span><span class="r14"> thing </span><span class="r22">in</span><span class="r14"> (i, j)]</span><span class="r16"> </span>
- <span class="r10"> 43 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> r3o2 </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">sqrt(</span><span class="r19">3</span><span class="r14">) </span><span class="r19">/</span><span class="r14"> </span><span class="r19">2.</span><span class="r16"> </span>
- <span class="r10"> 44 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> x </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">a </span><span class="r19">*</span><span class="r14"> (i </span><span class="r19">+</span><span class="r14"> </span><span class="r19">0.5</span><span class="r14"> </span><span class="r19">*</span><span class="r14"> j)</span><span class="r16"> </span>
- <span class="r10"> 45 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> y </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">a </span><span class="r19">*</span><span class="r14"> r3o2 </span><span class="r19">*</span><span class="r14"> j</span><span class="r16"> </span>
- <span class="r10"> 46 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> s, c </span><span class="r19">=</span><span class="r14"> [f(np</span><span class="r19">.</span><span class="r14">radians(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">R)) </span><span class="r13">for</span><span class="r14"> f </span><span class="r22">in</span><span class="r14"> (np</span><span class="r19">.</span><span class="r14">sin, </span>
- <span class="r10"> 47 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> x, y </span><span class="r19">=</span><span class="r14"> c </span><span class="r19">*</span><span class="r14"> x </span><span class="r19">-</span><span class="r14"> s </span><span class="r19">*</span><span class="r14"> y, c </span><span class="r19">*</span><span class="r14"> y </span><span class="r19">+</span><span class="r14"> s </span><span class="r19">*</span><span class="r14"> x</span><span class="r16"> </span>
- <span class="r10"> 48 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> z </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">zeros_like(x)</span><span class="r16"> </span>
- <span class="r10"> 49 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r20"># origin = np.array([0, 0, self.h])</span><span class="r16"> </span>
- <span class="r10"> 50 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">x0_init </span><span class="r19">=</span><span class="r14"> origin </span><span class="r19">+</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">vstack([np</span><span class="r19">.</span><span class="r14">zeros(</span><span class="r19">3</span><span class="r14">), </span>
- <span class="r10"> 51 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">i </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">hstack(([</span><span class="r19">0</span><span class="r14">], i))</span><span class="r16"> </span>
- <span class="r10"> 52 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">j </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">hstack(([</span><span class="r19">0</span><span class="r14">], j))</span><span class="r16"> </span>
- <span class="r10"> 53 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">ij </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">stack((</span><span class="r18">self</span><span class="r19">.</span><span class="r14">i, </span><span class="r18">self</span><span class="r19">.</span><span class="r14">j), axis</span><span class="r19">=1</span><span class="r14">)</span><span class="r16"> </span>
- <span class="r10"> 54 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 55 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">def</span><span class="r14"> </span><span class="r17">define_nearest_neighbor_bonds</span><span class="r14">(</span><span class="r18">self</span><span class="r14">):</span><span class="r16"> </span>
- <span class="r10"> 56 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r21">"""calculate index pairs for all nearest-neighbo</span>
- <span class="r10"> 57 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r21"> lattice"""</span><span class="r16"> </span>
- <span class="r10"> 58 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> a_bonds, b_bonds, c_bonds </span><span class="r19">=</span><span class="r14"> [], [], []</span><span class="r16"> </span>
- <span class="r10"> 59 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> n_atom </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">arange(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">n_atoms)</span><span class="r16"> </span>
- <span class="r10"> 60 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> A, B, C, D </span><span class="r19">=</span><span class="r14"> (</span><span class="r18">self</span><span class="r19">.</span><span class="r14">i </span><span class="r19"><</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">nmax, </span><span class="r18">self</span><span class="r19">.</span><span class="r14">i </span><span class="r19">+</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span>
- <span class="r10"> 61 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">j </span><span class="r19"><</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">nmax, </span><span class="r18">self</span><span class="r19">.</span><span class="r14">i </span><span class="r19">></span><span class="r14"> </span><span class="r19">-</span><span class="r18">self</span>
- <span class="r10"> 62 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">A, </span><span class="r18">self</span><span class="r19">.</span><span class="r14">B, </span><span class="r18">self</span><span class="r19">.</span><span class="r14">C, </span><span class="r18">self</span><span class="r19">.</span><span class="r14">D </span><span class="r19">=</span><span class="r14"> A, B, C, D</span><span class="r16"> </span>
- <span class="r10"> 63 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_1a </span><span class="r19">=</span><span class="r14"> n_atom[A </span><span class="r19">*</span><span class="r14"> B]</span><span class="r16"> </span>
- <span class="r10"> 64 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_1b </span><span class="r19">=</span><span class="r14"> n_atom[B </span><span class="r19">*</span><span class="r14"> C]</span><span class="r16"> </span>
- <span class="r10"> 65 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_1c </span><span class="r19">=</span><span class="r14"> n_atom[C </span><span class="r19">*</span><span class="r14"> D]</span><span class="r16"> </span>
- <span class="r10"> 66 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2aij </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">ij[</span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_1a] </span><span class="r19">+</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">ar</span>
- <span class="r10"> 67 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2bij </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">ij[</span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_1b] </span><span class="r19">+</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">ar</span>
- <span class="r10"> 68 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2cij </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">ij[</span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_1c] </span><span class="r19">+</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">ar</span>
- <span class="r10"> 69 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2a </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">array([np</span><span class="r19">.</span><span class="r14">where(np</span><span class="r19">.</span><span class="r14">all(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">i</span>
- <span class="r10"> 70 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">for</span><span class="r14"> atom </span><span class="r22">in</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2aij</span>
- <span class="r10"> 71 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2b </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">array([np</span><span class="r19">.</span><span class="r14">where(np</span><span class="r19">.</span><span class="r14">all(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">i</span>
- <span class="r10"> 72 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">for</span><span class="r14"> atom </span><span class="r22">in</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2bij</span>
- <span class="r10"> 73 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2c </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">array([np</span><span class="r19">.</span><span class="r14">where(np</span><span class="r19">.</span><span class="r14">all(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">i</span>
- <span class="r10"> 74 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">for</span><span class="r14"> atom </span><span class="r22">in</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2cij</span>
- <span class="r10"> 75 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_1 </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">hstack((</span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_1a, </span><span class="r18">self</span><span class="r19">.</span><span class="r14">at</span>
- <span class="r10"> 76 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2 </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">hstack((</span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2a, </span><span class="r18">self</span><span class="r19">.</span><span class="r14">at</span>
- <span class="r10"> 77 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r16"> </span>
- <span class="r10"> 78 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">def</span><span class="r14"> </span><span class="r17">calculate_bond_energies</span><span class="r14">(</span><span class="r18">self</span><span class="r14">, which</span><span class="r19">=</span><span class="r23">'x'</span><span class="r14">):</span><span class="r16"> </span>
- <span class="r10"> 79 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r21">"""harmonic oscilator potential for bond lengths</span>
- <span class="r10"> 80 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r21"> with spring contsant 'k_bond'"""</span><span class="r16"> </span>
- <span class="r10"> 81 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> array </span><span class="r19">=</span><span class="r14"> </span><span class="r18">getattr</span><span class="r14">(</span><span class="r18">self</span><span class="r14">, which)</span><span class="r16"> </span>
- <span class="r10"> 82 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> vectors </span><span class="r19">=</span><span class="r14"> array[</span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms_2] </span><span class="r19">-</span><span class="r14"> array[</span><span class="r18">self</span><span class="r19">.</span><span class="r14">atoms</span>
- <span class="r10"> 83 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">bond_lengths </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">sqrt((vectors</span><span class="r19">**2</span><span class="r14">)</span><span class="r19">.</span><span class="r14">sum(axi</span>
- <span class="r10"> 84 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">bond_energies </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">k_bond </span><span class="r19">*</span><span class="r14"> (</span><span class="r18">self</span><span class="r19">.</span><span class="r14">bond_le</span>
- <span class="r10"> 85 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 86 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">def</span><span class="r14"> </span><span class="r17">calculate_surface_energies</span><span class="r14">(</span><span class="r18">self</span><span class="r14">, which</span><span class="r19">=</span><span class="r23">'x'</span><span class="r14">):</span><span class="r16"> </span>
- <span class="r10"> 87 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r21">""" applies smooth sinusoidal-like hexagonal pat</span>
- <span class="r10"> 88 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r21"> to a N x 2 grid of x-y points. Minimum at </span>
- <span class="r10"> 89 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> array </span><span class="r19">=</span><span class="r14"> </span><span class="r18">getattr</span><span class="r14">(</span><span class="r18">self</span><span class="r14">, which)</span><span class="r16"> </span>
- <span class="r10"> 90 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> E </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">cos((array[:, :</span><span class="r19">2</span><span class="r14">, </span><span class="r13">None</span><span class="r14">] </span><span class="r19">*</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">g_sub)</span><span class="r19">.</span><span class="r14">sum</span>
- <span class="r10"> 91 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> result </span><span class="r19">=</span><span class="r14"> (</span><span class="r19">1.5</span><span class="r14"> </span><span class="r19">+</span><span class="r14"> E</span><span class="r19">.</span><span class="r14">sum(axis</span><span class="r19">=1</span><span class="r14">)) </span><span class="r19">/</span><span class="r14"> </span><span class="r19">4.5</span><span class="r16"> </span>
- <span class="r10"> 92 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> surface_energy_xy </span><span class="r19">=</span><span class="r14"> </span><span class="r19">1.</span><span class="r14"> </span><span class="r19">-</span><span class="r14"> (</span><span class="r19">1.5</span><span class="r14"> </span><span class="r19">+</span><span class="r14"> E</span><span class="r19">.</span><span class="r14">sum(axis</span><span class="r19">=-1</span><span class="r14">)) </span>
- <span class="r10"> 93 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> surface_energy_z </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">k_vert </span><span class="r19">*</span><span class="r14"> (</span><span class="r18">self</span><span class="r19">.</span><span class="r14">x[:, </span><span class="r19">2</span><span class="r14">] </span><span class="r19">-</span>
- <span class="r10"> 94 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">surface_energies </span><span class="r19">=</span><span class="r14"> surface_energy_xy </span><span class="r19">+</span><span class="r14"> surf</span>
- <span class="r10"> 95 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 96 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">def</span><span class="r14"> </span><span class="r17">get_energy</span><span class="r14">(</span><span class="r18">self</span><span class="r14">, which</span><span class="r19">=</span><span class="r23">'x'</span><span class="r14">):</span><span class="r16"> </span>
- <span class="r10"> 97 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">calculate_bond_energies(which)</span><span class="r16"> </span>
- <span class="r10"> 98 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">calculate_surface_energies(which)</span><span class="r16"> </span>
- <span class="r10"> 99 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">return</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">bond_energies</span><span class="r19">.</span><span class="r14">sum() </span><span class="r19">+</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">surface_e</span>
- <span class="r10"> 100 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 101 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">def</span><span class="r14"> </span><span class="r17">potential_yx</span><span class="r14">(</span><span class="r18">self</span><span class="r14">, yx):</span><span class="r16"> </span>
- <span class="r10"> 102 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r21">""" applies smooth sinusoidal-like hexagonal pat</span>
- <span class="r10"> 103 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r21"> to a 2 x M x N y-x grid of points. Minimum a</span>
- <span class="r10"> 104 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 25M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ </span>│<span class="r12"> </span>│<span class="r14"> E </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">cos((yx[:, </span><span class="r13">None</span><span class="r14">, </span><span class="r19">...</span><span class="r14">] </span><span class="r19">*</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">g_sub[::</span><span class="r19">-1</span><span class="r14">][</span>
- <span class="r10"> 105 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 4M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ </span>│<span class="r12"> </span>│<span class="r14"> result </span><span class="r19">=</span><span class="r14"> </span><span class="r19">1.</span><span class="r14"> </span><span class="r19">-</span><span class="r14"> (</span><span class="r19">1.5</span><span class="r14"> </span><span class="r19">+</span><span class="r14"> E</span><span class="r19">.</span><span class="r14">sum(axis</span><span class="r19">=0</span><span class="r14">)) </span><span class="r19">/</span><span class="r14"> </span><span class="r19">4.5</span><span class="r14"> </span><span class="r20"># then</span>
- <span class="r10"> 106 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">return</span><span class="r14"> result</span><span class="r16"> </span>
- <span class="r10"> 107 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 108 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">def</span><span class="r14"> </span><span class="r17">plot_it</span><span class="r14">(</span><span class="r18">self</span><span class="r14">, hw_pixels</span><span class="r19">=250</span><span class="r14">, cmap_sub</span><span class="r19">=</span><span class="r23">'gray'</span><span class="r14">, cm</span>
- <span class="r10"> 109 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> cmap_bonds</span><span class="r19">=</span><span class="r23">'jet'</span><span class="r14">, linewidth</span><span class="r19">=2.5</span><span class="r14">, vmin</span><span class="r19">=0.</span>
- <span class="r10"> 110 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> array </span><span class="r19">=</span><span class="r14"> </span><span class="r18">getattr</span><span class="r14">(</span><span class="r18">self</span><span class="r14">, which)</span><span class="r16"> </span>
- <span class="r10"> 111 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> hw </span><span class="r19">=</span><span class="r14"> </span><span class="r19">1.05</span><span class="r14"> </span><span class="r19">*</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">abs(array[:, :</span><span class="r19">2</span><span class="r14">])</span><span class="r19">.</span><span class="r14">max() </span><span class="r20"># largest</span>
- <span class="r10"> 112 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">plot_scale </span><span class="r19">=</span><span class="r14"> hw </span><span class="r19">/</span><span class="r14"> hw_pixels </span><span class="r20"># 0.05 angstro</span>
- <span class="r10"> 113 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">yx </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">plot_scale </span><span class="r19">*</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">stack(np</span><span class="r19">.</span><span class="r14">mgrid[</span><span class="r19">-</span><span class="r14">h</span>
- <span class="r10"> 114 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 12M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r19">-</span><span class="r14">hw_pix</span>
- <span class="r10"> 115 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">substrate </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">potential_yx(yx</span><span class="r19">=</span><span class="r18">self</span><span class="r19">.</span><span class="r14">yx)</span><span class="r16"> </span>
- <span class="r10"> 116 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">plot_extent </span><span class="r19">=</span><span class="r14"> [</span><span class="r18">self</span><span class="r19">.</span><span class="r14">yx[</span><span class="r19">1</span><span class="r14">]</span><span class="r19">.</span><span class="r14">min(), </span><span class="r18">self</span><span class="r19">.</span><span class="r14">yx[</span><span class="r19">1</span><span class="r14">]</span>
- <span class="r10"> 117 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">yx[</span><span class="r19">0</span><span class="r14">]</span><span class="r19">.</span><span class="r14">min(), </span><span class="r18">self</span><span class="r19">.</span><span class="r14">yx[</span><span class="r19">0</span><span class="r14">]</span>
- <span class="r10"> 118 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">print</span><span class="r14">(</span><span class="r23">'self.substrate.shape: '</span><span class="r14">, </span><span class="r18">self</span><span class="r19">.</span><span class="r14">substrate</span><span class="r19">.</span><span class="r14">s</span>
- <span class="r10"> 119 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r20"># energy histograms</span><span class="r16"> </span>
- <span class="r10"> 120 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> a, b </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">histogram(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">surface_energies, bins</span><span class="r19">=</span>
- <span class="r10"> 121 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> c, d </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">histogram(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">bond_energies, bins</span><span class="r19">=</span><span class="r14">(</span><span class="r18">se</span>
- <span class="r10"> 122 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r20"># color coded bond lines</span><span class="r16"> </span>
- <span class="r10"> 123 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> my_cmap </span><span class="r19">=</span><span class="r14"> plt</span><span class="r19">.</span><span class="r14">get_cmap(cmap_bonds)</span><span class="r16"> </span>
- <span class="r10"> 124 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> colors </span><span class="r19">=</span><span class="r14"> my_cmap(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">bond_energies </span><span class="r19">/</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">bond_</span>
- <span class="r10"> 125 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> linez </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">stack((</span><span class="r18">self</span><span class="r19">.</span><span class="r14">x[bob</span><span class="r19">.</span><span class="r14">atoms_1][:, :</span><span class="r19">2</span><span class="r14">], </span><span class="r18">se</span>
- <span class="r10"> 126 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ln_coll </span><span class="r19">=</span><span class="r14"> LineCollection(linez, colors</span><span class="r19">=</span><span class="r14">colors, l</span>
- <span class="r10"> 127 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r16"> </span>
- <span class="r10"> 128 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 129 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 4M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ </span>│<span class="r12"> </span>│<span class="r14"> fig </span><span class="r19">=</span><span class="r14"> plt</span><span class="r19">.</span><span class="r14">figure(constrained_layout</span><span class="r19">=</span><span class="r13">False</span><span class="r14">, figsi</span>
- <span class="r10"> 130 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> gs </span><span class="r19">=</span><span class="r14"> fig</span><span class="r19">.</span><span class="r14">add_gridspec(nrows</span><span class="r19">=4</span><span class="r14">, ncols</span><span class="r19">=5</span><span class="r14">, left</span><span class="r19">=0.0</span>
- <span class="r10"> 131 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> bottom</span><span class="r19">=0.07</span><span class="r14">, top</span><span class="r19">=0.96</span><span class="r14">, hsp</span>
- <span class="r10"> 132 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax1 </span><span class="r19">=</span><span class="r14"> fig</span><span class="r19">.</span><span class="r14">add_subplot(gs[:</span><span class="r19">3</span><span class="r14">, :])</span><span class="r16"> </span>
- <span class="r10"> 133 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 134 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r20"># fig, ax = plt.subplots(1, 1, figsize=[9, 7.5])</span>
- <span class="r10"> 135 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax1</span><span class="r19">.</span><span class="r14">imshow(</span><span class="r18">self</span><span class="r19">.</span><span class="r14">substrate, origin</span><span class="r19">=</span><span class="r23">'lower'</span><span class="r14">, exten</span>
- <span class="r10"> 136 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 2M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ </span>│<span class="r12"> </span>│<span class="r14"> cmap</span><span class="r19">=</span><span class="r14">cmap_sub, vmin</span><span class="r19">=</span><span class="r14">vmin, vmax</span><span class="r19">=</span><span class="r14">vmax) </span><span class="r20">#</span>
- <span class="r10"> 137 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax1</span><span class="r19">.</span><span class="r14">add_collection(ln_coll) </span><span class="r20"># then bonds</span><span class="r16"> </span>
- <span class="r10"> 138 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> x, y </span><span class="r19">=</span><span class="r14"> </span><span class="r18">self</span><span class="r19">.</span><span class="r14">x</span><span class="r19">.</span><span class="r14">T[:</span><span class="r19">2</span><span class="r14">]</span><span class="r16"> </span>
- <span class="r10"> 139 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax1</span><span class="r19">.</span><span class="r14">scatter(x, y, c</span><span class="r19">=</span><span class="r18">self</span><span class="r19">.</span><span class="r14">surface_energies, cmap</span><span class="r19">=</span>
- <span class="r10"> 140 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> edgecolors</span><span class="r19">=</span><span class="r23">'k'</span><span class="r14">, zorder</span><span class="r19">=2</span><span class="r14">) </span><span class="r20"># then atom</span>
- <span class="r10"> 141 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax1</span><span class="r19">.</span><span class="r14">set_ylabel(</span><span class="r23">'Angstroms'</span><span class="r14">)</span><span class="r16"> </span>
- <span class="r10"> 142 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax2 </span><span class="r19">=</span><span class="r14"> fig</span><span class="r19">.</span><span class="r14">add_subplot(gs[</span><span class="r19">3</span><span class="r14">:, </span><span class="r19">1</span><span class="r14">:</span><span class="r19">4</span><span class="r14">])</span><span class="r16"> </span>
- <span class="r10"> 143 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax2</span><span class="r19">.</span><span class="r14">plot(b[</span><span class="r19">1</span><span class="r14">:], a, label</span><span class="r19">=</span><span class="r23">'surface energies'</span><span class="r14">)</span><span class="r16"> </span>
- <span class="r10"> 144 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax2</span><span class="r19">.</span><span class="r14">plot(d[</span><span class="r19">1</span><span class="r14">:], c, label</span><span class="r19">=</span><span class="r23">'bond energies'</span><span class="r14">)</span><span class="r16"> </span>
- <span class="r10"> 145 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax2</span><span class="r19">.</span><span class="r14">legend()</span><span class="r16"> </span>
- <span class="r10"> 146 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax2</span><span class="r19">.</span><span class="r14">set_yscale(</span><span class="r23">'log'</span><span class="r14">)</span><span class="r16"> </span>
- <span class="r10"> 147 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> ax2</span><span class="r19">.</span><span class="r14">set_xlabel(</span><span class="r23">'energy'</span><span class="r14">)</span><span class="r16"> </span>
- <span class="r10"> 148 </span>│<span class="r11"> 13% </span>│<span class="r11"> 2% </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 140M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ 1% </span>│<span class="r12"> 1 </span>│<span class="r14"> plt</span><span class="r19">.</span><span class="r14">show()</span><span class="r16"> </span>
- <span class="r10"> 149 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 150 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r13">def</span><span class="r14"> </span><span class="r17">ang</span><span class="r14">(i, j, k, l):</span><span class="r16"> </span>
- <span class="r10"> 151 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> root3 </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">sqrt(</span><span class="r19">3</span><span class="r14">)</span><span class="r16"> </span>
- <span class="r10"> 152 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> th_ij </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">arctan2(root3 </span><span class="r19">*</span><span class="r14"> j, </span><span class="r19">2*</span><span class="r14">i</span><span class="r19">+</span><span class="r14">j)</span><span class="r16"> </span>
- <span class="r10"> 153 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> th_kl </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">arctan2(root3 </span><span class="r19">*</span><span class="r14"> l, </span><span class="r19">2*</span><span class="r14">k</span><span class="r19">+</span><span class="r14">l)</span><span class="r16"> </span>
- <span class="r10"> 154 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">return</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">degrees(th_ij </span><span class="r19">-</span><span class="r14"> th_kl)</span><span class="r16"> </span>
- <span class="r10"> 155 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r16"> </span>
- <span class="r10"> 156 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r16"> </span>
- <span class="r10"> 157 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r20">#### NEXT</span><span class="r16"> </span>
- <span class="r10"> 158 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r20"># print old/new mean origin</span><span class="r16"> </span>
- <span class="r10"> 159 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r20"># print old/new mean rotation</span><span class="r16"> </span>
- <span class="r10"> 160 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r20"># print old/new mean bond length</span><span class="r16"> </span>
- <span class="r10"> 161 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 162 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r20"># is there any collective behavior?</span><span class="r16"> </span>
- <span class="r10"> 163 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 164 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r20"># BEGIN</span><span class="r16"> </span>
- <span class="r10"> 165 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 166 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">a_lattice </span><span class="r19">=</span><span class="r14"> </span><span class="r19">3.5</span><span class="r16"> </span>
- <span class="r10"> 167 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">a_substrate </span><span class="r19">=</span><span class="r14"> </span><span class="r19">2.9</span><span class="r16"> </span>
- <span class="r10"> 168 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">height </span><span class="r19">=</span><span class="r14"> a_lattice</span><span class="r16"> </span>
- <span class="r10"> 169 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">R </span><span class="r19">=</span><span class="r14"> </span><span class="r19">9.</span><span class="r16"> </span>
- <span class="r10"> 170 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">nmax </span><span class="r19">=</span><span class="r14"> </span><span class="r19">12</span><span class="r16"> </span>
- <span class="r10"> 171 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">seed </span><span class="r19">=</span><span class="r14"> </span><span class="r19">42</span><span class="r16"> </span>
- <span class="r10"> 172 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 173 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">origin </span><span class="r19">=</span><span class="r14"> [</span><span class="r19">0</span><span class="r14">, </span><span class="r19">0</span><span class="r14">, height]</span><span class="r16"> </span>
- <span class="r10"> 174 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 175 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">bob </span><span class="r19">=</span><span class="r14"> Problem(</span><span class="r23">'bob'</span><span class="r14">, sig</span><span class="r19">=0.2</span><span class="r14">, k_bond</span><span class="r19">=20</span><span class="r14">, a_sub</span><span class="r19">=</span><span class="r14">a_substra</span>
- <span class="r10"> 176 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> R</span><span class="r19">=</span><span class="r14">R, origin</span><span class="r19">=</span><span class="r14">origin, nmax</span><span class="r19">=</span><span class="r14">nmax, seed</span><span class="r19">=</span><span class="r14">seed)</span><span class="r16"> </span>
- <span class="r10"> 177 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 178 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">bob</span><span class="r19">.</span><span class="r14">plot_it()</span><span class="r16"> </span>
- <span class="r10"> 179 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 180 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 181 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r13">def</span><span class="r14"> </span><span class="r17">mini_me</span><span class="r14">(atom_positions_flattened, args):</span><span class="r16"> </span>
- <span class="r10"> 182 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> g_sub, k_vert, a, h, k_bond, atoms_1, atoms_2 </span><span class="r19">=</span><span class="r14"> args</span>
- <span class="r10"> 183 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> atom_positions </span><span class="r19">=</span><span class="r14"> atom_positions_flattened</span><span class="r19">.</span><span class="r14">reshape(</span><span class="r19">-1</span>
- <span class="r10"> 184 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r20"># bond energies</span><span class="r16"> </span>
- <span class="r10"> 185 </span>│<span class="r11"> 12% </span>│<span class="r11"> 16% </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 2M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ 26% </span>│<span class="r12"> 24 </span>│<span class="r14"> vectors </span><span class="r19">=</span><span class="r14"> atom_positions[atoms_2] </span><span class="r19">-</span><span class="r14"> atom_positions[a</span>
- <span class="r10"> 186 </span>│<span class="r11"> 5% </span>│<span class="r11"> 7% </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 2M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ 5% </span>│<span class="r12"> 33 </span>│<span class="r14"> bond_lengths </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">sqrt((vectors</span><span class="r19">**2</span><span class="r14">)</span><span class="r19">.</span><span class="r14">sum(axis</span><span class="r19">=1</span><span class="r14">))</span><span class="r16"> </span>
- <span class="r10"> 187 </span>│<span class="r11"> </span>│<span class="r11"> 2% </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> 3 </span>│<span class="r14"> bond_energy </span><span class="r19">=</span><span class="r14"> k_bond </span><span class="r19">*</span><span class="r14"> ((bond_lengths </span><span class="r19">-</span><span class="r14"> a)</span><span class="r19">**2</span><span class="r14">)</span><span class="r19">.</span><span class="r14">sum()</span>
- <span class="r10"> 188 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r20"># surface energies</span><span class="r16"> </span>
- <span class="r10"> 189 </span>│<span class="r24"> 14%</span><span class="r11"> </span>│<span class="r24"> 23%</span><span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 2M </span>│<span class="r24">▁▁▁▁▁▁▁▁▁ 4%</span><span class="r1"> </span>│<span class="r12"> 31 </span>│<span class="r14"> E </span><span class="r19">=</span><span class="r14"> np</span><span class="r19">.</span><span class="r14">cos((atom_positions[:, :</span><span class="r19">2</span><span class="r14">, </span><span class="r13">None</span><span class="r14">] </span><span class="r19">*</span><span class="r14"> g_sub)</span><span class="r19">.</span><span class="r14">sum</span>
- <span class="r10"> 190 </span>│<span class="r11"> 3% </span>│<span class="r11"> 4% </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> 8 </span>│<span class="r14"> result </span><span class="r19">=</span><span class="r14"> (</span><span class="r19">1.5</span><span class="r14"> </span><span class="r19">+</span><span class="r14"> E</span><span class="r19">.</span><span class="r14">sum(axis</span><span class="r19">=1</span><span class="r14">)) </span><span class="r19">/</span><span class="r14"> </span><span class="r19">4.5</span><span class="r16"> </span>
- <span class="r10"> 191 </span>│<span class="r11"> 3% </span>│<span class="r11"> 3% </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> 4 </span>│<span class="r14"> surface_energies_xy </span><span class="r19">=</span><span class="r14"> </span><span class="r19">1.</span><span class="r14"> </span><span class="r19">-</span><span class="r14"> (</span><span class="r19">1.5</span><span class="r14"> </span><span class="r19">+</span><span class="r14"> E</span><span class="r19">.</span><span class="r14">sum(axis</span><span class="r19">=-1</span><span class="r14">)) </span><span class="r19">/</span><span class="r14"> </span>
- <span class="r10"> 192 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> surface_energies_z </span><span class="r19">=</span><span class="r14"> k_vert </span><span class="r19">*</span><span class="r14"> (atom_positions[:, </span><span class="r19">2</span><span class="r14">] </span>
- <span class="r10"> 193 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> surface_energy </span><span class="r19">=</span><span class="r14"> (surface_energies_xy </span><span class="r19">+</span><span class="r14"> surface_ener</span>
- <span class="r10"> 194 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r13">return</span><span class="r14"> bond_energy </span><span class="r19">+</span><span class="r14"> surface_energy</span><span class="r16"> </span>
- <span class="r10"> 195 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r16"> </span>
- <span class="r10"> 196 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 197 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">atom_positions </span><span class="r19">=</span><span class="r14"> bob</span><span class="r19">.</span><span class="r14">x</span><span class="r19">.</span><span class="r14">copy()</span><span class="r16"> </span>
- <span class="r10"> 198 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 199 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">parameters </span><span class="r19">=</span><span class="r14"> (</span><span class="r23">'g_sub'</span><span class="r14">, </span><span class="r23">'k_vert'</span><span class="r14"> , </span><span class="r23">'a'</span><span class="r14">, </span><span class="r23">'h'</span><span class="r14">, </span><span class="r23">'k_bond'</span><span class="r14">, </span><span class="r23">'a</span>
- <span class="r10"> 200 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 201 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">args </span><span class="r19">=</span><span class="r14"> [</span><span class="r18">getattr</span><span class="r14">(bob, attr) </span><span class="r13">for</span><span class="r14"> attr </span><span class="r22">in</span><span class="r14"> parameters]</span><span class="r16"> </span>
- <span class="r10"> 202 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 203 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r13">if</span><span class="r14"> </span><span class="r13">True</span><span class="r14">:</span><span class="r16"> </span>
- <span class="r10"> 204 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">print</span><span class="r14">(</span><span class="r23">'start minimization!'</span><span class="r14">)</span><span class="r16"> </span>
- <span class="r10"> 205 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">print</span><span class="r14">(</span><span class="r23">'mini_me(atom_positions, args): '</span><span class="r14">, mini_me(ato</span>
- <span class="r10"> 206 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> maxiter </span><span class="r19">=</span><span class="r14"> </span><span class="r19">1000</span><span class="r16"> </span>
- <span class="r10"> 207 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> options </span><span class="r19">=</span><span class="r14"> {</span><span class="r23">'maxiter'</span><span class="r14">: maxiter}</span><span class="r16"> </span>
- <span class="r10"> 208 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> t_start </span><span class="r19">=</span><span class="r14"> time</span><span class="r19">.</span><span class="r14">process_time()</span><span class="r16"> </span>
- <span class="r10"> 209 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> wow </span><span class="r19">=</span><span class="r14"> minimize(mini_me, atom_positions</span><span class="r19">.</span><span class="r14">flatten(), ar</span>
- <span class="r10"> 210 </span>│<span class="r24"> 9%</span><span class="r11"> </span>│<span class="r24"> 91%</span><span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 95M </span>│<span class="r24">▁▁▁▁▁▁▁▁▁ 63%</span><span class="r1"> </span>│<span class="r12"> 37 </span>│<span class="r14"> tol</span><span class="r19">=1e-2</span><span class="r14">, options</span><span class="r19">=</span><span class="r14">options) </span><span class="r20"># method='</span>
- <span class="r10"> 211 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> process_time </span><span class="r19">=</span><span class="r14"> time</span><span class="r19">.</span><span class="r14">process_time() </span><span class="r19">-</span><span class="r14"> t_start</span><span class="r16"> </span>
- <span class="r10"> 212 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">print</span><span class="r14">(</span><span class="r23">'wow.fun: '</span><span class="r14">, wow</span><span class="r19">.</span><span class="r14">fun)</span><span class="r16"> </span>
- <span class="r10"> 213 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">print</span><span class="r14">(</span><span class="r23">'wow.message: '</span><span class="r14">, wow</span><span class="r19">.</span><span class="r14">message)</span><span class="r16"> </span>
- <span class="r10"> 214 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">print</span><span class="r14">(</span><span class="r23">'process time: '</span><span class="r14">, process_time)</span><span class="r16"> </span>
- <span class="r10"> 215 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">print</span><span class="r14">(</span><span class="r23">'number of iterations: '</span><span class="r14">, wow</span><span class="r19">.</span><span class="r14">nit)</span><span class="r16"> </span>
- <span class="r10"> 216 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14"> </span><span class="r18">print</span><span class="r14">(</span><span class="r23">'iterartions per second: '</span><span class="r14">, wow</span><span class="r19">.</span><span class="r14">nit </span><span class="r19">/</span><span class="r14"> process_</span>
- <span class="r10"> 217 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 218 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">bob</span><span class="r19">.</span><span class="r14">x_final </span><span class="r19">=</span><span class="r14"> wow</span><span class="r19">.</span><span class="r14">x</span><span class="r19">.</span><span class="r14">reshape(</span><span class="r19">-1</span><span class="r14">, </span><span class="r19">3</span><span class="r14">) </span><span class="r20"># insert final result</span>
- <span class="r10"> 219 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 220 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r18">print</span><span class="r14">(</span><span class="r23">'bob.get_energy(which="x_initial"): '</span><span class="r14">, </span><span class="r18">round</span><span class="r14">(bob</span><span class="r19">.</span><span class="r14">g</span>
- <span class="r10"> 221 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r18">print</span><span class="r14">(</span><span class="r23">'bob.get_energy(which="x_final"): '</span><span class="r14">, </span><span class="r18">round</span><span class="r14">(bob</span><span class="r19">.</span><span class="r14">get</span>
- <span class="r10"> 222 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 223 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">bob</span><span class="r19">.</span><span class="r14">plot_it(which</span><span class="r19">=</span><span class="r23">'x_final'</span><span class="r14">)</span><span class="r16"> </span>
- <span class="r10"> 224 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> 225 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r16"> </span>
- <span class="r10"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│
- ╶──────┼───────┼───────┼───────┼────────┼───────┼───────────────┼───────┼─────────────────────────────────────────────────────────╴
- <span class="r10"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r25">function summary for hex_anneal_profile_v06.py </span>
- <span class="r10"> 55 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r1"> </span>│<span class="r12"> </span>│<span class="r14">Problem</span><span class="r19">.</span><span class="r14">define_nearest_neighbor_bonds</span><span class="r16"> </span>
- <span class="r10"> 101 </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 18M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ </span>│<span class="r12"> </span>│<span class="r14">Problem</span><span class="r19">.</span><span class="r14">potential_yx</span><span class="r16"> </span>
- <span class="r10"> 108 </span>│<span class="r11"> 13% </span>│<span class="r11"> 2% </span>│<span class="r11"> </span>│<span class="r1"> </span>│<span class="r1"> 45M </span>│<span class="r1">▁▁▁▁▁▁▁▁▁ 1% </span>│<span class="r12"> 1 </span>│<span class="r14">Problem</span><span class="r19">.</span><span class="r14">plot_it</span><span class="r16"> </span>
- <span class="r10"> 181 </span>│<span class="r24"> 37%</span><span class="r11"> </span>│<span class="r24"> 54%</span><span class="r11"> </span>│<span class="r11"> </span>│<span class="r1"> 1% </span>│<span class="r1"> 2M </span>│<span class="r24">▁▁▁▁▁▁▁▁▁ 35%</span><span class="r1"> </span>│<span class="r12"> 102 </span>│<span class="r14">ScalarFunction</span><span class="r19">.</span><span class="r14">mini_me</span><span class="r16"> </span>
- ╵ ╵ ╵ ╵ ╵ ╵ ╵ ╵
- Top average memory consumption, by line:
- <span class="r1">(1) 148: 140 MB</span>
- <span class="r1">(2) 210: 95 MB</span>
- <span class="r1">(3) 2: 81 MB</span>
- <span class="r1">(4) 1: 38 MB</span>
- <span class="r1">(5) 5: 38 MB</span>
- generated by the <a class="r26" href="https://github.com/plasma-umass/scalene">scalene</a> profiler
- </pre>
- </code>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment