{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "ZyYxarWXICGB" }, "source": [ "\"Licencia
Python en ciencias e ingeniería: tutoriales basados en ejemplos por Sergio Gutiérrez Rodrigo y Adrián Navas Montilla se distribuye bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional." ] }, { "cell_type": "markdown", "metadata": { "id": "cU67irCkAoSz" }, "source": [ "---\n", "Programa de Recursos en Abierto en la UZ (2022)\n", "\n", "**Python en ciencias e ingeniería: tutoriales basados en ejemplos**\n", "---\n", "Universidad de Zaragoza\n", "---\n", "*PRAUZ-739*\n" ] }, { "cell_type": "markdown", "metadata": { "id": "LCQ8S_T0BJsI" }, "source": [ "##
Método de Diferencias Finitas en el Dominio del Tiempo
\n", "\n", "\n", "-----------------------------------------\n" ] }, { "cell_type": "markdown", "metadata": { "id": "KB2sMUT6t1Xe" }, "source": [ "La intuición de Michael Faraday acerca de la existencia de líneas de fuerza invisibles asociadas a la electricidad y el magnetismo, junto con la obra posterior de James Clerck Maxwell, un formalismo matemático que daba cuenta de los fenómenos eléctricos y magnéticos conocidos hasta mediados del siglo XIX, abrieron una caja de Pandora sin precedentes. Maxwell demostró en 1864 que la luz visible es una onda electromagnética y predijo la existencia de otros tipos de ondas invisibles al ojo humano. Sus predicciones fueron demostradas en 1888 por Heinrich Hertz y este hecho no tardaría mucho en cambiar por completo nuestro mundo. Desde la invención de la radio o el RADAR, hasta nuestros días, con el desarrollo de la Nanofotónica, los fenómenos relacionados con la luz no han dejado de hacer avanzar a las sociedades modernas. Las tecnologías basadas en la luz cambiaron el curso de una guerra, nos conectan con el Universo y con el resto de seres humanos y algún día nos proporcionarán energía ilimitada si conseguimos dominar los secretos de la fotosíntesis [1].\n", " \n", "El método FDTD se ha aplicado en una gran variedad de problemas de ingeniería y física desde que originalmente fue propuesto en 1966 por K. Yee [2]. El método FDTD se ha desarrollado a lo largo de los años, siendo uno de los métodos más difundidos en el electromagnetismo computacional a nivel mundial. En pocas palabras, las propiedades ópticas de un sistema dado (una célula viva, un avión, una nanoestructura...) se obtienen a través de cálculos del campo electromagnético, que se propaga en un espacio/tiempo discretizado, de acuerdo con las ecuaciones de Maxwell y las condiciones de contorno (que indican cómo responden los materiales al campo EM). El FDTD proporciona así la \"película\" completa de la evolución del campo electromagnético de un sistema dado. Esta información se procesa posteriormente para obtener la respuesta EM del sistema considerado.\n", "\n", "[1] Bodanis, M. (2005). Electric Universe. How electricity switched on the modern world. Abacus.\n", "\n", "[2] A. Taflove, S.C. Hagness, Computational Electrodynamics: The Finite-Difference Time-Domain Method, 3rd edn. (ArtechHouse, Boston, 2005).\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "F3Yjcs2M7Rf0" }, "source": [ "# Simulador de ondas planas\n", "\n", "- Incorpora unas rudimentarias capas de absorción en los extremos límite de la simulación.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "executionInfo": { "elapsed": 31383, "status": "ok", "timestamp": 1683642829878, "user": { "displayName": "SERGIO GUTIERREZ RODRIGO", "userId": "07959720391705098820" }, "user_tz": -120 }, "id": "wtX5yPRot1Xf", "outputId": "9b5d835e-6876-4eba-e653-50543edc086f" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "------------------------------------------------------\n", "Método de Diferencias Finitas en el Dominio del Tiempo\n", "(FDTD, Finite-Difference Time-Domain)\n", "------------------------------------------------------ \n", "\n", "Tamaño de la simulación de 2.0 m\n", "Pasos necesarios para recorrer todo el sistema= 2000\n", ".................................................................\n", "\n", " Empieza a correr el algoritmo FDTD...\n", "Método FDTD calculando, paso temporal 0 de 2000\n", "Método FDTD calculando, paso temporal 500 de 2000\n", "Método FDTD calculando, paso temporal 1000 de 2000\n", "Método FDTD calculando, paso temporal 1500 de 2000\n" ] } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "from math import pi, sin,cos,sqrt,exp\n", "from matplotlib import pyplot as plt\n", "from matplotlib import animation\n", "\n", "# Constantes físicas. Unidades en el Sistema Internacional (SI)\n", "c = 299792458.0 # m/s\n", "eps0 = 8.854187817e-12 # F·m-1 \n", "mu0 = 1.0/(eps0*(c**2)) # N·A-2\n", "\n", "\n", "# Parámetros iniciales FDTD\n", "nx = 2000 # Número de puntos en los que se discretiza la dirección de propagación (dirección x) \n", "dx = 0.001 # Tamaño de la celda unidad en metros\n", "L= nx*dx # Longitud del sistema en metros\n", "x_source = 5 # Una onda plana se excita en la posición/celda x=x_source\n", "nsteps = 2000 # Pasos temporales\n", "dt = dx/(c*sqrt(1.0)) # Paso temporal en segundos \n", " # Hay que tener cuidado y definirlo como está, debido a la restricción del algoritmo de Yee\n", " # que impone el criterio de estabilidad en el que dt <= dx/(c*sqrt(3)) para sistemas 3D\n", "\n", "# Onda sinusoidad propagándose en la dirección x y polarizada linealmente en la dirección y.\n", "ey = np.zeros(nx) # Se define el vector que contendrá la componente Ey en todos los puntos definidos en el dominio\n", "bz = np.zeros(nx) # Se define el vector que contendrá la componente Bz en todos los puntos definidos en el dominio\n", "\n", "# Frecuencia incidente\n", "freq_in=2.45e9 # frecuencia en Hz \n", "\n", "print(\"------------------------------------------------------\")\n", "print(\"Método de Diferencias Finitas en el Dominio del Tiempo\")\n", "print(\"(FDTD, Finite-Difference Time-Domain)\")\n", "print(\"------------------------------------------------------ \\n\")\n", "print(\"Tamaño de la simulación de \",L,\" m\")\n", "print(\"Pasos necesarios para recorrer todo el sistema=\",int(L/(c*dt)))\n", "\n", "# Variables para definir las condiciones de contorno\n", "boundary_low = [0, 0]\n", "boundary_high = [0, 0]\n", "\n", "# Cada show_step veces muestra el tiempo simulado\n", "show_step=500\n", "\n", "# Se guarda ey en cada uno de los instantes fijados por show_step\n", "ey_plt = np.zeros((nsteps,nx))\n", "\n", "'''\n", "El algoritmo FDTD\n", "'''\n", "# Loop FDTD principal\n", "print(\".................................................................\")\n", "print(\"\\n Empieza a correr el algoritmo FDTD...\")\n", "for time_step in range(0, nsteps):\n", " if(time_step % show_step == 0): # Cada show_step veces muestra el tiempo simulado\n", " print(\"Método FDTD calculando, paso temporal \",time_step,\" de \",nsteps) \n", " \n", " # Se calcula la componente Ey del campo EM para las posiciones dadas\n", " for k in range(1, nx):\n", " ey[k] = ey[k] - (dt/(dx*mu0*eps0))*(bz[k] - bz[k-1])\n", " # Una onda plana se excita en x=x_source \n", " pulse =sin(2 * pi * freq_in * dt * time_step) \n", " ey[x_source]=ey[x_source]-pulse # Se introduce la fuente(corriente) en el FDTD (campo eléctrico) \n", " \n", " # Condiciones de absorbente en los extremos \n", " ey[0] = boundary_low.pop(0)\n", " boundary_low.append(ey[1])\n", " ey[nx - 1] = boundary_high.pop(0)\n", " boundary_high.append(ey[nx - 2]) \n", " \n", " # Se calcula la componente Bz del campo EM para las posiciones dadas\n", " for k in range(0,nx - 1):\n", " bz[k] = bz[k] - (dt/dx)*(ey[k+1] - ey[k]) \n", " bz[x_source]=bz[x_source]- (dt/dx)*pulse # Se introduce la fuente en el FDTD (campo magnético) \n", " \n", " # Guarda Ey en todos los instantes de tiempo y todos los puntos nx\n", " for k in range (1,nx): \n", " ey_plt[time_step,k]=ey[k]\n", " \n" ] }, { "cell_type": "markdown", "metadata": { "id": "Tb3RG_ZM7Yz6" }, "source": [ "# Representación gráfica y evolución temporal" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 598 }, "executionInfo": { "elapsed": 43879, "status": "ok", "timestamp": 1683642884817, "user": { "displayName": "SERGIO GUTIERREZ RODRIGO", "userId": "07959720391705098820" }, "user_tz": -120 }, "id": "Q8dzWgCf7Xz6", "outputId": "b9730410-3893-447a-9149-831f724a4c9d" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".................................................................\n", "\n", " La película se crea en el mismo directorio en el que está este archivo \n", " y se llama fdtd_onda_plana.mp4\n", "\n", " Empieza la animación...\n", "Creando animación, paso 0 de 500\n", "Creando animación, paso 50 de 500\n", "Creando animación, paso 100 de 500\n", "Creando animación, paso 150 de 500\n", "Creando animación, paso 200 de 500\n", "Creando animación, paso 250 de 500\n", "Creando animación, paso 300 de 500\n", "Creando animación, paso 350 de 500\n", "Creando animación, paso 400 de 500\n", "Creando animación, paso 450 de 500\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhgAAAEeCAYAAADINWyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAAk6AAAJOgHwZJJKAAClyUlEQVR4nO29eZxcZZU+/tReXV29pjvpzkICEjABArLT2RoiSBBlBgkBJcoXUcdxHPkq80NRQUC+OqioM86MC6s6igmDoMAgBAyERY3IIkoQAoHsSaf3Wrq2+/vj1nurqrvuve9y3tuhc8/n40dSXXXf+977nvec85znnDdgGIYBX3zxxRdffPHFF0IJTvYN+OKLL7744osvU098B8MXX3zxxRdffCEX38HwxRdffPHFF1/IxXcwfPHFF1988cUXcvEdDF988cUXX3zxhVx8B8MXX6pk69at6OzsRG9vL04++WRs2rSJ7LoPP/wwybUo5Ctf+Qruv/9+1++dccYZaG1trfnuz3/+c5x66qno7e3FX//6VwDAn//8ZyxduhTLli3DL37xC+u7d911F8444wz09vbimWeeoZ+IL774csBKeLJvwBdfDjRZvnw57r77bvz+97/HF7/4RRLHgDkYZ511FsEd8kupVEIwKB9H/PSnP8UPf/hD69/FYhHf+MY38Pvf/x579+7Fpz71Kdx77734whe+gNtvvx2HHnooVqxYgfPOOw/9/f2477778OijjyIQCFBMxxdffHkbiY9g+OKLjRx33HHYtm0bHnnkESxfvhwnnXQSvv71rwMA7rvvPpx88sk4/fTT8V//9V8AgJtvvhmnnXYalixZgj/96U811/qv//ov/OIXv0Bvby/6+/txxx13YOnSpejp6cFjjz0GAOjt7cVnP/tZnHrqqfjKV76CT3/60zjxxBPxne98BwBw6aWX4qMf/Sje/e53Y/Xq1SgWiygWi7jkkkuwfPlyvPe978XAwAC2bt2KZcuWYfXq1fjXf/1X/OQnP0Fvby+OP/54/OQnPxF6BjNnzqz5d19fH2bNmoVIJIJZs2Zh8+bNAIA9e/bg8MMPRygUwuzZs/HSSy/hoYceQiwWw5lnnok1a9ZgdHRU+B344osvb1/xEQxffLGRxx9/HO985zuxePFiPP744yiVSjjllFPwmc98BnfffTfuuOMOLFy4EKVSCbt378a9996Lp556Cm+99RY+9rGP4ZFHHrGu9clPfhJz5szBN7/5Tezfvx933XUXnnjiCaTTabz3ve/FGWecAQD4wAc+gG9+85s45JBDcP/99+Pb3/42TjnlFFxxxRUAgFNOOQW33norPv/5z+O+++5DqVTC7Nmz8dOf/hQ/+clP8O///u/48Ic/jB07dmD9+vWIRqNIp9NYs2YNMpkMFi9ejDVr1tTMc8WKFSgWizWffec738Fxxx034Zl0dnZi27ZtGBoawvbt2/Haa68hn8/jkEMOwR/+8AccddRR+N3vfoeBgQHs2bMHfX19eOSRR/Bf//Vf+N73vofPf/7ztC/JF198OWDFdzB88WWcPP744+jt7UUymcR3vvMdPPvss7juuuuQz+exdetW7N27F1/+8pfxzW9+E5lMBp/61KcAAMceeyyCwSDmzZuHwcFB2+tv2bIFf/nLX3D66acDAPbt22f9bdGiRQgGg+jq6sKxxx6LQCCASCRi/f2EE04AAJx00kl49dVXYRgGTjrpJOszls459thjEY1GAQC/+c1v8N3vfheGYeC1116bcD+PPvoo97MJBoP4+te/jvPOOw9z587FKaecgkgkgm984xv4p3/6JwQCASxYsABdXV1obW3F6aefjkAggBUrVuCrX/0q9zi++OLL2198B8MXX8YJ42Aw+b//9//i+9//Pg477DAcf/zxMAwDc+bMwQ9/+EPs3LkTl1xyCX72s5/h+eefR6lUwltvvYXW1taaa0YiEQslOOyww7Bo0SLcf//9CAQCyOfz1vequQr1eAvPPfccTjjhBPzxj3/EiSeeCMMw8Ic//AEf+MAHsGnTJsyfPx8AangXX/3qV/HEE08gEAjgsMMOm3BNEQQDAM4++2ycffbZ+Nvf/oabb77ZmtODDz6IdDqNiy++GEcddRQMw8A3vvENAMDzzz9fd2xffPFl6orvYPjii4t84AMfwN///d/jmGOOQVNTEwDguuuuwzPPPINcLodPf/rT6OrqwnnnnYeenh4Eg0H8+7//e801jjnmGHzhC1/AqlWr8KMf/QgXXXQRli9fjlAohGOOOQb/9m//xnUvzz77LH7+859j2rRpuOGGGwAA99xzD5YtW4ZkMomf/vSnGB4ervnN+eefj6VLl+L4449HW1vbhGs6IRiXXXYZNmzYgHvvvRcvvfQSPv/5z+OK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OMkD3Timao9rioVxpAdBzbFzWjEyZu5xJ3qwbo4pv7fBdB4zW+JaeW1MjpvTUrXH0c5Rq4Oxe/du9Pb2Tvjf7t27MTw8jDVr1uCOO+5AJBJBa2srhoeHrd+GQqbxCAYrtzg0NIT29vaa77LPqmXVqlVYu3Yt1q5dizlz5qC7pcF6cSsWzNDWL79aeo/stP57yfxOh2/SyFEzm63FePqR07WPBwDnHNNt/feph+nfYE4+tB1NZRh2+RH6nykArDzanGM0HMQJc/VvMEuP6ABbnl7N8dxF5hw7kjHtERMAvHvBDOu/z1w4w+GbNBIKBtBb1okjZzRprXZisrJKN05/p/73mIiGsfTwDgDAae+Ypu3ck2qp3me8WKvTm+I4sayDy47o1Nofgsk5x3RZ/73Ug3388OlJCyldfuR07al1ADj76MpaXUY8x4DB+tl6KIVCAe9///vxuc99DitWrAAA5PN5LFu2DI8//jj++Mc/4s4778QPfvAD/P3f/z2++c1vYvr06Tj77LPx1FNP4Tvf+Q6am5tx2WWXYeXKlfjRj36E2bNn1x3rsMMOw4knnujl9CZFtm3bhjlz5kz2bXgiB8tc/XlOLfHnObXkYJnnH//4R7z++utyPzYmQX784x8b7e3txvLly43ly5cbd911l2EYhnHXXXcZp512mnH66acbb731lmEYhvGXv/zFWLJkiXHaaacZDz/8sGEYhjEyMmKcd955xuLFi42vfe1rjmOtWrVK72QOEDlY5mkYB89c/XlOLfHnObXEn6e76KX92siaNWuwZs2aCZ+vXr0aq1evrvls4cKF2LhxY81nyWQS9957r85b9MUXX3zxxRdfFGTKN9patWrVZN+CJ3KwzBM4eObqz3NqiT/PqSX+PN1lUjgYvvjiiy+++OLL1JYpj2D44osvvvjiiy/ey5RwMK666iosXboUa9assdqOA2YvjcsuuwxLly7FFVdcYX3+3e9+F4sXL8b73//+mtLYA13s5vnrX/8ap5xyCpYsWYLPfOYz1udNTU1WafCf//znybhlKbGb54YNGzBnzhz09vZa1UfA1Hufv/zlL633dsghh+C73/0uAGD+/PnW54888shk3baQDA0N4eSTT0YymcRLL71U87eppp9Oc51KOuo0z6mko07znEo6and0B0Cgo2RU00mS559/3vjQhz5kGIZhfPWrXzV+9rOfWX+79957jS9+8YuGYRjG5Zdfbjz99NPGvn37jDPOOMMolUrGT3/6U+P//b//Nyn3LSpO83zzzTeNfD5vGIZhXHTRRcamTZsMwzCME044wfsbVRSnef72t781Pve5z9V8fyq+z2rp7e01tm7dahjG2/N95nI5Y+/evcZHPvIR489//nPN36aSfhqG81ynko46zXMq6ajTPKvl7a6jO3fuNNLptGEYhvH5z3/eWLdunfU3VR192yMY1W3DWZ8Mp79t2rQJy5cvRyAQmPD9A1mc5nnIIYcgHDYLgljrdQDYsmULli1bhk9+8pPIZrPe37SEOM0TAP7nf/4HS5cutSKGqfg+mezevRtjY2OYO3cuAGB0dBTLly/HBz/4wQndaw9UiUQi6Oys37xnKukn4DzXqaSjTvMEpo6Ous0TmBo6Wu/oDiaqOvq2dzCc2obX+5tbm/EDVXjue9OmTdi7dy+OP/54AMBrr72GJ554At3d3fiP//gPT+9XVpzmeeKJJ+KVV17Bo48+ioceegjPPvvslH6f99xzDz7wgQ9Y/37qqafw+OOP4+yzz8a1117r2b3qkqmkn7wyFXTUSaaSjvLIVNLR6qM7mKjq6NvewXBqG17vb25txg9Ucbvv7du344orrsCdd95pfTZtmnkGwgUXXIAXXnjBu5tVEKd5JpNJRKNRRKNRvO9978MLL7wwZd8nANx999244IILrH+/Hd+nk0wl/eSRqaKjTjKVdJRHpoqOjj+6g4mqjr7tHYyenh6sX78eAPCb3/wGixcvdvzbSSedhCeeeKLu9w9kcZrnyMgILrroIvzgBz/A9Onm+QCpVMo6MG7jxo04/PDDvb9pCXGaZzWZ6Mknn8Thhx8+Jd8nAOzZs6cGes3lchgbGwPw9nqfTjKV9NNNppKOOslU0lE3mSo6WigUcNFFF+Haa6/FkUceWfM3ZR3VSx/xRq688kpjyZIlxgc/+EFjbGzM+PjHP24YhmHk83njIx/5iLFkyRLj05/+tPX9m2++2ejp6THe+973GoODg5N128JiN8/rr7/emDlzptV6fcOGDcZzzz1nvOtd7zKWLl1qvP/9758S8/zRj35knHTSScZpp51mXHnlldb3p9r7NAzD+M///E/jW9/6lvXv3bt3G8cff7yxdOlS493vfrfVSv/tICtXrjS6u7uNU0891bj99tunrH4ahv1cp5qO2s1zqumo3TwNY+roaL2jO6h01G+05Ysvvvjiiy++kMvbPkXiiy+++OKLL74ceOI7GL744osvvvjiC7n4DoYvvvjiiy+++EIuvoPhiy+++OKLL76Qi+9g+OKLL0Jy+eWXY3Bw0NMx77jjDuRyOenf33TTTdi0aRPhHfniiy9u4jsYvvjiC7ds3boVoVAIra2tno5r52CUSiWu33/0ox/Fv/3bv1Hfli+++OIgvoPhiy++WPLwww/jsssuAwB85CMfwWOPPVbz91/96lfWKZnZbBaXXHIJzjjjDOtUxa1bt2Lx4sVYvXo1jjnmmAm/37p1K3p6erB69WocddRR+MUvfoFzzz0Xxx57LF599VUApjOxdOlS9PT04LHHHsMzzzyD559/HitXrsTNN9+Mr3zlK7j00ktxzjnn4MUXX8TnPvc5LFmyBGeccQa2bt2K/v5+9Pb24vTTT8d5550HwOywuHPnTquxlS+++KJffAfDF198seSss85CPB7Hpz71KbS0tOCMM86o+fvmzZtx2GGHAQBuueUWnHHGGXjsscfwoQ99CD/84Q8BAH19ffjv//5vrF27Ft/73vcmjDEwMICf/exn+Pa3v42bbroJv/rVr3D99dfjJz/5Cfbv34+77roLTzzxBB555BFcf/31OO2003Dcccfhf//3f/HZz34WADBnzhw8+OCDKBQK2LFjB5588klcd911uP766/Hcc8/h5JNPxm9/+1v88pe/tMbt7OzEW2+9pevR+eKLL+MkPNk34IsvvhxY8ulPfxpHHXUU3nzzTcfv/fWvf8WmTZvw4x//GPl8HkuXLgUAHH300QiHw5gzZw4GBgYm/G7hwoUIhUKYOXMmjj76aASDQcyaNQvr16/Hli1b8Je//AWnn346AGDfvn11xz7ppJMAmIeFsf8+6aSTcPXVV2P58uV48skn8aEPfQjvete7cOWVV0o/C1988UVefAfDF198scQwDPzLv/wLvv/97+Oqq67Cz372s5q/H3nkkXj99ddx4okn4p3vfCdOO+00rFmzBgCQz+exY8cOBAKBmuuNl+q/j//uYYcdhkWLFuH+++9HIBBAPp8HYB6dXZ3eYEdKH3744bj33nsBmCeVzp8/H/l83jrJ8qyzzsKFF16IQw45BHv37sWcOXNUHo8vvvgiIH6KxBdffLHk+9//PpYuXYqPf/zjmD17Nu66666av7///e/Ho48+CgD4+Mc/jkceeQRnnHEGzjjjDDz88MPK43d0dOCiiy7C8uXLcfrpp+Nzn/ucNe6FF15opWGYnHjiieju7saSJUvw5S9/GV/+8pexadMmLF26FMuXL0dnZydmz56N/fv3Y+bMmQiH/ZjKF1+8Ev8sEl988UVIPvrRj+Jb3/qW55UkKnLTTTeht7cXJ5988mTfii++HDTiOxi++OKLL7744gu5+CkSX3zxxRdffPGFXHwHwxdffPHFF198IRffwfDFF1988cUXX8jFdzB88cUXX3zxxRdy8R0MX3zxxRdffPGFXHwHwxdffPHFF198IZf/HyuijzwXDFW6AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "'''\n", "A continuación el código que se utiliza para pintar gráficos.\n", "La mayor parte de las líneas pueden tomarse como una receta a seguir.\n", "No es necesario entender exactamente qué hacen\n", "''' \n", "# Definición de la figura y los elementos comunes (ejes...)\n", "fig = plt.figure(dpi=60, figsize=(10,5))\n", "ax = plt.axes(xlim=(0, dx*nx), ylim=(-np.max(ey_plt), np.max(ey_plt)))\n", "ax.set_xlabel(\"x (en metros)\")\n", "ax.set_ylabel(\"$E_y$ (V/m)\")\n", "ax.axhline(y=0, color='k', linestyle='--')\n", "line, = ax.plot([], [], lw=2)\n", "title = ax.text(.3, 1.05, '', transform = ax.transAxes, va='center')\n", "ax.xaxis.set_animated(True)\n", "# Función que inicializa el primer fotograma\n", "def init():\n", " title.set_text(\"\")\n", " line.set_data([], [])\n", " return line,title\n", "# Función para la animación. Cuando se genera cada uno de los fotogramas es llamada.\n", "show_step=50\n", "no_frames = 500\n", "print(\".................................................................\")\n", "print(\"\\n La película se crea en el mismo directorio en el que está este archivo \\n y se llama fdtd_onda_plana.mp4\")\n", "print(\"\\n Empieza la animación...\")\n", "def animate(i):\n", " if(i % show_step == 0): # Cada show_step veces muestra el tiempo simulado\n", " print(\"Creando animación, paso \",i,\" de \", no_frames)\n", " x = np.linspace(0, nx*dx, nx)\n", " resolution=int(nsteps/no_frames)\n", " y = ey_plt[resolution*i]\n", " line.set_data(x, y)\n", " title.set_text(\"Paso temporal=\"+str(resolution*i))\n", " return line,title\n", "# LLama al \"animador\", la función que genera la película.\n", "# Con blit=True solo las partes que cambian de fotograma a fotograma cambian.\n", "anim = animation.FuncAnimation(fig, animate, init_func=init,frames=no_frames, interval=200, blit=True)\n", "# Guarda la animación como mp4. Reguiere tener instalado ffmpeg o mencoder\n", "anim.save('fdtd_onda_plana.mp4', fps=10, extra_args=['-vcodec', 'libx264'])\n", "plt.show() " ] } ], "metadata": { "colab": { "provenance": [], "toc_visible": true }, "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.6" } }, "nbformat": 4, "nbformat_minor": 1 }