Guest User

Untitled

a guest
Jan 12th, 2022
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 127.41 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <style>
  5. .r1 {color: #005f00; text-decoration-color: #005f00}
  6. .r2 {font-weight: bold}
  7. .r3 {color: #000080; text-decoration-color: #000080; font-weight: bold}
  8. .r4 {color: #005f00; text-decoration-color: #005f00; font-weight: bold}
  9. .r5 {color: #87af00; text-decoration-color: #87af00; font-weight: bold}
  10. .r6 {color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold}
  11. .r7 {color: #000080; text-decoration-color: #000080; font-weight: bold; font-style: italic}
  12. .r8 {color: #005f00; text-decoration-color: #005f00; font-weight: bold; font-style: italic}
  13. .r9 {color: #87af00; text-decoration-color: #87af00; font-weight: bold; font-style: italic}
  14. .r10 {color: #7f7f7f; text-decoration-color: #7f7f7f}
  15. .r11 {color: #000080; text-decoration-color: #000080}
  16. .r12 {color: #87af00; text-decoration-color: #87af00}
  17. .r13 {color: #008000; text-decoration-color: #008000; background-color: #f8f8f8; font-weight: bold}
  18. .r14 {color: #000000; text-decoration-color: #000000; background-color: #f8f8f8}
  19. .r15 {color: #0000ff; text-decoration-color: #0000ff; background-color: #f8f8f8; font-weight: bold}
  20. .r16 {background-color: #f8f8f8}
  21. .r17 {color: #0000ff; text-decoration-color: #0000ff; background-color: #f8f8f8}
  22. .r18 {color: #008000; text-decoration-color: #008000; background-color: #f8f8f8}
  23. .r19 {color: #666666; text-decoration-color: #666666; background-color: #f8f8f8}
  24. .r20 {color: #408080; text-decoration-color: #408080; background-color: #f8f8f8; font-style: italic}
  25. .r21 {color: #ba2121; text-decoration-color: #ba2121; background-color: #f8f8f8; font-style: italic}
  26. .r22 {color: #aa22ff; text-decoration-color: #aa22ff; background-color: #f8f8f8; font-weight: bold}
  27. .r23 {color: #ba2121; text-decoration-color: #ba2121; background-color: #f8f8f8}
  28. .r24 {color: #800000; text-decoration-color: #800000; font-weight: bold}
  29. .r25 {font-weight: bold; font-style: italic}
  30. .r26 {color: #0000ff; text-decoration-color: #0000ff}
  31. body {
  32.     color: #000000;
  33.     background-color: #ffffff;
  34. }
  35. </style>
  36. </head>
  37. <html>
  38. <body>
  39.     <code>
  40.         <pre style="font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace">                                   Memory usage: <span class="r1">▁▁▁▁▁▁▁▁▁▁▁▁</span> (max:   2.00MB, growth rate:   0%)                                  
  41.                                   hex_anneal_profile_v06.py: % of time = 100.00% out of 208.12s.                                  
  42.        ╷       ╷       ╷       ╷        ╷       ╷               ╷       ╷                                                          
  43.  <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>
  44.  <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>
  45. ╺━━━━━━┿━━━━━━━┿━━━━━━━┿━━━━━━━┿━━━━━━━━┿━━━━━━━┿━━━━━━━━━━━━━━━┿━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
  46.  <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>  
  47.  <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>  
  48.  <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>  
  49.  <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>  
  50.  <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>  
  51.  <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>  
  52.  <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>  
  53.  <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>  
  54.  <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>  
  55.  <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>  
  56.  <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>  
  57.  <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>  
  58.  <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>  
  59.  <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>  
  60.  <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>  
  61.  <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>  
  62.  <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>  
  63.  <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>  
  64.  <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>  
  65.  <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>  
  66.  <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>  
  67.  <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>  
  68.  <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>  
  69.  <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>  
  70.  <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>  
  71.  <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>  
  72.  <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>  
  73.  <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>  
  74.  <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>  
  75.  <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>  
  76.  <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>  
  77.  <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>  
  78.  <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>  
  79.  <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>  
  80.  <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>  
  81.  <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>  
  82.  <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>  
  83.  <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">&quot;&quot;&quot;generates an N x 3 array of atom locations, o</span>  
  84.  <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>  
  85.  <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>  
  86.  <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">&lt;=</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>  
  87.  <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>  
  88.  <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>  
  89.  <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>  
  90.  <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>  
  91.  <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>  
  92.  <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>  
  93.  <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>  
  94.  <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>  
  95.  <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>  
  96.  <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>  
  97.  <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>  
  98.  <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>  
  99.  <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>  
  100.  <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>  
  101.  <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">&quot;&quot;&quot;calculate index pairs for all nearest-neighbo</span>  
  102.  <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&quot;&quot;&quot;</span><span class="r16">                                   </span>  
  103.  <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>  
  104.  <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>  
  105.  <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">&lt;</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>  
  106.  <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">&lt;</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">&gt;</span><span class="r14"> </span><span class="r19">-</span><span class="r18">self</span>  
  107.  <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>  
  108.  <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>  
  109.  <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>  
  110.  <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>  
  111.  <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>  
  112.  <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>  
  113.  <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>  
  114.  <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>  
  115.  <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>  
  116.  <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>  
  117.  <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>  
  118.  <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>  
  119.  <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>  
  120.  <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>  
  121.  <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>  
  122.  <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>  
  123.  <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">&#x27;x&#x27;</span><span class="r14">):</span><span class="r16">       </span>  
  124.  <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">&quot;&quot;&quot;harmonic oscilator potential for bond lengths</span>  
  125.  <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 &#x27;k_bond&#x27;&quot;&quot;&quot;</span><span class="r16">             </span>  
  126.  <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>  
  127.  <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>  
  128.  <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>  
  129.  <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>  
  130.  <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>  
  131.  <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">&#x27;x&#x27;</span><span class="r14">):</span><span class="r16">    </span>  
  132.  <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">&quot;&quot;&quot; applies smooth sinusoidal-like hexagonal pat</span>  
  133.  <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>  
  134.  <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>  
  135.  <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>  
  136.  <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>  
  137.  <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>  
  138.  <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>  
  139.  <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>  
  140.  <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>  
  141.  <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">&#x27;x&#x27;</span><span class="r14">):</span><span class="r16">                    </span>  
  142.  <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>  
  143.  <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>  
  144.  <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>  
  145.  <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>  
  146.  <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>  
  147.  <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">&quot;&quot;&quot; applies smooth sinusoidal-like hexagonal pat</span>  
  148.  <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>  
  149.  <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>  
  150.  <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>  
  151.  <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>  
  152.  <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>  
  153.  <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">&#x27;gray&#x27;</span><span class="r14">, cm</span>  
  154.  <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">&#x27;jet&#x27;</span><span class="r14">, linewidth</span><span class="r19">=2.5</span><span class="r14">, vmin</span><span class="r19">=0.</span>  
  155.  <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>  
  156.  <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>  
  157.  <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>  
  158.  <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>  
  159.  <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>  
  160.  <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>  
  161.  <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>  
  162.  <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>  
  163.  <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">&#x27;self.substrate.shape: &#x27;</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>  
  164.  <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>  
  165.  <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>  
  166.  <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>  
  167.  <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>  
  168.  <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>  
  169.  <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>  
  170.  <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>  
  171.  <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>  
  172.  <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>  
  173.  <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>  
  174.  <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>  
  175.  <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>  
  176.  <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>  
  177.  <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>  
  178.  <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>  
  179.  <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>  
  180.  <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">&#x27;lower&#x27;</span><span class="r14">, exten</span>  
  181.  <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>  
  182.  <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>  
  183.  <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>  
  184.  <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>  
  185.  <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">&#x27;k&#x27;</span><span class="r14">, zorder</span><span class="r19">=2</span><span class="r14">) </span><span class="r20"># then atom</span>  
  186.  <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">&#x27;Angstroms&#x27;</span><span class="r14">)</span><span class="r16">                     </span>  
  187.  <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>  
  188.  <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">&#x27;surface energies&#x27;</span><span class="r14">)</span><span class="r16">    </span>  
  189.  <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">&#x27;bond energies&#x27;</span><span class="r14">)</span><span class="r16">       </span>  
  190.  <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>  
  191.  <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">&#x27;log&#x27;</span><span class="r14">)</span><span class="r16">                           </span>  
  192.  <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">&#x27;energy&#x27;</span><span class="r14">)</span><span class="r16">                        </span>  
  193.  <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>  
  194.  <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>  
  195.  <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>  
  196.  <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>  
  197.  <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>  
  198.  <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>  
  199.  <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>  
  200.  <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>  
  201.  <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>  
  202.  <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>  
  203.  <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>  
  204.  <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>  
  205.  <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>  
  206.  <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>  
  207.  <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>  
  208.  <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>  
  209.  <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>  
  210.  <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>  
  211.  <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>  
  212.  <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>  
  213.  <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>  
  214.  <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>  
  215.  <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>  
  216.  <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>  
  217.  <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>  
  218.  <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>  
  219.  <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>  
  220.  <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">&#x27;bob&#x27;</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>  
  221.  <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>  
  222.  <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>  
  223.  <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>  
  224.  <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>  
  225.  <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>  
  226.  <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>  
  227.  <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>  
  228.  <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>  
  229.  <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>  
  230.  <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>  
  231.  <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>  
  232.  <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>  
  233.  <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>  
  234.  <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>  
  235.  <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>  
  236.  <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>  
  237.  <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>  
  238.  <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>  
  239.  <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>  
  240.  <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>  
  241.  <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>  
  242.  <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>  
  243.  <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>  
  244.  <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">&#x27;g_sub&#x27;</span><span class="r14">, </span><span class="r23">&#x27;k_vert&#x27;</span><span class="r14"> , </span><span class="r23">&#x27;a&#x27;</span><span class="r14">, </span><span class="r23">&#x27;h&#x27;</span><span class="r14">, </span><span class="r23">&#x27;k_bond&#x27;</span><span class="r14">, </span><span class="r23">&#x27;a</span>  
  245.  <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>  
  246.  <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>  
  247.  <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>  
  248.  <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>  
  249.  <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">&#x27;start minimization!&#x27;</span><span class="r14">)</span><span class="r16">                        </span>  
  250.  <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">&#x27;mini_me(atom_positions, args): &#x27;</span><span class="r14">, mini_me(ato</span>  
  251.  <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>  
  252.  <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">&#x27;maxiter&#x27;</span><span class="r14">: maxiter}</span><span class="r16">                      </span>  
  253.  <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>  
  254.  <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>  
  255.  <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=&#x27;</span>  
  256.  <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>  
  257.  <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">&#x27;wow.fun: &#x27;</span><span class="r14">, wow</span><span class="r19">.</span><span class="r14">fun)</span><span class="r16">                         </span>  
  258.  <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">&#x27;wow.message: &#x27;</span><span class="r14">, wow</span><span class="r19">.</span><span class="r14">message)</span><span class="r16">                 </span>  
  259.  <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">&#x27;process time: &#x27;</span><span class="r14">, process_time)</span><span class="r16">               </span>  
  260.  <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">&#x27;number of iterations: &#x27;</span><span class="r14">, wow</span><span class="r19">.</span><span class="r14">nit)</span><span class="r16">            </span>  
  261.  <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">&#x27;iterartions per second: &#x27;</span><span class="r14">, wow</span><span class="r19">.</span><span class="r14">nit </span><span class="r19">/</span><span class="r14"> process_</span>  
  262.  <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>  
  263.  <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>  
  264.  <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>  
  265.  <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">&#x27;bob.get_energy(which=&quot;x_initial&quot;): &#x27;</span><span class="r14">, </span><span class="r18">round</span><span class="r14">(bob</span><span class="r19">.</span><span class="r14">g</span>  
  266.  <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">&#x27;bob.get_energy(which=&quot;x_final&quot;): &#x27;</span><span class="r14">, </span><span class="r18">round</span><span class="r14">(bob</span><span class="r19">.</span><span class="r14">get</span>  
  267.  <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>  
  268.  <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">&#x27;x_final&#x27;</span><span class="r14">)</span><span class="r16">                            </span>  
  269.  <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>  
  270.  <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>  
  271.  <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>│                                                          
  272. ╶──────┼───────┼───────┼───────┼────────┼───────┼───────────────┼───────┼─────────────────────────────────────────────────────────╴
  273.  <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>  
  274.  <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>  
  275.  <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>  
  276.  <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>  
  277.  <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>  
  278.        ╵       ╵       ╵       ╵        ╵       ╵               ╵       ╵                                                          
  279. Top average memory consumption, by line:
  280. <span class="r1">(1)   148:   140 MB</span>                                                                                                                
  281. <span class="r1">(2)   210:    95 MB</span>                                                                                                                
  282. <span class="r1">(3)     2:    81 MB</span>                                                                                                                
  283. <span class="r1">(4)     1:    38 MB</span>                                                                                                                
  284. <span class="r1">(5)     5:    38 MB</span>                                                                                                                
  285. generated by the <a class="r26" href="https://github.com/plasma-umass/scalene">scalene</a> profiler                                                                                                  
  286. </pre>
  287.     </code>
  288. </body>
  289. </html>
  290.  
Advertisement
Add Comment
Please, Sign In to add comment