{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "start_time": "2018-11-04T08:04:23.031Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 3.5364400617784897\n", "5 2.824247002189513\n", "10 2.3462630380353606\n", "15 1.9657988439545293\n", "20 1.7431834173401826\n", "25 1.5548321006945318\n", "30 1.4273202243105385\n", "35 1.324341384452208\n", "40 0.792594549254551\n", "45 0.792594549254551\n", "50 0.792594549254551\n", "55 0.6011330622003288\n", "60 0.6011330622003288\n", "65 0.5913752343291452\n", "70 0.5913752343291452\n", "75 0.5913752343291452\n", "80 0.5913752343291452\n", "85 0.5913752343291452\n", "90 0.49733505560725083\n", "95 0.49733505560725083\n", "100 0.49733505560725083\n", "105 0.49733505560725083\n", "110 0.49733505560725083\n", "115 0.49733505560725083\n", "120 0.49733505560725083\n", "125 0.49733505560725083\n", "130 0.49733505560725083\n", "135 0.49733505560725083\n", "140 0.49733505560725083\n", "145 0.49733505560725083\n", "150 0.4092137422382544\n", "155 0.4092137422382544\n" ] } ], "source": [ "import warnings\n", "warnings.filterwarnings(\"ignore\",category =RuntimeWarning)\n", "import numpy as np\n", "import makeqx as mkq\n", "import de2 as de\n", "import multiprocessing as mp\n", " \n", "def arc_0(qx, lam_min=400, lam_max=800, npoints=50):\n", " cthick = qx[0]\n", " q_x = qx[1:]\n", " Rs0, Rp0 = mkq.tmm_lam_parallel(q_x, cthick, 0, n_par=12, lam_low=lam_min, lam_high=lam_max, lam_pts=npoints, n_subs=1.52)\n", " return np.mean(Rs0)\n", " \n", "def arc_dig_0(qx, lam_min=400, lam_max=800, npoints=50):\n", " cthick = qx[0]\n", " q_x = mkq.digitize_qx(qx[1:], dlevels=2)\n", " Rs0, Rp0 = mkq.tmm_lam_parallel(q_x, cthick, 0, n_par=12, lam_low=lam_min, lam_high=lam_max, lam_pts=npoints, n_subs=1.52)\n", " return np.mean(Rs0)\n", "\n", "\n", "def tmm_wrapper2(arg):\n", " args, kwargs = arg\n", " return mkq.tmm_eval_wsweep(*args, **kwargs)\n", "\n", "\n", "def arc_par(pop, **kwargs):\n", " jobs = []\n", " pool=mp.Pool(12)\n", " for indiv in pop:\n", " indivi = mkq.digitize_qx(indiv[1:], dlevels=2)\n", " jobs.append((indivi, indiv[0], 0))\n", " arg = [(j, kwargs) for j in jobs]\n", " answ = np.array(pool.map(tmm_wrapper2, arg))\n", " pool.close()\n", " return np.mean(answ, axis=1)\n", "\n", " \n", "num_layers = 40\n", "bnds = [(0, 1)]*num_layers\n", "bnds = [(300, 400)] + bnds\n", "its_first = 0\n", "psnew = 500\n", "its_second = 500\n", "\n", "pop = np.ones((psnew, 1+ num_layers))\n", "for indiv in range(psnew):\n", " pop[indiv,1:] = mkq.make_qx(num_layers)\n", " pop[indiv,0] = 500 \n", " \n", "b, c, hstry = de.de_cp(fobj=arc_par, bounds=bnds, pop=pop, history=[], it_start=its_first, popsize=psnew, its=its_second, lam_low=400, lam_high=800, lam_pts=50)\n", "\n", "\n", "#m1 = mkq.tmm_eval2(qx=pop[0][1:], cthick=pop[0][0]) \n", "#m2 = mkq.tmm_eval(qx=pop[0][1:], cthick=pop[0][0]) \n", "\n", "#arc_par(pop, lam_low=400, lam_high=800, lam_pts=50)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2018-11-04T07:55:59.342116Z", "start_time": "2018-11-04T07:55:55.500769Z" } }, "outputs": [], "source": [ "np.savetxt(X=b, fname='b.txt')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false } }, "nbformat": 4, "nbformat_minor": 2 }