{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%%writefile learners_file.py\n", "\n", "import adaptive\n", "\n", "import phase_diagram\n", "lead_pars = dict(\n", " a=10, r1=50, r2=70, coverage_angle=135, angle=45, with_shell=True, which_lead=\"\"\n", ")\n", "\n", "params = dict(\n", " alpha=20,\n", " B_x=0,\n", " B_y=0,\n", " B_z=0,\n", " Delta=110,\n", " g=50,\n", " orbital=True,\n", " mu_sc=100,\n", " c_tunnel=3 / 4,\n", " V_r=-50,\n", " intrinsic_sc=False,\n", " mu_=lambda x0, sigma, mu_lead, mu_wire: mu_lead,\n", " V_=lambda z, V_0, V_r, V_l, x0, sigma, r1: 0,\n", " V_0=None,\n", " V_l=None,\n", " mu_lead=10,\n", " mu_wire=None,\n", " r1=None,\n", " sigma=None,\n", " x0=None,\n", " **phase_diagram.constants.__dict__\n", ")\n", "\n", "\n", "def pf(xy, params=params, lead_pars=lead_pars):\n", " import phase_diagram \n", "\n", " params[\"B_x\"], params[\"mu_lead\"] = xy\n", " lead = phase_diagram.make_lead(**lead_pars).finalized()\n", " return phase_diagram.calculate_pfaffian(lead, params)\n", "\n", "\n", "def smallest_gap(xy, params=params, lead_pars=lead_pars):\n", " import phase_diagram\n", "\n", " params[\"B_x\"], params[\"mu_lead\"] = xy\n", " lead = phase_diagram.make_lead(**lead_pars).finalized()\n", " pf = phase_diagram.calculate_pfaffian(lead, params)\n", " gap = phase_diagram.gap_from_modes(lead, params)\n", " return pf * gap\n", "\n", "fname = 'phase_diagram_gap.pickle'\n", "# fname = 'phase_diagram.pickle'\n", "\n", "loss = adaptive.learner.learnerND.curvature_loss_function()\n", "learner = adaptive.LearnerND(smallest_gap, bounds=[(0, 2), (0, 35)], loss_per_simplex=loss)\n", "\n", "# learner.load(fname)\n", "\n", "learners = [learner]\n", "fnames = [fname]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import adaptive\n", "adaptive.notebook_extension()\n", "runner = adaptive.Runner(learner, goal=lambda l: l.npoints > 60000)\n", "runner.live_info()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%%output size=100\n", "learner.plot(tri_alpha=0.4, n=None)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "learner.save(fname)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import adaptive_scheduler\n", "\n", "def goal(learner):\n", " return learner.npoints > 200\n", "\n", "scheduler = adaptive_scheduler.scheduler.DefaultScheduler(\n", " cores=100,\n", " executor_type=\"ipyparallel\",\n", ") # PBS or SLURM\n", "\n", "run_manager = adaptive_scheduler.server_support.RunManager(\n", " scheduler=scheduler,\n", " learners_file=\"learners_file.py\",\n", " goal=goal,\n", " log_interval=30,\n", " save_interval=30,\n", " job_name='phase-diagram'\n", ")\n", "run_manager.start()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "language_info": { "name": "python", "pygments_lexer": "ipython3" } }, "nbformat": 4, "nbformat_minor": 2 }