|
9 | 9 | "%%writefile learners_file.py\n",
|
10 | 10 | "\n",
|
11 | 11 | "import adaptive\n",
|
| 12 | + "from functools import partial\n", |
12 | 13 | "\n",
|
13 | 14 | "import phase_diagram\n",
|
14 | 15 | "lead_pars = dict(\n",
|
|
27 | 28 | " c_tunnel=3 / 4,\n",
|
28 | 29 | " V_r=-50,\n",
|
29 | 30 | " intrinsic_sc=False,\n",
|
30 |
| - " mu_=lambda x0, sigma, mu_lead, mu_wire: mu_lead,\n", |
31 |
| - " V_=lambda z, V_0, V_r, V_l, x0, sigma, r1: 0,\n", |
| 31 | + " mu_=\"lambda x0, sigma, mu_lead, mu_wire: mu_lead\",\n", |
| 32 | + " V_=\"lambda z, V_0, V_r, V_l, x0, sigma, r1: 0\",\n", |
32 | 33 | " V_0=None,\n",
|
33 | 34 | " V_l=None,\n",
|
34 | 35 | " mu_lead=10,\n",
|
|
52 | 53 | " import phase_diagram\n",
|
53 | 54 | "\n",
|
54 | 55 | " params[\"B_x\"], params[\"mu_lead\"] = xy\n",
|
| 56 | + " params = phase_diagram.parse_params(params)\n", |
55 | 57 | " lead = phase_diagram.make_lead(**lead_pars).finalized()\n",
|
56 | 58 | " pf = phase_diagram.calculate_pfaffian(lead, params)\n",
|
57 | 59 | " gap = phase_diagram.gap_from_modes(lead, params)\n",
|
58 | 60 | " return pf * gap\n",
|
59 | 61 | "\n",
|
60 |
| - "fname = 'phase_diagram_gap.pickle'\n", |
61 |
| - "# fname = 'phase_diagram.pickle'\n", |
62 | 62 | "\n",
|
| 63 | + "fnames = ['phase_diagram_gap.pickle', 'phase_diagram_gap_no_orbital.pickle']\n", |
63 | 64 | "loss = adaptive.learner.learnerND.curvature_loss_function()\n",
|
64 |
| - "learner = adaptive.LearnerND(smallest_gap, bounds=[(0, 2), (0, 35)], loss_per_simplex=loss)\n", |
65 | 65 | "\n",
|
66 |
| - "# learner.load(fname)\n", |
67 |
| - "\n", |
68 |
| - "learners = [learner]\n", |
69 |
| - "fnames = [fname]" |
| 66 | + "learners = []\n", |
| 67 | + "for orbital in [True, False]:\n", |
| 68 | + " f = partial(smallest_gap, params=dict(params, orbital=orbital))\n", |
| 69 | + " learners.append(adaptive.Learner2D(f, bounds=[(0, 2), (0, 35)],\n", |
| 70 | + "# loss_per_simplex=loss,\n", |
| 71 | + " ))\n", |
| 72 | + "learner = adaptive.BalancingLearner(learners, strategy='npoints')\n", |
| 73 | + "# fname = 'phase_diagram_gap.pickle'\n", |
| 74 | + "# learner = adaptive.LearnerND(smallest_gap, bounds=[(0, 2), (0, 35)], loss_per_simplex=loss)\n", |
| 75 | + "# learners = [learner]\n", |
| 76 | + "# fnames = [fname]\n", |
| 77 | + "\n", |
| 78 | + "learner.load(fnames)" |
70 | 79 | ]
|
71 | 80 | },
|
72 | 81 | {
|
|
76 | 85 | "outputs": [],
|
77 | 86 | "source": [
|
78 | 87 | "import adaptive\n",
|
| 88 | + "\n", |
79 | 89 | "adaptive.notebook_extension()\n",
|
80 |
| - "runner = adaptive.Runner(learner, goal=lambda l: l.npoints > 60000)\n", |
| 90 | + "runner = adaptive.Runner(learner, goal=lambda l: l.learners[1].npoints > 60000)\n", |
81 | 91 | "runner.live_info()"
|
82 | 92 | ]
|
83 | 93 | },
|
| 94 | + { |
| 95 | + "cell_type": "code", |
| 96 | + "execution_count": null, |
| 97 | + "metadata": {}, |
| 98 | + "outputs": [], |
| 99 | + "source": [ |
| 100 | + "adap" |
| 101 | + ] |
| 102 | + }, |
84 | 103 | {
|
85 | 104 | "cell_type": "code",
|
86 | 105 | "execution_count": null,
|
87 | 106 | "metadata": {},
|
88 | 107 | "outputs": [],
|
89 | 108 | "source": [
|
90 | 109 | "%%output size=100\n",
|
91 |
| - "learner.plot(tri_alpha=0.4, n=None)" |
| 110 | + "%%opts Image [colorbar=True clim=(-0.1, 0)] \n", |
| 111 | + "learners[1].plot(tri_alpha=0.4).Image.I[:, 10:]" |
| 112 | + ] |
| 113 | + }, |
| 114 | + { |
| 115 | + "cell_type": "code", |
| 116 | + "execution_count": null, |
| 117 | + "metadata": {}, |
| 118 | + "outputs": [], |
| 119 | + "source": [ |
| 120 | + "runner.live_info()" |
| 121 | + ] |
| 122 | + }, |
| 123 | + { |
| 124 | + "cell_type": "code", |
| 125 | + "execution_count": null, |
| 126 | + "metadata": {}, |
| 127 | + "outputs": [], |
| 128 | + "source": [ |
| 129 | + "learners[1].npoints" |
92 | 130 | ]
|
93 | 131 | },
|
94 | 132 | {
|
|
97 | 135 | "metadata": {},
|
98 | 136 | "outputs": [],
|
99 | 137 | "source": [
|
100 |
| - "learner.save(fname)" |
| 138 | + "learners[1].save(fnames[1])" |
101 | 139 | ]
|
102 | 140 | },
|
103 | 141 | {
|
|
112 | 150 | " return learner.npoints > 200\n",
|
113 | 151 | "\n",
|
114 | 152 | "scheduler = adaptive_scheduler.scheduler.DefaultScheduler(\n",
|
115 |
| - " cores=100,\n", |
| 153 | + " cores=40,\n", |
116 | 154 | " executor_type=\"ipyparallel\",\n",
|
117 | 155 | ") # PBS or SLURM\n",
|
118 | 156 | "\n",
|
|
0 commit comments