{"id":562,"date":"2026-07-22T08:17:36","date_gmt":"2026-07-22T08:17:36","guid":{"rendered":"https:\/\/matforge.org\/?p=562","raw":"https:\/\/matforge.org\/?p=562"},"modified":"2026-07-22T08:17:36","modified_gmt":"2026-07-22T08:17:36","slug":"student-project-ideas-computational-science-simulation","status":"publish","type":"post","link":"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/","title":{"rendered":"Ideas de proyectos estudiantiles para ciencia computacional y simulaci\u00f3n: lista seleccionada con plantillas de c\u00f3digo","raw":"Ideas de proyectos estudiantiles para ciencia computacional y simulaci\u00f3n: lista seleccionada con plantillas de c\u00f3digo"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 12<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><h2 id=\"key-takeaways\">Comida clave<\/h2>\n<ul>\n<li>Las ideas de proyectos curados cubren los niveles principiantes, intermedios y avanzados, con un enfoque en la simulaci\u00f3n y la ciencia computacional.<\/li>\n<li>Los niveles de dificultad reflejan los requisitos previos, la complejidad de las matem\u00e1ticas y la inversi\u00f3n de tiempo esperada.<\/li>\n<li>Se incluyen plantillas de c\u00f3digo para cada proyecto para que los estudiantes puedan comenzar a construir r\u00e1pidamente.<\/li>\n<li>Los resultados del aprendizaje muestran lo que ense\u00f1a cada proyecto.<\/li>\n<li>Una hoja de ruta de habilidades para proyectos ayuda a los estudiantes a elegir un proyecto basado en su conocimiento actual.<\/li>\n<\/ul>\n<p>Los proyectos estudiantiles en ciencia computacional y simulaci\u00f3n son donde la teor\u00eda finalmente se encuentra con el c\u00f3digo. Puede aprender m\u00e9todos de volumen finito, ecuaciones diferenciales parciales y leyes de conservaci\u00f3n en las conferencias, pero las ecuaciones en una pizarra blanca no ense\u00f1an c\u00f3mo se siente escribir un solucionador desde cero.<\/p>\n<p>Si desea comprender c\u00f3mo se traducen los m\u00e9todos num\u00e9ricos en simulaciones de trabajo, elija un proyecto y comience a construir.<\/p>\n<p>Esta gu\u00eda selecciona ideas pr\u00e1cticas de proyectos inspiradas en cursos universitarios de f\u00edsica computacional, proyectos cient\u00edficos de c\u00f3digo abierto y repositorios de pares. Cada proyecto usa Python y construye hacia algo que los estudiantes pueden incluir en una cartera.<\/p>\n<h2 id=\"difficulty-levels\">Explicar los niveles de dificultad del proyecto<\/h2>\n<p>Antes de elegir un proyecto, ayuda a entender lo que significa cada nivel en t\u00e9rminos de esfuerzo.<\/p>\n<table class=\"custom-table\">\n<tbody>\n<tr>\n<th>Nivel<\/th>\n<th>requisitos previos<\/th>\n<th>tiempo esperado<\/th>\n<th>Qu\u00e9 har\u00e1s<\/th>\n<\/tr>\n<tr>\n<td>Principiante<\/td>\n<td>Conceptos b\u00e1sicos de Python, numpy, matplotlib<\/td>\n<td>2-4 semanas<\/td>\n<td>Resuelva odas o PDE simples con m\u00e9todos expl\u00edcitos y visualice resultados<\/td>\n<\/tr>\n<tr>\n<td>Intermedio<\/td>\n<td>An\u00e1lisis num\u00e9rico, \u00e1lgebra lineal, ODE\/PDE Antecedentes<\/td>\n<td>4\u20138 semanas<\/td>\n<td>Implementar solucionadores, manejar condiciones de contorno y comparar precisi\u00f3n<\/td>\n<\/tr>\n<tr>\n<td>Avanzado<\/td>\n<td>M\u00e9todos num\u00e9ricos avanzados, computaci\u00f3n paralela o antecedentes de f\u00edsica especializada<\/td>\n<td>8-16 semanas<\/td>\n<td>Construya simulaciones multif\u00edsicas, optimice el rendimiento o compare con los resultados de la literatura<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>La tabla no es una clasificaci\u00f3n. Es una herramienta de emparejamiento. Elija un nivel que coincida con su preparaci\u00f3n actual, luego mu\u00e9vase hacia arriba una vez que se sienta c\u00f3modo.<\/p>\n<h2 id=\"skills-roadmap\">Hoja de ruta de habilidades a proyectos<\/h2>\n<p>La hoja de ruta a continuaci\u00f3n muestra qu\u00e9 conceptos matem\u00e1ticos y de programaci\u00f3n se asignan a qu\u00e9 proyectos.<\/p>\n<pre><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Skill \/ Concept \u2502 Projects That Use It                                    \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Python basics   \u2502 Heat equation solver, SIR epidemic model, Lennard-Jones \u2502\n\u2502 NumPy arrays    \u2502 Wave propagation, diffusion on grid                     \u2502\n\u2502 ODE solvers     \u2502 SIR model, projectile with drag, Lotka-Volterra         \u2502\n\u2502 PDE basics      \u2502 Heat equation, wave equation, diffusion                 \u2502\n\u2502 Linear algebra  \u2502 Jacobi iteration, eigenvalue problems, Krylov methods   \u2502\n\u2502 Monte Carlo     \u2502 Ising model, radioactive decay, option pricing          \u2502\n\u2502 FFT \/ spectral  \u2502 Wave propagation, turbulence, spectral methods          \u2502\n\u2502 Parallelism     \u2502 MPI diffusion solver, GPU molecular dynamics            \u2502\n\u2502 Phase-field     \u2502 Solidification, fracture mechanics, grain boundary      \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/code><\/pre>\n<h2 id=\"beginner-projects\">Proyectos principiantes<\/h2>\n<p>Estos proyectos introducen conceptos de simulaci\u00f3n centrales sin abrumar las matem\u00e1ticas o la configuraci\u00f3n compleja. Est\u00e1n dise\u00f1ados para funcionar en una computadora port\u00e1til sin hardware especial.<\/p>\n<h3>1. Solucionador de ecuaciones de calor en una cuadr\u00edcula<\/h3>\n<p>Dificultad: Principiante<br \/> Tiempo: 2-3 semanas<\/p>\n<p>Lo que va a simular: el calor se extiende a trav\u00e9s de una placa de metal, una varilla o una habitaci\u00f3n. La ecuaci\u00f3n de calor 1D o 2D es un primer proyecto cl\u00e1sico en PDES num\u00e9ricos porque es conceptualmente simple y ense\u00f1a los principales conceptos utilizados m\u00e1s adelante.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>\u2202T\/\u2202t = \u03b1 \u2207\u00b2T\n<\/code><\/pre>\n<p>Aqu\u00ed, <code>\u03b1<\/code> es difusividad t\u00e9rmica, <code>T<\/code> es temperatura y <code>\u2207\u00b2<\/code> es el laplaciano espacial.<\/p>\n<p>Pila de Python: <code>NumPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\nimport matplotlib.pyplot as plt\n\ndef heat_solver(alpha, L, dt, steps):\n    \"\"\"Solve the 1D heat equation with explicit finite differences.\"\"\"\n    dx = L \/ 50\n    x = np.linspace(0, L, 51)\n    T = np.zeros_like(x)\n    T[20:31] = 1.0  # initial hot strip\n    \n    history = [T.copy()]\n    \n    for step in range(steps):\n        T_new = T.copy()\n        for i in range(1, len(T) - 1):\n            T_new[i] = T[i] + dt * alpha \/ dx**2 * (\n                T[i + 1] - 2 * T[i] + T[i - 1]\n            )\n        T = T_new\n        history.append(T.copy())\n    \n    return x, np.array(history)\n\nx, history = heat_solver(alpha=1.0, L=1.0, dt=0.0001, steps=1000)\n\nplt.imshow(history, aspect=\"auto\", extent=[0, 1, 1000, 0])\nplt.xlabel(\"Position\")\nplt.ylabel(\"Time step\")\nplt.colorbar(label=\"Temperature\")\nplt.show()\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Comprender la estabilidad expl\u00edcita e impl\u00edcita.<\/li>\n<li>Implementaci\u00f3n de condiciones de contorno.<\/li>\n<li>Visualizaci\u00f3n de campos difusivos.<\/li>\n<li>Razonamiento b\u00e1sico de estabilidad de estilo CFL.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: La ecuaci\u00f3n del calor es el \u00abhola mundo\u00bb de la simulaci\u00f3n. Cada proyecto posterior que involucra difusi\u00f3n, ondas o modelado de campo de fase se basa en patrones num\u00e9ricos similares.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Cambie a un esquema completamente impl\u00edcito o manivela-Nicolson y compare la estabilidad.<\/li>\n<li>Agregue un t\u00e9rmino fuente, como un elemento calefactor.<\/li>\n<li>Exportar resultados a CSV para su an\u00e1lisis.<\/li>\n<\/ul>\n<h3>2. Modelo de propagaci\u00f3n epid\u00e9mica SIR<\/h3>\n<p>Dificultad: Principiante<br \/> Tiempo: 2-3 semanas<\/p>\n<p>Lo que vas a simular: El modelo compartimental cl\u00e1sico de diseminaci\u00f3n de la enfermedad: susceptible, infecciosa y recuperada. Este modelo captura curvas epid\u00e9micas, inmunidad de reba\u00f1o y el n\u00famero b\u00e1sico de reproducci\u00f3n sin una cuadr\u00edcula espacial.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>dS\/dt = -\u03b2SI\/N\ndI\/dt = \u03b2SI\/N - \u03b3I\ndR\/dt = \u03b3I\n<\/code><\/pre>\n<p>Aqu\u00ed, <code>\u03b2<\/code> es la tasa de transmisi\u00f3n, <code>\u03b3<\/code> es la tasa de recuperaci\u00f3n y <code>N = S + I + R<\/code> es la poblaci\u00f3n.<\/p>\n<p>Pila de Python: <code>NumPy<\/code>, <code>SciPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.integrate import odeint\n\ndef sir_model(y, t, beta, gamma):\n    S, I, R = y\n    N = S + I + R\n    dS = -beta * S * I \/ N\n    dI = beta * S * I \/ N - gamma * I\n    dR = gamma * I\n    return [dS, dI, dR]\n\nbeta, gamma = 0.5, 0.1\ny0 = [990, 10, 0]\nt = np.linspace(0, 100, 100)\n\nsolution = odeint(sir_model, y0, t, args=(beta, gamma))\n\nplt.plot(t, solution)\nplt.legend([\"Susceptible\", \"Infectious\", \"Recovered\"])\nplt.xlabel(\"Time\")\nplt.ylabel(\"Population\")\nplt.show()\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Resoluci\u00f3n de sistemas de ODE.<\/li>\n<li>Entendiendo <code>R\u2080 = \u03b2\/\u03b3<\/code>.<\/li>\n<li>Interpretaci\u00f3n de picos epid\u00e9micos y comportamiento de tama\u00f1o final.<\/li>\n<li>Trazar el comportamiento de plano de fase como la poblaci\u00f3n infecciosa versus susceptible.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: tiene relevancia en el mundo real con una complejidad m\u00ednima. El modelo es lo suficientemente simple como para entenderlo pero lo suficientemente rico como para respaldar experimentos significativos.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Agregue estructura de edad con m\u00faltiples compartimentos.<\/li>\n<li>Incluya la vacunaci\u00f3n como un par\u00e1metro dependiente del tiempo.<\/li>\n<li>Compare Euler, RK4 y solucionadores de oda Scipy.<\/li>\n<\/ul>\n<h3>3. Ecuaci\u00f3n de onda en una cadena<\/h3>\n<p>Dificultad: Principiante<br \/> Tiempo: 3-4 semanas<\/p>\n<p>Lo que va a simular: una cuerda vibrante, una membrana de tambor o una onda sonora. La ecuaci\u00f3n de onda introduce la propagaci\u00f3n, la reflexi\u00f3n y las ondas estacionarias.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>\u2202\u00b2u\/\u2202t\u00b2 = c\u00b2 \u2207\u00b2u\n<\/code><\/pre>\n<p>Las condiciones de contorno pueden ser fijas, libres o mixtas.<\/p>\n<p>Pila de Python: <code>NumPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\nimport matplotlib.pyplot as plt\n\nc, L = 1.0, 1.0\ndx = L \/ 100\nx = np.linspace(0, L, 101)\ndt = 0.001\nsteps = 5000\n\nu = np.zeros((101, steps))\nu[:, 0] = np.sin(np.pi * x \/ L)\n\n# First step approximation\nu[:, 1] = u[:, 0]\n\nfor n in range(1, steps - 1):\n    for i in range(1, 100):\n        u[i, n + 1] = (\n            2 * u[i, n]\n            - u[i, n - 1]\n            + (c * dt \/ dx)**2 * (u[i + 1, n] - 2 * u[i, n] + u[i - 1, n])\n        )\n\nplt.plot(x, u[:, 1000])\nplt.xlabel(\"Position\")\nplt.ylabel(\"Displacement\")\nplt.show()\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Diferencia finita Pasos de tiempo para PDES de segundo orden.<\/li>\n<li>An\u00e1lisis de condici\u00f3n y estabilidad de CFL.<\/li>\n<li>Reflejo de onda y ondas estacionarias.<\/li>\n<li>Visualizaci\u00f3n con animaci\u00f3n o instant\u00e1neas de tiempo.<\/li>\n<\/ul>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Pruebe diferentes condiciones iniciales, como un paquete de onda gaussiana.<\/li>\n<li>agregar l\u00edmites reflectantes o absorbentes.<\/li>\n<li>Compare la soluci\u00f3n num\u00e9rica con una soluci\u00f3n anal\u00edtica.<\/li>\n<\/ul>\n<h2 id=\"intermediate-projects\">Proyectos intermedios<\/h2>\n<p>Estos proyectos requieren una formaci\u00f3n m\u00e1s s\u00f3lida en an\u00e1lisis num\u00e9rico, \u00e1lgebra lineal o f\u00edsica. El c\u00f3digo involucra solucionadores iterativos, m\u00e9todos adaptativos o modelos m\u00e1s complejos.<\/p>\n<h3>4. Iteraci\u00f3n Jacobi y Krylov para sistemas lineales<\/h3>\n<p>Dificultad: Intermedio<br \/> Tiempo: 4\u20136 semanas<\/p>\n<p>Lo que va a simular: soluciones iterativas a <code>Ax = b<\/code> usando jacobi, gauss-seidel y gradiente conjugado. Esta es la columna vertebral de muchos solucionadores de PDE.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>Ax = b\n<\/code><\/pre>\n<p>Aqu\u00ed, <code>A<\/code> suele ser escaso, y para muchos problemas de estilo de difusi\u00f3n es sim\u00e9trico positivo.<\/p>\n<p>Pila de Python: <code>NumPy<\/code>, <code>SciPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\nimport scipy.sparse as sp\nimport scipy.sparse.linalg as spla\n\ndef create_1d_laplacian_matrix(n, dx):\n    \"\"\"Create a 1D Laplacian matrix.\"\"\"\n    main = 2.0 * np.ones(n)\n    off = -1.0 * np.ones(n - 1)\n    return sp.diags([off, main, off], [-1, 0, 1], format=\"csr\") \/ dx**2\n\nn = 100\ndx = 0.01\nA = create_1d_laplacian_matrix(n, dx)\nb = np.ones(n)\n\n# Jacobi iteration\nx_jac = np.zeros(n)\nD = A.diagonal()\n\nfor iteration in range(100):\n    r = b - A @ x_jac\n    x_jac = x_jac + r \/ D\n\n# Compare with direct sparse solve\nx_direct = spla.spsolve(A, b)\nerror = np.linalg.norm(x_direct - x_jac)\n\nprint(f\"Jacobi error after 100 iterations: {error:.3e}\")\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Representaci\u00f3n y operaciones de matriz escasa.<\/li>\n<li>An\u00e1lisis de convergencia de solucionador iterativo.<\/li>\n<li>Comparaci\u00f3n de Jacobi, Gauss-Seidel y gradiente conjugado.<\/li>\n<li>Conceptos b\u00e1sicos de preacondicionamiento.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: cada solucionador de PDE utiliza sistemas lineales escasos internamente. Comprender los m\u00e9todos iterativos a nivel de c\u00f3digo ayuda a desmitificar las herramientas como Fipy, Fenics y OpenFoam.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Agregue un preacondicionador diagonal.<\/li>\n<li>Compare las tasas de convergencia en cuadr\u00edculas 2D y 3D.<\/li>\n<li>Implementar un ciclo simple multigrid.<\/li>\n<\/ul>\n<h3>5. Din\u00e1mica molecular con potencial de Lennard-Jones<\/h3>\n<p>Dificultad: Intermedio<br \/> Tiempo: 4\u20138 semanas<\/p>\n<p>Lo que simular\u00e1s: un gas o l\u00edquido de part\u00edculas que interact\u00faan a trav\u00e9s del potencial de Lennard-Jones. Este proyecto demuestra el ciclo completo desde el modelo de f\u00edsica hasta la integraci\u00f3n num\u00e9rica, el an\u00e1lisis de datos y la visualizaci\u00f3n.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>V(r) = 4\u03b5[(\u03c3\/r)\u00b9\u00b2 - (\u03c3\/r)\u2076]\nF = -\u2207V(r)\n<\/code><\/pre>\n<p>Los m\u00e9todos de integraci\u00f3n t\u00edpicos incluyen esquemas de velocidad verlet o salto.<\/p>\n<p>Pila de Python: <code>NumPy<\/code>, <code>Matplotlib<\/code>, <code>h5py<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\n\ndef lj_force(pos_i, pos_j, sigma=1.0, epsilon=1.0):\n    \"\"\"Compute Lennard-Jones force between two particles.\"\"\"\n    r_vec = pos_j - pos_i\n    r = np.linalg.norm(r_vec)\n    \n    if r == 0:\n        return np.zeros_like(r_vec)\n    \n    inv_r = sigma \/ r\n    force_mag = 24 * epsilon * (2 * inv_r**12 - inv_r**6) \/ r\n    return force_mag * (r_vec \/ r)\n\ndef compute_forces(positions):\n    n = len(positions)\n    forces = np.zeros_like(positions)\n    \n    for i in range(n):\n        for j in range(i + 1, n):\n            f = lj_force(positions[i], positions[j])\n            forces[i] += f\n            forces[j] -= f\n    \n    return forces\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Integraci\u00f3n num\u00e9rica basada en part\u00edculas.<\/li>\n<li>condiciones de contorno peri\u00f3dicas.<\/li>\n<li>Seguimiento de la conservaci\u00f3n de energ\u00eda.<\/li>\n<li>Funciones de distribuci\u00f3n radial.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: Molecular Dynamics es una puerta de entrada a la computaci\u00f3n cient\u00edfica de alto rendimiento. Una vez que comprenda las part\u00edculas de Lennard-Jones, puede pasar a potenciales complejos, granulado grueso o MD acelerado por GPU.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Cambie a la aceleraci\u00f3n de GPU con <code>cupy<\/code> o <code>numba<\/code>.<\/li>\n<li>Estudia las transiciones de fase variando la temperatura.<\/li>\n<li>Calcule la conductividad t\u00e9rmica con relaciones verde-kubo.<\/li>\n<\/ul>\n<h3>6. Modelo Ising para el magnetismo 2D<\/h3>\n<p>Dificultad: Intermedio<br \/> Tiempo: 4\u20136 semanas<\/p>\n<p>Lo que vas a simular: El modelo Ising es uno de los modelos m\u00e1s simples de magnetismo y uno de los problemas m\u00e1s estudiados en f\u00edsica estad\u00edstica. Muestra c\u00f3mo las reglas locales pueden producir transiciones de fase macrosc\u00f3picas.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>H = -J \u03a3\u1d62\u2c7c s\u1d62s\u2c7c - h \u03a3\u1d62 s\u1d62\nP(\u0394E) = exp(-\u0394E\/kT)\n<\/code><\/pre>\n<p>Pila de Python: <code>NumPy<\/code>, <code>Matplotlib<\/code>, <code>SciPy<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\n\ndef metropolis_step(grid, T):\n    \"\"\"Single Metropolis sweep on a 2D Ising grid.\"\"\"\n    L = grid.shape[0]\n    \n    for i in range(L):\n        for j in range(L):\n            site = grid[i, j]\n            neighbors = (\n                grid[(i - 1) % L, j]\n                + grid[(i + 1) % L, j]\n                + grid[i, (j - 1) % L]\n                + grid[i, (j + 1) % L]\n            )\n            dE = 2 * site * neighbors\n            \n            if dE &lt; 0 or np.random.rand() &lt; np.exp(-dE \/ T):\n                grid[i, j] = -site\n    \n    return grid\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>M\u00e9todos de Monte Carlo y el algoritmo de Metropolis.<\/li>\n<li>Transiciones de fase y fen\u00f3menos cr\u00edticos.<\/li>\n<li>Heur\u00edsticas de minimizaci\u00f3n de energ\u00eda.<\/li>\n<li>Visualizaci\u00f3n de patrones emergentes.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: El modelo Ising conecta la f\u00edsica estad\u00edstica, los m\u00e9todos computacionales y el aprendizaje autom\u00e1tico. Tambi\u00e9n tiene un comportamiento de referencia conocido, lo que hace posible la validaci\u00f3n.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Calcule la capacidad calor\u00edfica y la susceptibilidad cerca de la temperatura cr\u00edtica.<\/li>\n<li>Estudia diferentes geometr\u00edas de celos\u00eda.<\/li>\n<li>Implemente el algoritmo de cl\u00faster Wolff o Swendsen-Wang.<\/li>\n<\/ul>\n<h2 id=\"advanced-projects\">Proyectos avanzados<\/h2>\n<p>Estos proyectos requieren de antecedentes de m\u00e9todos num\u00e9ricos m\u00e1s s\u00f3lidos, experiencia inform\u00e1tica paralela o conocimientos de f\u00edsica especializados. Son adecuados para trabajos a nivel de tesis o proyectos finales.<\/p>\n<h3>7. Solucionador de difusi\u00f3n a base de FIPY<\/h3>\n<p>Dificultad: Avanzado<br \/> Tiempo: 8-12 semanas<\/p>\n<p>Lo que vas a simular: un problema de difusi\u00f3n realista usando Fipy. Esto conecta los conceptos de PDE y la discretizaci\u00f3n del volumen finito con el software cient\u00edfico de calidad de producci\u00f3n.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>\u2202c\/\u2202t = \u2207\u00b7(D\u2207c) + S\n<\/code><\/pre>\n<p>Esta es una ecuaci\u00f3n de difusi\u00f3n con t\u00e9rminos de origen y condiciones de contorno como Dirichlet, Neumann o condiciones de Robin.<\/p>\n<p>Pila de Python: <code>FiPy<\/code>, <code>NumPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">from fipy import Grid2D, CellVariable, DiffusionTerm\n\nmesh = Grid2D(nx=50, ny=50, dx=0.1, dy=0.1)\n\nc = CellVariable(mesh=mesh, name=\"concentration\", value=0.0)\nc.constrain(1.0, mesh.facesLeft)\n\neq = DiffusionTerm(coeff=1.0) == 0\n\n# Solve to steady state\neq.solve(var=c)\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Discretizaci\u00f3n de volumen finito con Fipy.<\/li>\n<li>Manejo de condiciones de contorno de Dirichlet, Neumann y Robin.<\/li>\n<li>Estudios de calidad y convergencia de malla.<\/li>\n<li>Conexi\u00f3n de soluciones anal\u00edticas a resultados num\u00e9ricos.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: Si desea trabajar profesionalmente en la ciencia computacional, saber c\u00f3mo usar y extender un c\u00f3digo de volumen finito como Fipy es valioso. Este proyecto combina la configuraci\u00f3n de malla, la formulaci\u00f3n de t\u00e9rminos, la configuraci\u00f3n del solucionador y el procesamiento posterior.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Agregue t\u00e9rminos de reacci\u00f3n para sistemas de reacci\u00f3n-difusi\u00f3n o patrones de turing.<\/li>\n<li>Compare los resultados de Fipy con las soluciones anal\u00edticas de referencia.<\/li>\n<li>Paralelice con el soporte MPI de Fipy.<\/li>\n<\/ul>\n<h3>8. Monte Carlo para precios de opciones<\/h3>\n<p>Dificultad: Avanzado<br \/> Tiempo: 6-10 semanas<\/p>\n<p>Lo que va a simular: M\u00e9todos de Monte Carlo en Finanzas, incluyendo precios de opciones europeas y americanas utilizando rutas de precios de acciones simuladas. Esto une la ciencia computacional con matem\u00e1ticas aplicadas y finanzas cuantitativas.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>dS = \u03bcS dt + \u03c3S dW\nV = e^(-rT) E[max(S-K, 0)]\n<\/code><\/pre>\n<p>Pila de Python: <code>NumPy<\/code>, <code>pandas<\/code>, <code>Matplotlib<\/code>, <code>scipy.stats<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\n\ndef monte_carlo_option(S0, K, r, sigma, T, num_paths=10000):\n    \"\"\"Price a European call option using Monte Carlo.\"\"\"\n    z = np.random.randn(num_paths)\n    S_final = S0 * np.exp(\n        (r - 0.5 * sigma**2) * T + sigma * np.sqrt(T) * z\n    )\n    \n    payoffs = np.maximum(S_final - K, 0)\n    price = np.exp(-r * T) * np.mean(payoffs)\n    stderr = np.exp(-r * T) * np.std(payoffs) \/ np.sqrt(num_paths)\n    \n    return price, stderr\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Simulaci\u00f3n estoc\u00e1stica y generaci\u00f3n de rutas.<\/li>\n<li>An\u00e1lisis de convergencia con tama\u00f1o de muestra.<\/li>\n<li>T\u00e9cnicas de reducci\u00f3n de varianza, como variadas antit\u00e9ticas y variadas de control.<\/li>\n<li>Precios de opciones americanas con m\u00e9todos de Monte Carlo de m\u00ednimos cuadrados.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: los m\u00e9todos de Monte Carlo funcionan en entornos de alta dimensi\u00f3n, lo que los hace \u00fatiles en finanzas, ciencia de materiales, teor\u00eda cu\u00e1ntica de campos y cuantificaci\u00f3n de la incertidumbre.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Implemente el algoritmo Longstaff-Schwartz para opciones americanas.<\/li>\n<li>Estudia griegos como Delta, Gamma y Vega.<\/li>\n<li>Compare los resultados con la soluci\u00f3n anal\u00edtica de Black-Scholes.<\/li>\n<\/ul>\n<h3>9. Solidificaci\u00f3n y simulaci\u00f3n de campo de fase<\/h3>\n<p>Dificultad: Avanzado<br \/> Tiempo: 12-16 semanas<\/p>\n<p>Lo que va a simular: El m\u00e9todo de campo de fase se usa ampliamente en la ciencia de materiales computacionales para la evoluci\u00f3n de la microestructura, incluido el crecimiento de granos, la solidificaci\u00f3n dendr\u00edtica y la formaci\u00f3n de precipitados.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>\u2202\u03c6\/\u2202t = -\u0393 [\u03c6(1-\u03c6)\u00b2 + F'(\u03c6) + \u03bb\u2207\u03c6\u00b7\u2207\u03c6]\n<\/code><\/pre>\n<p>Aqu\u00ed, <code>\u03c6<\/code> es el campo de fase, <code>\u0393<\/code> es movilidad y <code>F(\u03c6)<\/code> es el potencial de doble pozo.<\/p>\n<p>Pila de Python: <code>FiPy<\/code>, <code>NumPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">from fipy import Grid2D, CellVariable, TransientTerm, DiffusionTerm\n\nmesh = Grid2D(nx=100, ny=100, dx=1.0, dy=1.0)\n\nphi = CellVariable(mesh=mesh, name=\"phase_field\", value=0.0)\n\n# Example starter equation structure:\n# TransientTerm == diffusion + source-like phase evolution term\neq = TransientTerm(var=phi) == DiffusionTerm(coeff=1.0, var=phi)\n\nfor step in range(100):\n    eq.solve(var=phi, dt=0.01)\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Formulaci\u00f3n de campo de fase y potenciales de doble pozo.<\/li>\n<li>Par\u00e1metros de ancho de interfaz y movilidad.<\/li>\n<li>Acoplamiento con ecuaciones de difusi\u00f3n.<\/li>\n<li>Comparaci\u00f3n con soluciones de solidificaci\u00f3n anal\u00edtica o referencias bibliogr\u00e1ficas.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: La simulaci\u00f3n de campo de fase se utiliza en la investigaci\u00f3n de la ciencia de materiales en todo el mundo. Conecta la microestructura, la termodin\u00e1mica y los m\u00e9todos num\u00e9ricos.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Acople el campo de fase con difusi\u00f3n para modelos de captura de solutos.<\/li>\n<li>Estudie los patrones de crecimiento dendr\u00edtico bajo diferentes condiciones de subenfriamiento.<\/li>\n<li>Compare los resultados con las micrograf\u00edas experimentales de la literatura.<\/li>\n<\/ul>\n<h2 id=\"how-to-choose\">C\u00f3mo elegir tu proyecto<\/h2>\n<p>No todos los proyectos son adecuados para todos los estudiantes. Utilice el marco a continuaci\u00f3n para elegir un punto de partida realista.<\/p>\n<h3>Haga coincidir su fondo<\/h3>\n<table class=\"custom-table\">\n<tbody>\n<tr>\n<th>actualmente sabes<\/th>\n<th>Proyecto de inicio recomendado<\/th>\n<\/tr>\n<tr>\n<td>Conceptos b\u00e1sicos de Python, sin antecedentes num\u00e9ricos<\/td>\n<td>ecuaci\u00f3n de calor<\/td>\n<\/tr>\n<tr>\n<td>Python Plus An\u00e1lisis num\u00e9rico introductorio<\/td>\n<td>modelo de se\u00f1or o ecuaci\u00f3n de onda<\/td>\n<\/tr>\n<tr>\n<td>Curso ODE\/PDE y \u00e1lgebra lineal<\/td>\n<td>Iteraci\u00f3n Jacobi o din\u00e1mica molecular<\/td>\n<\/tr>\n<tr>\n<td>Mec\u00e1nica estad\u00edstica o matem\u00e1ticas avanzadas<\/td>\n<td>modelo<\/td>\n<\/tr>\n<tr>\n<td>Objetivos de investigaci\u00f3n o tesis<\/td>\n<td>Difusi\u00f3n Fipy o simulaci\u00f3n de campo de fase<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>lo que m\u00e1s importa<\/h3>\n<ol>\n<li>Prerrequisitos matem\u00e1ticos. No salte a la simulaci\u00f3n de campo de fase si a\u00fan no ha resuelto una PDE num\u00e9ricamente.<\/li>\n<li>comodidad de programaci\u00f3n. Si es nuevo en Python, comience con la ecuaci\u00f3n de calor y construya desde all\u00ed.<\/li>\n<li>Horizonte de tiempo. Un proyecto de semestre necesita un alcance claro. Elija algo que pueda producir un resultado significativo en 4 a 8 semanas.<\/li>\n<li>objetivos de carrera. La ciencia de los materiales apunta hacia la din\u00e1mica de campo o de fase. Puntos financieros hacia Monte Carlo. El software de investigaci\u00f3n apunta hacia solucionadores fibrosos o iterativos.<\/li>\n<\/ol>\n<h3>Errores comunes que cometen los estudiantes<\/h3>\n<ol>\n<li>Elegir un proyecto que es demasiado ambicioso. Un solucionador de campo de fase 3D completo en cuatro semanas no es realista. Ap\u00fanquelo a 2D con par\u00e1metros simples.<\/li>\n<li>Omitir la comparaci\u00f3n de soluciones anal\u00edticas. Siempre compare los resultados num\u00e9ricos con una soluci\u00f3n conocida cuando sea posible.<\/li>\n<li>ignorando la condici\u00f3n CFL. Muchas simulaciones para principiantes fallan porque el paso de tiempo es demasiado grande.<\/li>\n<li>No usar el control de versiones. Git no es opcional para un proyecto serio. Comprom\u00e9tete regularmente para que puedas recuperarte de los errores.<\/li>\n<\/ol>\n<h2 id=\"what-to-skip\">\u00bfQu\u00e9 debes saltarte?<\/h2>\n<p>No todos los proyectos computacionales son igualmente \u00fatiles para la simulaci\u00f3n de aprendizaje. Ev\u00edtelos a menos que tenga una raz\u00f3n espec\u00edfica.<\/p>\n<ul>\n<li>Simulaciones gen\u00e9ricas de \u00abhola mundo\u00bb. Si un proyecto no involucra una PDE, una ley de conservaci\u00f3n, un solucionador num\u00e9rico o un modelo estoc\u00e1stico, puede que no sea un proyecto de ciencia computacional.<\/li>\n<li>Proyectos que requieren hardware especial al principio. No comience con GPU Molecular Dynamics si no ha creado primero la din\u00e1mica molecular de la CPU.<\/li>\n<li>Acoplamiento multif\u00edsico demasiado complejo. Comience con solucionadores de una sola f\u00edsica. El acoplamiento multif\u00edsico es un tema de investigaci\u00f3n, no un proyecto de primer estudiante ideal.<\/li>\n<\/ul>\n<h2 id=\"references\">D\u00f3nde encontrar el c\u00f3digo de referencia<\/h2>\n<p>Varios cursos universitarios y proyectos de c\u00f3digo abierto brindan implementaciones de referencia \u00fatiles:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/CompPhysics\/ComputationalPhysics\">Universidad de F\u00edsica Computacional de Oslo<\/a> \u2014 Materiales del curso con descripciones y soluciones de proyectos.<\/li>\n<li><a href=\"https:\/\/github.com\/aiidateam\/aiida-core\/wiki\/GSoC-2025-Projects\">Proyectos GSOC de AIIDA<\/a> \u2014 Ideas de proyectos estudiantiles en Ciencias de Materiales Computacionales.<\/li>\n<li><a href=\"https:\/\/www.fipy.org\/\">Documentaci\u00f3n de Fipy<\/a> \u2014 Tutoriales oficiales y ejemplos para la biblioteca de vol\u00famenes finitos.<\/li>\n<\/ul>\n<p>Utilice estos recursos como puntos de partida, no como puntos finales. El verdadero aprendizaje ocurre cuando escribes y depuras el c\u00f3digo t\u00fa mismo.<\/p>\n<h2 id=\"conclusion\">Pensamientos finales<\/h2>\n<p>La diferencia entre leer sobre m\u00e9todos num\u00e9ricos y escribir una simulaci\u00f3n es enorme. Puede leer muchos libros de texto de PDE y a\u00fan no entender lo que sucede cuando una ecuaci\u00f3n de difusi\u00f3n se discretiza con un paso de tiempo que es demasiado grande.<\/p>\n<p>Elija un proyecto, comience a codificar e itera. Unas pocas semanas de depuraci\u00f3n pueden ense\u00f1ar m\u00e1s de meses de conferencias pasivas.<\/p>\n<p>Si necesita ayuda con un problema de simulaci\u00f3n espec\u00edfico, como elegir el solucionador correcto, depurar una inestabilidad num\u00e9rica o escalar c\u00f3digo en varios procesadores, considere preguntar a alguien con experiencia. Un buen apoyo puede ayudarlo a evitar las trampas comunes mientras sigue haciendo el trabajo usted mismo.<\/p>\n<h2 id=\"related-guides\">Gu\u00edas relacionadas<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/when-to-use-fem-fvm-fdm\/\">cu\u00e1ndo usar FEM, FVM o FDM: una comparaci\u00f3n pr\u00e1ctica para principiantes<\/a> \u2014 Comprender los m\u00e9todos de discretizaci\u00f3n antes de comenzar a codificar.<\/li>\n<li><a href=\"https:\/\/matforge.org\/mesh-quality-convergence-studies-guide-2\/\">Estudios de calidad y convergencia de malla: una gu\u00eda pr\u00e1ctica<\/a> \u2014 Asegur\u00e1ndose de que su cuadr\u00edcula no arruine su simulaci\u00f3n.<\/li>\n<li><a href=\"https:\/\/matforge.org\/python-debugging-scientific-code-print-statements-profiling\/\">Depuraci\u00f3n de Python para c\u00f3digo cient\u00edfico: desde declaraciones impresas hasta perfiles<\/a> \u2014 Estrategias de depuraci\u00f3n para n\u00fameros num\u00e9ricos C\u00f3digo<\/li>\n<li><a href=\"https:\/\/matforge.org\/computational-materials-science-frameworks-moose-vs-prisms-pf-vs-openphase\/\">Marcos computacionales de ciencia de materiales: alce vs prisms-pf vs openphase<\/a>: si desea ir m\u00e1s all\u00e1 de Python.<\/li>\n<\/ul>\n","protected":false,"raw":"<h2 id=\"key-takeaways\">Comida clave<\/h2>\n<ul>\n<li>Las ideas de proyectos curados cubren los niveles principiantes, intermedios y avanzados, con un enfoque en la simulaci\u00f3n y la ciencia computacional.<\/li>\n<li>Los niveles de dificultad reflejan los requisitos previos, la complejidad de las matem\u00e1ticas y la inversi\u00f3n de tiempo esperada.<\/li>\n<li>Se incluyen plantillas de c\u00f3digo para cada proyecto para que los estudiantes puedan comenzar a construir r\u00e1pidamente.<\/li>\n<li>Los resultados del aprendizaje muestran lo que ense\u00f1a cada proyecto.<\/li>\n<li>Una hoja de ruta de habilidades para proyectos ayuda a los estudiantes a elegir un proyecto basado en su conocimiento actual.<\/li>\n<\/ul>\n<p>Los proyectos estudiantiles en ciencia computacional y simulaci\u00f3n son donde la teor\u00eda finalmente se encuentra con el c\u00f3digo. Puede aprender m\u00e9todos de volumen finito, ecuaciones diferenciales parciales y leyes de conservaci\u00f3n en las conferencias, pero las ecuaciones en una pizarra blanca no ense\u00f1an c\u00f3mo se siente escribir un solucionador desde cero.<\/p>\n<p>Si desea comprender c\u00f3mo se traducen los m\u00e9todos num\u00e9ricos en simulaciones de trabajo, elija un proyecto y comience a construir.<\/p>\n<p>Esta gu\u00eda selecciona ideas pr\u00e1cticas de proyectos inspiradas en cursos universitarios de f\u00edsica computacional, proyectos cient\u00edficos de c\u00f3digo abierto y repositorios de pares. Cada proyecto usa Python y construye hacia algo que los estudiantes pueden incluir en una cartera.<\/p>\n<h2 id=\"difficulty-levels\">Explicar los niveles de dificultad del proyecto<\/h2>\n<p>Antes de elegir un proyecto, ayuda a entender lo que significa cada nivel en t\u00e9rminos de esfuerzo.<\/p>\n<table class=\"custom-table\">\n<tbody><tr>\n<th>Nivel<\/th>\n<th>requisitos previos<\/th>\n<th>tiempo esperado<\/th>\n<th>Qu\u00e9 har\u00e1s<\/th>\n<\/tr>\n<tr>\n<td>Principiante<\/td>\n<td>Conceptos b\u00e1sicos de Python, numpy, matplotlib<\/td>\n<td>2-4 semanas<\/td>\n<td>Resuelva odas o PDE simples con m\u00e9todos expl\u00edcitos y visualice resultados<\/td>\n<\/tr>\n<tr>\n<td>Intermedio<\/td>\n<td>An\u00e1lisis num\u00e9rico, \u00e1lgebra lineal, ODE\/PDE Antecedentes<\/td>\n<td>4\u20138 semanas<\/td>\n<td>Implementar solucionadores, manejar condiciones de contorno y comparar precisi\u00f3n<\/td>\n<\/tr>\n<tr>\n<td>Avanzado<\/td>\n<td>M\u00e9todos num\u00e9ricos avanzados, computaci\u00f3n paralela o antecedentes de f\u00edsica especializada<\/td>\n<td>8-16 semanas<\/td>\n<td>Construya simulaciones multif\u00edsicas, optimice el rendimiento o compare con los resultados de la literatura<\/td>\n<\/tr>\n<\/tbody><\/table>\n<p>La tabla no es una clasificaci\u00f3n. Es una herramienta de emparejamiento. Elija un nivel que coincida con su preparaci\u00f3n actual, luego mu\u00e9vase hacia arriba una vez que se sienta c\u00f3modo.<\/p>\n<h2 id=\"skills-roadmap\">Hoja de ruta de habilidades a proyectos<\/h2>\n<p>La hoja de ruta a continuaci\u00f3n muestra qu\u00e9 conceptos matem\u00e1ticos y de programaci\u00f3n se asignan a qu\u00e9 proyectos.<\/p>\n<pre><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Skill \/ Concept \u2502 Projects That Use It                                    \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Python basics   \u2502 Heat equation solver, SIR epidemic model, Lennard-Jones \u2502\n\u2502 NumPy arrays    \u2502 Wave propagation, diffusion on grid                     \u2502\n\u2502 ODE solvers     \u2502 SIR model, projectile with drag, Lotka-Volterra         \u2502\n\u2502 PDE basics      \u2502 Heat equation, wave equation, diffusion                 \u2502\n\u2502 Linear algebra  \u2502 Jacobi iteration, eigenvalue problems, Krylov methods   \u2502\n\u2502 Monte Carlo     \u2502 Ising model, radioactive decay, option pricing          \u2502\n\u2502 FFT \/ spectral  \u2502 Wave propagation, turbulence, spectral methods          \u2502\n\u2502 Parallelism     \u2502 MPI diffusion solver, GPU molecular dynamics            \u2502\n\u2502 Phase-field     \u2502 Solidification, fracture mechanics, grain boundary      \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/code><\/pre>\n<h2 id=\"beginner-projects\">Proyectos principiantes<\/h2>\n<p>Estos proyectos introducen conceptos de simulaci\u00f3n centrales sin abrumar las matem\u00e1ticas o la configuraci\u00f3n compleja. Est\u00e1n dise\u00f1ados para funcionar en una computadora port\u00e1til sin hardware especial.<\/p>\n<h3>1. Solucionador de ecuaciones de calor en una cuadr\u00edcula<\/h3>\n<p>Dificultad: Principiante<br> Tiempo: 2-3 semanas<\/p>\n<p>Lo que va a simular: el calor se extiende a trav\u00e9s de una placa de metal, una varilla o una habitaci\u00f3n. La ecuaci\u00f3n de calor 1D o 2D es un primer proyecto cl\u00e1sico en PDES num\u00e9ricos porque es conceptualmente simple y ense\u00f1a los principales conceptos utilizados m\u00e1s adelante.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>\u2202T\/\u2202t = \u03b1 \u2207\u00b2T\n<\/code><\/pre>\n<p>Aqu\u00ed, <code>\u03b1<\/code> es difusividad t\u00e9rmica, <code>T<\/code> es temperatura y <code>\u2207\u00b2<\/code> es el laplaciano espacial.<\/p>\n<p>Pila de Python: <code>NumPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\nimport matplotlib.pyplot as plt\n\ndef heat_solver(alpha, L, dt, steps):\n    \"\"\"Solve the 1D heat equation with explicit finite differences.\"\"\"\n    dx = L \/ 50\n    x = np.linspace(0, L, 51)\n    T = np.zeros_like(x)\n    T[20:31] = 1.0  # initial hot strip\n    \n    history = [T.copy()]\n    \n    for step in range(steps):\n        T_new = T.copy()\n        for i in range(1, len(T) - 1):\n            T_new[i] = T[i] + dt * alpha \/ dx**2 * (\n                T[i + 1] - 2 * T[i] + T[i - 1]\n            )\n        T = T_new\n        history.append(T.copy())\n    \n    return x, np.array(history)\n\nx, history = heat_solver(alpha=1.0, L=1.0, dt=0.0001, steps=1000)\n\nplt.imshow(history, aspect=\"auto\", extent=[0, 1, 1000, 0])\nplt.xlabel(\"Position\")\nplt.ylabel(\"Time step\")\nplt.colorbar(label=\"Temperature\")\nplt.show()\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Comprender la estabilidad expl\u00edcita e impl\u00edcita.<\/li>\n<li>Implementaci\u00f3n de condiciones de contorno.<\/li>\n<li>Visualizaci\u00f3n de campos difusivos.<\/li>\n<li>Razonamiento b\u00e1sico de estabilidad de estilo CFL.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: La ecuaci\u00f3n del calor es el \"hola mundo\" de la simulaci\u00f3n. Cada proyecto posterior que involucra difusi\u00f3n, ondas o modelado de campo de fase se basa en patrones num\u00e9ricos similares.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Cambie a un esquema completamente impl\u00edcito o manivela-Nicolson y compare la estabilidad.<\/li>\n<li>Agregue un t\u00e9rmino fuente, como un elemento calefactor.<\/li>\n<li>Exportar resultados a CSV para su an\u00e1lisis.<\/li>\n<\/ul>\n<h3>2. Modelo de propagaci\u00f3n epid\u00e9mica SIR<\/h3>\n<p>Dificultad: Principiante<br> Tiempo: 2-3 semanas<\/p>\n<p>Lo que vas a simular: El modelo compartimental cl\u00e1sico de diseminaci\u00f3n de la enfermedad: susceptible, infecciosa y recuperada. Este modelo captura curvas epid\u00e9micas, inmunidad de reba\u00f1o y el n\u00famero b\u00e1sico de reproducci\u00f3n sin una cuadr\u00edcula espacial.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>dS\/dt = -\u03b2SI\/N\ndI\/dt = \u03b2SI\/N - \u03b3I\ndR\/dt = \u03b3I\n<\/code><\/pre>\n<p>Aqu\u00ed, <code>\u03b2<\/code> es la tasa de transmisi\u00f3n, <code>\u03b3<\/code> es la tasa de recuperaci\u00f3n y <code>N = S + I + R<\/code> es la poblaci\u00f3n.<\/p>\n<p>Pila de Python: <code>NumPy<\/code>, <code>SciPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.integrate import odeint\n\ndef sir_model(y, t, beta, gamma):\n    S, I, R = y\n    N = S + I + R\n    dS = -beta * S * I \/ N\n    dI = beta * S * I \/ N - gamma * I\n    dR = gamma * I\n    return [dS, dI, dR]\n\nbeta, gamma = 0.5, 0.1\ny0 = [990, 10, 0]\nt = np.linspace(0, 100, 100)\n\nsolution = odeint(sir_model, y0, t, args=(beta, gamma))\n\nplt.plot(t, solution)\nplt.legend([\"Susceptible\", \"Infectious\", \"Recovered\"])\nplt.xlabel(\"Time\")\nplt.ylabel(\"Population\")\nplt.show()\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Resoluci\u00f3n de sistemas de ODE.<\/li>\n<li>Entendiendo <code>R\u2080 = \u03b2\/\u03b3<\/code>.<\/li>\n<li>Interpretaci\u00f3n de picos epid\u00e9micos y comportamiento de tama\u00f1o final.<\/li>\n<li>Trazar el comportamiento de plano de fase como la poblaci\u00f3n infecciosa versus susceptible.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: tiene relevancia en el mundo real con una complejidad m\u00ednima. El modelo es lo suficientemente simple como para entenderlo pero lo suficientemente rico como para respaldar experimentos significativos.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Agregue estructura de edad con m\u00faltiples compartimentos.<\/li>\n<li>Incluya la vacunaci\u00f3n como un par\u00e1metro dependiente del tiempo.<\/li>\n<li>Compare Euler, RK4 y solucionadores de oda Scipy.<\/li>\n<\/ul>\n<h3>3. Ecuaci\u00f3n de onda en una cadena<\/h3>\n<p>Dificultad: Principiante<br> Tiempo: 3-4 semanas<\/p>\n<p>Lo que va a simular: una cuerda vibrante, una membrana de tambor o una onda sonora. La ecuaci\u00f3n de onda introduce la propagaci\u00f3n, la reflexi\u00f3n y las ondas estacionarias.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>\u2202\u00b2u\/\u2202t\u00b2 = c\u00b2 \u2207\u00b2u\n<\/code><\/pre>\n<p>Las condiciones de contorno pueden ser fijas, libres o mixtas.<\/p>\n<p>Pila de Python: <code>NumPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\nimport matplotlib.pyplot as plt\n\nc, L = 1.0, 1.0\ndx = L \/ 100\nx = np.linspace(0, L, 101)\ndt = 0.001\nsteps = 5000\n\nu = np.zeros((101, steps))\nu[:, 0] = np.sin(np.pi * x \/ L)\n\n# First step approximation\nu[:, 1] = u[:, 0]\n\nfor n in range(1, steps - 1):\n    for i in range(1, 100):\n        u[i, n + 1] = (\n            2 * u[i, n]\n            - u[i, n - 1]\n            + (c * dt \/ dx)**2 * (u[i + 1, n] - 2 * u[i, n] + u[i - 1, n])\n        )\n\nplt.plot(x, u[:, 1000])\nplt.xlabel(\"Position\")\nplt.ylabel(\"Displacement\")\nplt.show()\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Diferencia finita Pasos de tiempo para PDES de segundo orden.<\/li>\n<li>An\u00e1lisis de condici\u00f3n y estabilidad de CFL.<\/li>\n<li>Reflejo de onda y ondas estacionarias.<\/li>\n<li>Visualizaci\u00f3n con animaci\u00f3n o instant\u00e1neas de tiempo.<\/li>\n<\/ul>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Pruebe diferentes condiciones iniciales, como un paquete de onda gaussiana.<\/li>\n<li>agregar l\u00edmites reflectantes o absorbentes.<\/li>\n<li>Compare la soluci\u00f3n num\u00e9rica con una soluci\u00f3n anal\u00edtica.<\/li>\n<\/ul>\n<h2 id=\"intermediate-projects\">Proyectos intermedios<\/h2>\n<p>Estos proyectos requieren una formaci\u00f3n m\u00e1s s\u00f3lida en an\u00e1lisis num\u00e9rico, \u00e1lgebra lineal o f\u00edsica. El c\u00f3digo involucra solucionadores iterativos, m\u00e9todos adaptativos o modelos m\u00e1s complejos.<\/p>\n<h3>4. Iteraci\u00f3n Jacobi y Krylov para sistemas lineales<\/h3>\n<p>Dificultad: Intermedio<br> Tiempo: 4\u20136 semanas<\/p>\n<p>Lo que va a simular: soluciones iterativas a <code>Ax = b<\/code> usando jacobi, gauss-seidel y gradiente conjugado. Esta es la columna vertebral de muchos solucionadores de PDE.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>Ax = b\n<\/code><\/pre>\n<p>Aqu\u00ed, <code>A<\/code> suele ser escaso, y para muchos problemas de estilo de difusi\u00f3n es sim\u00e9trico positivo.<\/p>\n<p>Pila de Python: <code>NumPy<\/code>, <code>SciPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\nimport scipy.sparse as sp\nimport scipy.sparse.linalg as spla\n\ndef create_1d_laplacian_matrix(n, dx):\n    \"\"\"Create a 1D Laplacian matrix.\"\"\"\n    main = 2.0 * np.ones(n)\n    off = -1.0 * np.ones(n - 1)\n    return sp.diags([off, main, off], [-1, 0, 1], format=\"csr\") \/ dx**2\n\nn = 100\ndx = 0.01\nA = create_1d_laplacian_matrix(n, dx)\nb = np.ones(n)\n\n# Jacobi iteration\nx_jac = np.zeros(n)\nD = A.diagonal()\n\nfor iteration in range(100):\n    r = b - A @ x_jac\n    x_jac = x_jac + r \/ D\n\n# Compare with direct sparse solve\nx_direct = spla.spsolve(A, b)\nerror = np.linalg.norm(x_direct - x_jac)\n\nprint(f\"Jacobi error after 100 iterations: {error:.3e}\")\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Representaci\u00f3n y operaciones de matriz escasa.<\/li>\n<li>An\u00e1lisis de convergencia de solucionador iterativo.<\/li>\n<li>Comparaci\u00f3n de Jacobi, Gauss-Seidel y gradiente conjugado.<\/li>\n<li>Conceptos b\u00e1sicos de preacondicionamiento.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: cada solucionador de PDE utiliza sistemas lineales escasos internamente. Comprender los m\u00e9todos iterativos a nivel de c\u00f3digo ayuda a desmitificar las herramientas como Fipy, Fenics y OpenFoam.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Agregue un preacondicionador diagonal.<\/li>\n<li>Compare las tasas de convergencia en cuadr\u00edculas 2D y 3D.<\/li>\n<li>Implementar un ciclo simple multigrid.<\/li>\n<\/ul>\n<h3>5. Din\u00e1mica molecular con potencial de Lennard-Jones<\/h3>\n<p>Dificultad: Intermedio<br> Tiempo: 4\u20138 semanas<\/p>\n<p>Lo que simular\u00e1s: un gas o l\u00edquido de part\u00edculas que interact\u00faan a trav\u00e9s del potencial de Lennard-Jones. Este proyecto demuestra el ciclo completo desde el modelo de f\u00edsica hasta la integraci\u00f3n num\u00e9rica, el an\u00e1lisis de datos y la visualizaci\u00f3n.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>V(r) = 4\u03b5[(\u03c3\/r)\u00b9\u00b2 - (\u03c3\/r)\u2076]\nF = -\u2207V(r)\n<\/code><\/pre>\n<p>Los m\u00e9todos de integraci\u00f3n t\u00edpicos incluyen esquemas de velocidad verlet o salto.<\/p>\n<p>Pila de Python: <code>NumPy<\/code>, <code>Matplotlib<\/code>, <code>h5py<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\n\ndef lj_force(pos_i, pos_j, sigma=1.0, epsilon=1.0):\n    \"\"\"Compute Lennard-Jones force between two particles.\"\"\"\n    r_vec = pos_j - pos_i\n    r = np.linalg.norm(r_vec)\n    \n    if r == 0:\n        return np.zeros_like(r_vec)\n    \n    inv_r = sigma \/ r\n    force_mag = 24 * epsilon * (2 * inv_r**12 - inv_r**6) \/ r\n    return force_mag * (r_vec \/ r)\n\ndef compute_forces(positions):\n    n = len(positions)\n    forces = np.zeros_like(positions)\n    \n    for i in range(n):\n        for j in range(i + 1, n):\n            f = lj_force(positions[i], positions[j])\n            forces[i] += f\n            forces[j] -= f\n    \n    return forces\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Integraci\u00f3n num\u00e9rica basada en part\u00edculas.<\/li>\n<li>condiciones de contorno peri\u00f3dicas.<\/li>\n<li>Seguimiento de la conservaci\u00f3n de energ\u00eda.<\/li>\n<li>Funciones de distribuci\u00f3n radial.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: Molecular Dynamics es una puerta de entrada a la computaci\u00f3n cient\u00edfica de alto rendimiento. Una vez que comprenda las part\u00edculas de Lennard-Jones, puede pasar a potenciales complejos, granulado grueso o MD acelerado por GPU.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Cambie a la aceleraci\u00f3n de GPU con <code>cupy<\/code> o <code>numba<\/code>.<\/li>\n<li>Estudia las transiciones de fase variando la temperatura.<\/li>\n<li>Calcule la conductividad t\u00e9rmica con relaciones verde-kubo.<\/li>\n<\/ul>\n<h3>6. Modelo Ising para el magnetismo 2D<\/h3>\n<p>Dificultad: Intermedio<br> Tiempo: 4\u20136 semanas<\/p>\n<p>Lo que vas a simular: El modelo Ising es uno de los modelos m\u00e1s simples de magnetismo y uno de los problemas m\u00e1s estudiados en f\u00edsica estad\u00edstica. Muestra c\u00f3mo las reglas locales pueden producir transiciones de fase macrosc\u00f3picas.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>H = -J \u03a3\u1d62\u2c7c s\u1d62s\u2c7c - h \u03a3\u1d62 s\u1d62\nP(\u0394E) = exp(-\u0394E\/kT)\n<\/code><\/pre>\n<p>Pila de Python: <code>NumPy<\/code>, <code>Matplotlib<\/code>, <code>SciPy<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\n\ndef metropolis_step(grid, T):\n    \"\"\"Single Metropolis sweep on a 2D Ising grid.\"\"\"\n    L = grid.shape[0]\n    \n    for i in range(L):\n        for j in range(L):\n            site = grid[i, j]\n            neighbors = (\n                grid[(i - 1) % L, j]\n                + grid[(i + 1) % L, j]\n                + grid[i, (j - 1) % L]\n                + grid[i, (j + 1) % L]\n            )\n            dE = 2 * site * neighbors\n            \n            if dE &lt; 0 or np.random.rand() &lt; np.exp(-dE \/ T):\n                grid[i, j] = -site\n    \n    return grid\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>M\u00e9todos de Monte Carlo y el algoritmo de Metropolis.<\/li>\n<li>Transiciones de fase y fen\u00f3menos cr\u00edticos.<\/li>\n<li>Heur\u00edsticas de minimizaci\u00f3n de energ\u00eda.<\/li>\n<li>Visualizaci\u00f3n de patrones emergentes.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: El modelo Ising conecta la f\u00edsica estad\u00edstica, los m\u00e9todos computacionales y el aprendizaje autom\u00e1tico. Tambi\u00e9n tiene un comportamiento de referencia conocido, lo que hace posible la validaci\u00f3n.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Calcule la capacidad calor\u00edfica y la susceptibilidad cerca de la temperatura cr\u00edtica.<\/li>\n<li>Estudia diferentes geometr\u00edas de celos\u00eda.<\/li>\n<li>Implemente el algoritmo de cl\u00faster Wolff o Swendsen-Wang.<\/li>\n<\/ul>\n<h2 id=\"advanced-projects\">Proyectos avanzados<\/h2>\n<p>Estos proyectos requieren de antecedentes de m\u00e9todos num\u00e9ricos m\u00e1s s\u00f3lidos, experiencia inform\u00e1tica paralela o conocimientos de f\u00edsica especializados. Son adecuados para trabajos a nivel de tesis o proyectos finales.<\/p>\n<h3>7. Solucionador de difusi\u00f3n a base de FIPY<\/h3>\n<p>Dificultad: Avanzado<br> Tiempo: 8-12 semanas<\/p>\n<p>Lo que vas a simular: un problema de difusi\u00f3n realista usando Fipy. Esto conecta los conceptos de PDE y la discretizaci\u00f3n del volumen finito con el software cient\u00edfico de calidad de producci\u00f3n.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>\u2202c\/\u2202t = \u2207\u00b7(D\u2207c) + S\n<\/code><\/pre>\n<p>Esta es una ecuaci\u00f3n de difusi\u00f3n con t\u00e9rminos de origen y condiciones de contorno como Dirichlet, Neumann o condiciones de Robin.<\/p>\n<p>Pila de Python: <code>FiPy<\/code>, <code>NumPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">from fipy import Grid2D, CellVariable, DiffusionTerm\n\nmesh = Grid2D(nx=50, ny=50, dx=0.1, dy=0.1)\n\nc = CellVariable(mesh=mesh, name=\"concentration\", value=0.0)\nc.constrain(1.0, mesh.facesLeft)\n\neq = DiffusionTerm(coeff=1.0) == 0\n\n# Solve to steady state\neq.solve(var=c)\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Discretizaci\u00f3n de volumen finito con Fipy.<\/li>\n<li>Manejo de condiciones de contorno de Dirichlet, Neumann y Robin.<\/li>\n<li>Estudios de calidad y convergencia de malla.<\/li>\n<li>Conexi\u00f3n de soluciones anal\u00edticas a resultados num\u00e9ricos.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: Si desea trabajar profesionalmente en la ciencia computacional, saber c\u00f3mo usar y extender un c\u00f3digo de volumen finito como Fipy es valioso. Este proyecto combina la configuraci\u00f3n de malla, la formulaci\u00f3n de t\u00e9rminos, la configuraci\u00f3n del solucionador y el procesamiento posterior.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Agregue t\u00e9rminos de reacci\u00f3n para sistemas de reacci\u00f3n-difusi\u00f3n o patrones de turing.<\/li>\n<li>Compare los resultados de Fipy con las soluciones anal\u00edticas de referencia.<\/li>\n<li>Paralelice con el soporte MPI de Fipy.<\/li>\n<\/ul>\n<h3>8. Monte Carlo para precios de opciones<\/h3>\n<p>Dificultad: Avanzado<br> Tiempo: 6-10 semanas<\/p>\n<p>Lo que va a simular: M\u00e9todos de Monte Carlo en Finanzas, incluyendo precios de opciones europeas y americanas utilizando rutas de precios de acciones simuladas. Esto une la ciencia computacional con matem\u00e1ticas aplicadas y finanzas cuantitativas.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>dS = \u03bcS dt + \u03c3S dW\nV = e^(-rT) E[max(S-K, 0)]\n<\/code><\/pre>\n<p>Pila de Python: <code>NumPy<\/code>, <code>pandas<\/code>, <code>Matplotlib<\/code>, <code>scipy.stats<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">import numpy as np\n\ndef monte_carlo_option(S0, K, r, sigma, T, num_paths=10000):\n    \"\"\"Price a European call option using Monte Carlo.\"\"\"\n    z = np.random.randn(num_paths)\n    S_final = S0 * np.exp(\n        (r - 0.5 * sigma**2) * T + sigma * np.sqrt(T) * z\n    )\n    \n    payoffs = np.maximum(S_final - K, 0)\n    price = np.exp(-r * T) * np.mean(payoffs)\n    stderr = np.exp(-r * T) * np.std(payoffs) \/ np.sqrt(num_paths)\n    \n    return price, stderr\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Simulaci\u00f3n estoc\u00e1stica y generaci\u00f3n de rutas.<\/li>\n<li>An\u00e1lisis de convergencia con tama\u00f1o de muestra.<\/li>\n<li>T\u00e9cnicas de reducci\u00f3n de varianza, como variadas antit\u00e9ticas y variadas de control.<\/li>\n<li>Precios de opciones americanas con m\u00e9todos de Monte Carlo de m\u00ednimos cuadrados.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: los m\u00e9todos de Monte Carlo funcionan en entornos de alta dimensi\u00f3n, lo que los hace \u00fatiles en finanzas, ciencia de materiales, teor\u00eda cu\u00e1ntica de campos y cuantificaci\u00f3n de la incertidumbre.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Implemente el algoritmo Longstaff-Schwartz para opciones americanas.<\/li>\n<li>Estudia griegos como Delta, Gamma y Vega.<\/li>\n<li>Compare los resultados con la soluci\u00f3n anal\u00edtica de Black-Scholes.<\/li>\n<\/ul>\n<h3>9. Solidificaci\u00f3n y simulaci\u00f3n de campo de fase<\/h3>\n<p>Dificultad: Avanzado<br> Tiempo: 12-16 semanas<\/p>\n<p>Lo que va a simular: El m\u00e9todo de campo de fase se usa ampliamente en la ciencia de materiales computacionales para la evoluci\u00f3n de la microestructura, incluido el crecimiento de granos, la solidificaci\u00f3n dendr\u00edtica y la formaci\u00f3n de precipitados.<\/p>\n<p>Modelo de matem\u00e1ticas:<\/p>\n<pre><code>\u2202\u03c6\/\u2202t = -\u0393 [\u03c6(1-\u03c6)\u00b2 + F'(\u03c6) + \u03bb\u2207\u03c6\u00b7\u2207\u03c6]\n<\/code><\/pre>\n<p>Aqu\u00ed, <code>\u03c6<\/code> es el campo de fase, <code>\u0393<\/code> es movilidad y <code>F(\u03c6)<\/code> es el potencial de doble pozo.<\/p>\n<p>Pila de Python: <code>FiPy<\/code>, <code>NumPy<\/code>, <code>Matplotlib<\/code><\/p>\n<p>Plantilla de c\u00f3digo:<\/p>\n<pre><code class=\"language-python\">from fipy import Grid2D, CellVariable, TransientTerm, DiffusionTerm\n\nmesh = Grid2D(nx=100, ny=100, dx=1.0, dy=1.0)\n\nphi = CellVariable(mesh=mesh, name=\"phase_field\", value=0.0)\n\n# Example starter equation structure:\n# TransientTerm == diffusion + source-like phase evolution term\neq = TransientTerm(var=phi) == DiffusionTerm(coeff=1.0, var=phi)\n\nfor step in range(100):\n    eq.solve(var=phi, dt=0.01)\n<\/code><\/pre>\n<p>Resultados de aprendizaje:<\/p>\n<ul>\n<li>Formulaci\u00f3n de campo de fase y potenciales de doble pozo.<\/li>\n<li>Par\u00e1metros de ancho de interfaz y movilidad.<\/li>\n<li>Acoplamiento con ecuaciones de difusi\u00f3n.<\/li>\n<li>Comparaci\u00f3n con soluciones de solidificaci\u00f3n anal\u00edtica o referencias bibliogr\u00e1ficas.<\/li>\n<\/ul>\n<p>Por qu\u00e9 este proyecto: La simulaci\u00f3n de campo de fase se utiliza en la investigaci\u00f3n de la ciencia de materiales en todo el mundo. Conecta la microestructura, la termodin\u00e1mica y los m\u00e9todos num\u00e9ricos.<\/p>\n<p>Extensiones sugeridas:<\/p>\n<ul>\n<li>Acople el campo de fase con difusi\u00f3n para modelos de captura de solutos.<\/li>\n<li>Estudie los patrones de crecimiento dendr\u00edtico bajo diferentes condiciones de subenfriamiento.<\/li>\n<li>Compare los resultados con las micrograf\u00edas experimentales de la literatura.<\/li>\n<\/ul>\n<h2 id=\"how-to-choose\">C\u00f3mo elegir tu proyecto<\/h2>\n<p>No todos los proyectos son adecuados para todos los estudiantes. Utilice el marco a continuaci\u00f3n para elegir un punto de partida realista.<\/p>\n<h3>Haga coincidir su fondo<\/h3>\n<table class=\"custom-table\">\n<tbody><tr>\n<th>actualmente sabes<\/th>\n<th>Proyecto de inicio recomendado<\/th>\n<\/tr>\n<tr>\n<td>Conceptos b\u00e1sicos de Python, sin antecedentes num\u00e9ricos<\/td>\n<td>ecuaci\u00f3n de calor<\/td>\n<\/tr>\n<tr>\n<td>Python Plus An\u00e1lisis num\u00e9rico introductorio<\/td>\n<td>modelo de se\u00f1or o ecuaci\u00f3n de onda<\/td>\n<\/tr>\n<tr>\n<td>Curso ODE\/PDE y \u00e1lgebra lineal<\/td>\n<td>Iteraci\u00f3n Jacobi o din\u00e1mica molecular<\/td>\n<\/tr>\n<tr>\n<td>Mec\u00e1nica estad\u00edstica o matem\u00e1ticas avanzadas<\/td>\n<td>modelo<\/td>\n<\/tr>\n<tr>\n<td>Objetivos de investigaci\u00f3n o tesis<\/td>\n<td>Difusi\u00f3n Fipy o simulaci\u00f3n de campo de fase<\/td>\n<\/tr>\n<\/tbody><\/table>\n<h3>lo que m\u00e1s importa<\/h3>\n<ol>\n<li>Prerrequisitos matem\u00e1ticos. No salte a la simulaci\u00f3n de campo de fase si a\u00fan no ha resuelto una PDE num\u00e9ricamente.<\/li>\n<li>comodidad de programaci\u00f3n. Si es nuevo en Python, comience con la ecuaci\u00f3n de calor y construya desde all\u00ed.<\/li>\n<li>Horizonte de tiempo. Un proyecto de semestre necesita un alcance claro. Elija algo que pueda producir un resultado significativo en 4 a 8 semanas.<\/li>\n<li>objetivos de carrera. La ciencia de los materiales apunta hacia la din\u00e1mica de campo o de fase. Puntos financieros hacia Monte Carlo. El software de investigaci\u00f3n apunta hacia solucionadores fibrosos o iterativos.<\/li>\n<\/ol>\n<h3>Errores comunes que cometen los estudiantes<\/h3>\n<ol>\n<li>Elegir un proyecto que es demasiado ambicioso. Un solucionador de campo de fase 3D completo en cuatro semanas no es realista. Ap\u00fanquelo a 2D con par\u00e1metros simples.<\/li>\n<li>Omitir la comparaci\u00f3n de soluciones anal\u00edticas. Siempre compare los resultados num\u00e9ricos con una soluci\u00f3n conocida cuando sea posible.<\/li>\n<li>ignorando la condici\u00f3n CFL. Muchas simulaciones para principiantes fallan porque el paso de tiempo es demasiado grande.<\/li>\n<li>No usar el control de versiones. Git no es opcional para un proyecto serio. Comprom\u00e9tete regularmente para que puedas recuperarte de los errores.<\/li>\n<\/ol>\n<h2 id=\"what-to-skip\">\u00bfQu\u00e9 debes saltarte?<\/h2>\n<p>No todos los proyectos computacionales son igualmente \u00fatiles para la simulaci\u00f3n de aprendizaje. Ev\u00edtelos a menos que tenga una raz\u00f3n espec\u00edfica.<\/p>\n<ul>\n<li>Simulaciones gen\u00e9ricas de \"hola mundo\". Si un proyecto no involucra una PDE, una ley de conservaci\u00f3n, un solucionador num\u00e9rico o un modelo estoc\u00e1stico, puede que no sea un proyecto de ciencia computacional.<\/li>\n<li>Proyectos que requieren hardware especial al principio. No comience con GPU Molecular Dynamics si no ha creado primero la din\u00e1mica molecular de la CPU.<\/li>\n<li>Acoplamiento multif\u00edsico demasiado complejo. Comience con solucionadores de una sola f\u00edsica. El acoplamiento multif\u00edsico es un tema de investigaci\u00f3n, no un proyecto de primer estudiante ideal.<\/li>\n<\/ul>\n<h2 id=\"references\">D\u00f3nde encontrar el c\u00f3digo de referencia<\/h2>\n<p>Varios cursos universitarios y proyectos de c\u00f3digo abierto brindan implementaciones de referencia \u00fatiles:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/CompPhysics\/ComputationalPhysics\">Universidad de F\u00edsica Computacional de Oslo<\/a> \u2014 Materiales del curso con descripciones y soluciones de proyectos.<\/li>\n<li><a href=\"https:\/\/github.com\/aiidateam\/aiida-core\/wiki\/GSoC-2025-Projects\">Proyectos GSOC de AIIDA<\/a> \u2014 Ideas de proyectos estudiantiles en Ciencias de Materiales Computacionales.<\/li>\n<li><a href=\"https:\/\/www.fipy.org\/\">Documentaci\u00f3n de Fipy<\/a> \u2014 Tutoriales oficiales y ejemplos para la biblioteca de vol\u00famenes finitos.<\/li>\n<\/ul>\n<p>Utilice estos recursos como puntos de partida, no como puntos finales. El verdadero aprendizaje ocurre cuando escribes y depuras el c\u00f3digo t\u00fa mismo.<\/p>\n<h2 id=\"conclusion\">Pensamientos finales<\/h2>\n<p>La diferencia entre leer sobre m\u00e9todos num\u00e9ricos y escribir una simulaci\u00f3n es enorme. Puede leer muchos libros de texto de PDE y a\u00fan no entender lo que sucede cuando una ecuaci\u00f3n de difusi\u00f3n se discretiza con un paso de tiempo que es demasiado grande.<\/p>\n<p>Elija un proyecto, comience a codificar e itera. Unas pocas semanas de depuraci\u00f3n pueden ense\u00f1ar m\u00e1s de meses de conferencias pasivas.<\/p>\n<p>Si necesita ayuda con un problema de simulaci\u00f3n espec\u00edfico, como elegir el solucionador correcto, depurar una inestabilidad num\u00e9rica o escalar c\u00f3digo en varios procesadores, considere preguntar a alguien con experiencia. Un buen apoyo puede ayudarlo a evitar las trampas comunes mientras sigue haciendo el trabajo usted mismo.<\/p>\n<h2 id=\"related-guides\">Gu\u00edas relacionadas<\/h2>\n<ul>\n<li><a href=\"https:\/\/matforge.org\/when-to-use-fem-fvm-fdm\/\">cu\u00e1ndo usar FEM, FVM o FDM: una comparaci\u00f3n pr\u00e1ctica para principiantes<\/a> \u2014 Comprender los m\u00e9todos de discretizaci\u00f3n antes de comenzar a codificar.<\/li>\n<li><a href=\"https:\/\/matforge.org\/mesh-quality-convergence-studies-guide-2\/\">Estudios de calidad y convergencia de malla: una gu\u00eda pr\u00e1ctica<\/a> \u2014 Asegur\u00e1ndose de que su cuadr\u00edcula no arruine su simulaci\u00f3n.<\/li>\n<li><a href=\"https:\/\/matforge.org\/python-debugging-scientific-code-print-statements-profiling\/\">Depuraci\u00f3n de Python para c\u00f3digo cient\u00edfico: desde declaraciones impresas hasta perfiles<\/a> \u2014 Estrategias de depuraci\u00f3n para n\u00fameros num\u00e9ricos C\u00f3digo<\/li>\n<li><a href=\"https:\/\/matforge.org\/computational-materials-science-frameworks-moose-vs-prisms-pf-vs-openphase\/\">Marcos computacionales de ciencia de materiales: alce vs prisms-pf vs openphase<\/a>: si desea ir m\u00e1s all\u00e1 de Python.<\/li>\n<\/ul>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 12<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>Comida clave Las ideas de proyectos curados cubren los niveles principiantes, intermedios y avanzados, con un enfoque en la simulaci\u00f3n y la ciencia computacional. Los niveles de dificultad reflejan los requisitos previos, la complejidad de las matem\u00e1ticas y la inversi\u00f3n de tiempo esperada. Se incluyen plantillas de c\u00f3digo para cada proyecto para que los estudiantes [&hellip;]<\/p>\n","protected":false,"raw":""},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"es_ES","_original_post":"https:\/\/matforge.org\/?p=355","iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-562","post","type-post","status-publish","format-standard","hentry","category-simulation-modeling-projects","es-ES"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ideas de proyectos de ciencia computacional para estudiantes<\/title>\n<meta name=\"description\" content=\"Explore las ideas de proyectos de simulaci\u00f3n y ciencia computacional para estudiantes, con niveles de dificultad, plantillas de c\u00f3digo de Python, resultados de aprendizaje y hoja de ruta.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ideas de proyectos de ciencia computacional para estudiantes\" \/>\n<meta property=\"og:description\" content=\"Explore las ideas de proyectos de simulaci\u00f3n y ciencia computacional para estudiantes, con niveles de dificultad, plantillas de c\u00f3digo de Python, resultados de aprendizaje y hoja de ruta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-22T08:17:36+00:00\" \/>\n<meta name=\"author\" content=\"Elena Markovska\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elena Markovska\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/student-project-ideas-computational-science-simulation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/student-project-ideas-computational-science-simulation\\\/\"},\"author\":{\"name\":\"Elena Markovska\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\"},\"headline\":\"Ideas de proyectos estudiantiles para ciencia computacional y simulaci\u00f3n: lista seleccionada con plantillas de c\u00f3digo\",\"datePublished\":\"2026-07-22T08:17:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/student-project-ideas-computational-science-simulation\\\/\"},\"wordCount\":2853,\"commentCount\":0,\"articleSection\":[\"Simulaci\u00f3n &amp; Proyectos de modelado\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/es\\\/student-project-ideas-computational-science-simulation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/student-project-ideas-computational-science-simulation\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/es\\\/student-project-ideas-computational-science-simulation\\\/\",\"name\":\"Ideas de proyectos de ciencia computacional para estudiantes\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-07-22T08:17:36+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\"},\"description\":\"Explore las ideas de proyectos de simulaci\u00f3n y ciencia computacional para estudiantes, con niveles de dificultad, plantillas de c\u00f3digo de Python, resultados de aprendizaje y hoja de ruta.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/student-project-ideas-computational-science-simulation\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/es\\\/student-project-ideas-computational-science-simulation\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/student-project-ideas-computational-science-simulation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ideas de proyectos estudiantiles para ciencia computacional y simulaci\u00f3n: lista seleccionada con plantillas de c\u00f3digo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\",\"url\":\"https:\\\/\\\/matforge.org\\\/\",\"name\":\"matforge.org\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/matforge.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/980162bb5de46742daece973661d93da\",\"name\":\"Elena Markovska\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g\",\"caption\":\"Elena Markovska\"},\"sameAs\":[\"http:\\\/\\\/matforge.org\"],\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/elena-markovska\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ideas de proyectos de ciencia computacional para estudiantes","description":"Explore las ideas de proyectos de simulaci\u00f3n y ciencia computacional para estudiantes, con niveles de dificultad, plantillas de c\u00f3digo de Python, resultados de aprendizaje y hoja de ruta.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/","og_locale":"es_ES","og_type":"article","og_title":"Ideas de proyectos de ciencia computacional para estudiantes","og_description":"Explore las ideas de proyectos de simulaci\u00f3n y ciencia computacional para estudiantes, con niveles de dificultad, plantillas de c\u00f3digo de Python, resultados de aprendizaje y hoja de ruta.","og_url":"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/","og_site_name":"matforge.org","article_published_time":"2026-07-22T08:17:36+00:00","author":"Elena Markovska","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Elena Markovska","Tiempo de lectura":"19 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/"},"author":{"name":"Elena Markovska","@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da"},"headline":"Ideas de proyectos estudiantiles para ciencia computacional y simulaci\u00f3n: lista seleccionada con plantillas de c\u00f3digo","datePublished":"2026-07-22T08:17:36+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/"},"wordCount":2853,"commentCount":0,"articleSection":["Simulaci\u00f3n &amp; Proyectos de modelado"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/","url":"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/","name":"Ideas de proyectos de ciencia computacional para estudiantes","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-07-22T08:17:36+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da"},"description":"Explore las ideas de proyectos de simulaci\u00f3n y ciencia computacional para estudiantes, con niveles de dificultad, plantillas de c\u00f3digo de Python, resultados de aprendizaje y hoja de ruta.","breadcrumb":{"@id":"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/es\/student-project-ideas-computational-science-simulation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/es\/"},{"@type":"ListItem","position":2,"name":"Ideas de proyectos estudiantiles para ciencia computacional y simulaci\u00f3n: lista seleccionada con plantillas de c\u00f3digo"}]},{"@type":"WebSite","@id":"https:\/\/matforge.org\/#website","url":"https:\/\/matforge.org\/","name":"matforge.org","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/matforge.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/980162bb5de46742daece973661d93da","name":"Elena Markovska","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2de4e35b6581d7d8a839335156c6b5834cfaa0aef537a1c837e882dc57eea1e7?s=96&d=mm&r=g","caption":"Elena Markovska"},"sameAs":["http:\/\/matforge.org"],"url":"https:\/\/matforge.org\/author\/elena-markovska\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=562"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/562\/revisions"}],"predecessor-version":[{"id":727,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/562\/revisions\/727"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}