Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • 9129b66
  • /
  • notebooks
  • /
  • run_GenEO_2d.ipynb
Raw File Download

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge
swh:1:cnt:03c0d61d7feee590e8b1bac915e90ec96dec961a
directory badge
swh:1:dir:3ea03368389b10e9be9528aef049c41602648719

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
(requires biblatex-software package)
Generating citation ...
(requires biblatex-software package)
Generating citation ...
run_GenEO_2d.ipynb
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Test Number 1: BNN without GenEO coarse space"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Subdomain number 0 contributes 0 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 0 contributes 0 coarse vectors in total\n",
      "Subdomain number 3 contributes 3 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 1 contributes 3 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 2 contributes 3 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 3 contributes 3 coarse vectors in total\n",
      "Subdomain number 2 contributes 3 coarse vectors in total\n",
      "Subdomain number 1 contributes 3 coarse vectors in total\n",
      "There are 9 vectors in the coarse space.\n",
      "  0 KSP Residual norm 2.629268193443e+04 \n",
      "  1 KSP Residual norm 7.136364363754e+03 \n",
      "  2 KSP Residual norm 4.935460301360e+03 \n",
      "  3 KSP Residual norm 5.263061115163e+01 \n",
      "  4 KSP Residual norm 5.860110112786e+03 \n",
      "  5 KSP Residual norm 1.097704862336e+03 \n",
      "  6 KSP Residual norm 1.091612844527e+02 \n",
      "  7 KSP Residual norm 8.764774542997e+00 \n",
      "  8 KSP Residual norm 8.306826733219e+00 \n",
      "  9 KSP Residual norm 2.423446070491e+02 \n",
      " 10 KSP Residual norm 2.420845648289e+01 \n",
      " 11 KSP Residual norm 1.283881717290e+03 \n",
      " 12 KSP Residual norm 6.860695360345e+02 \n",
      " 13 KSP Residual norm 1.046702092718e+01 \n",
      " 14 KSP Residual norm 4.609780925584e+00 \n",
      " 15 KSP Residual norm 5.423053294381e+01 \n",
      " 16 KSP Residual norm 1.562887123519e+00 \n",
      " 17 KSP Residual norm 9.796414223076e-01 \n",
      " 18 KSP Residual norm 1.655128718404e+01 \n",
      " 19 KSP Residual norm 2.423448882084e+00 \n",
      " 20 KSP Residual norm 3.356323851406e-01 \n",
      " 21 KSP Residual norm 1.996079106517e+02 \n",
      " 22 KSP Residual norm 7.462050898455e+01 \n",
      " 23 KSP Residual norm 2.518426331369e-02 \n"
     ]
    }
   ],
   "source": [
    "!mpiexec -np 4 --oversubscribe python demo_GenEO_2d.py -AMPCG_verbose -ksp_monitor -PCBNN_verbose -PCBNN_GenEO false"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "from plot import plot_solution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c9d1b5da8e254431a1961b8cfc30225b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(Renderer(camera=PerspectiveCamera(position=(0.0, 0.0, 13.0)), controls=[OrbitControls(controlli…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_solution('output_2d', 'solution_2d.vts')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Test Number 2: BNN with GenEO coarse space"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Subdomain number 0 contributes 0 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 1 contributes 3 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 2 contributes 3 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 3 contributes 3 coarse vectors as zero energy modes of local solver\n",
      "GenEO eigenvalue number 0 for lambdamax in subdomain 1: (1.4945905644205672e-06+0j)\n",
      "GenEO eigenvalue number 1 for lambdamax in subdomain 1: (1.3826304534084137e-05+0j)\n",
      "GenEO eigenvalue number 2 for lambdamax in subdomain 1: (4.5054862699016505e-05+0j)\n",
      "GenEO eigenvalue number 3 for lambdamax in subdomain 1: (0.05405868128473235+0j)\n",
      "GenEO eigenvalue number 4 for lambdamax in subdomain 1: (0.054059009027747504+0j)\n",
      "GenEO eigenvalue number 5 for lambdamax in subdomain 1: (0.056663048124898245+0j)\n",
      "GenEO eigenvalue number 6 for lambdamax in subdomain 1: (0.05707962286789531+0j)\n",
      "GenEO eigenvalue number 7 for lambdamax in subdomain 1: (0.1590121284975672+0j)\n",
      "GenEO eigenvalue number 8 for lambdamax in subdomain 1: (0.15905866059775023+0j)\n",
      "GenEO eigenvalue number 9 for lambdamax in subdomain 1: (0.22127754627425406+0j) <-- not selected (> 0.2)\n",
      "Subdomain number 1 contributes 12 coarse vectors after first GenEO\n",
      "Subdomain number 1 contributes 12 coarse vectors in total\n",
      "GenEO eigenvalue number 0 for lambdamax in subdomain 2: (1.4945905644205672e-06+0j)\n",
      "GenEO eigenvalue number 1 for lambdamax in subdomain 2: (1.3826304534084137e-05+0j)\n",
      "GenEO eigenvalue number 2 for lambdamax in subdomain 2: (4.5054862699016505e-05+0j)\n",
      "GenEO eigenvalue number 3 for lambdamax in subdomain 2: (0.05405868128473235+0j)\n",
      "GenEO eigenvalue number 4 for lambdamax in subdomain 2: (0.054059009027747504+0j)\n",
      "GenEO eigenvalue number 5 for lambdamax in subdomain 2: (0.056663048124898245+0j)\n",
      "GenEO eigenvalue number 6 for lambdamax in subdomain 2: (0.05707962286789531+0j)\n",
      "GenEO eigenvalue number 7 for lambdamax in subdomain 2: (0.1590121284975672+0j)\n",
      "GenEO eigenvalue number 8 for lambdamax in subdomain 2: (0.15905866059775023+0j)\n",
      "GenEO eigenvalue number 9 for lambdamax in subdomain 2: (0.22127754627425406+0j) <-- not selected (> 0.2)\n",
      "Subdomain number 2 contributes 12 coarse vectors after first GenEO\n",
      "Subdomain number 2 contributes 12 coarse vectors in total\n",
      "GenEO eigenvalue number 0 for lambdamax in subdomain 0: (0.00031732419879194125+0j)\n",
      "GenEO eigenvalue number 1 for lambdamax in subdomain 0: (0.0003370240261628236+0j)\n",
      "GenEO eigenvalue number 2 for lambdamax in subdomain 0: (0.028282401567833855+0j)\n",
      "GenEO eigenvalue number 3 for lambdamax in subdomain 0: (0.028283168511417482+0j)\n",
      "GenEO eigenvalue number 4 for lambdamax in subdomain 0: (0.111982986271491+0j)\n",
      "GenEO eigenvalue number 5 for lambdamax in subdomain 0: (0.11219184197646168+0j)\n",
      "GenEO eigenvalue number 6 for lambdamax in subdomain 0: (0.22129077270330236+0j) <-- not selected (> 0.2)\n",
      "GenEO eigenvalue number 7 for lambdamax in subdomain 0: (0.2212907735051293+0j) <-- not selected (> 0.2)\n",
      "GenEO eigenvalue number 8 for lambdamax in subdomain 0: (0.5564840670455399+0j) <-- not selected (> 0.2)\n",
      "GenEO eigenvalue number 9 for lambdamax in subdomain 0: (0.5839813243185191+0j) <-- not selected (> 0.2)\n",
      "Subdomain number 0 contributes 6 coarse vectors after first GenEO\n",
      "This is BNN so eigmin = 1, no eigenvalue problem will be solved for eigmin\n",
      "Subdomain number 0 contributes 6 coarse vectors in total\n",
      "GenEO eigenvalue number 0 for lambdamax in subdomain 3: (2.1208234833446384e-05+0j)\n",
      "GenEO eigenvalue number 1 for lambdamax in subdomain 3: (3.18585278025384e-05+0j)\n",
      "GenEO eigenvalue number 2 for lambdamax in subdomain 3: (0.008267951049146533+0j)\n",
      "GenEO eigenvalue number 3 for lambdamax in subdomain 3: (0.22129069514149202+0j) <-- not selected (> 0.2)\n",
      "GenEO eigenvalue number 4 for lambdamax in subdomain 3: (0.22129069789192596+0j) <-- not selected (> 0.2)\n",
      "GenEO eigenvalue number 5 for lambdamax in subdomain 3: (0.5564838682522003+0j) <-- not selected (> 0.2)\n",
      "GenEO eigenvalue number 6 for lambdamax in subdomain 3: (0.5839813228857347+0j) <-- not selected (> 0.2)\n",
      "GenEO eigenvalue number 7 for lambdamax in subdomain 3: (0.5839813229177968+0j) <-- not selected (> 0.2)\n",
      "GenEO eigenvalue number 8 for lambdamax in subdomain 3: (0.6574284065235355+0j) <-- not selected (> 0.2)\n",
      "GenEO eigenvalue number 9 for lambdamax in subdomain 3: (0.6574287754614184+0j) <-- not selected (> 0.2)\n",
      "GenEO eigenvalue number 10 for lambdamax in subdomain 3: (0.8078884348812645+0j) <-- not selected (> 0.2)\n",
      "Subdomain number 3 contributes 6 coarse vectors after first GenEO\n",
      "Subdomain number 3 contributes 6 coarse vectors in total\n",
      "There are 36 vectors in the coarse space.\n",
      "  0 KSP Residual norm 2.853564386243e+00 \n",
      "  1 KSP Residual norm 4.966612149978e+00 \n",
      "  2 KSP Residual norm 2.582872672444e-01 \n",
      "  3 KSP Residual norm 1.538708913259e-02 \n",
      "  4 KSP Residual norm 1.367483750468e-03 \n",
      "  5 KSP Residual norm 3.263132619873e-03 \n",
      "  6 KSP Residual norm 8.954590180644e-05 \n",
      "  7 KSP Residual norm 3.459158863878e-05 \n",
      "  8 KSP Residual norm 8.138128387946e-07 \n",
      "--------------------------------------------------------------------------\n",
      "A system call failed during shared memory initialization that should\n",
      "not have.  It is likely that your MPI job will now either abort or\n",
      "experience performance degradation.\n",
      "\n",
      "  Local host:  Nicole-Labo.local\n",
      "  System call: unlink(2) /var/folders/8p/hgpy6xb13m1fsls_0ft26twh0000gn/T//ompi.Nicole-Labo.501/pid.79809/1/vader_segment.Nicole-Labo.501.90070001.3\n",
      "  Error:       No such file or directory (errno 2)\n",
      "--------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "!mpiexec -np 4 --oversubscribe python demo_GenEO_2d.py -AMPCG_verbose -ksp_monitor -PCBNN_verbose -PCBNN_GenEO true"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "from plot import plot_solution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2a0f295c81004f8a90f2c75de37affb6",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(Renderer(camera=PerspectiveCamera(position=(0.0, 0.0, 13.0)), controls=[OrbitControls(controlli…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_solution('output_2d', 'solution_2d.vts')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Test Number 3: BNN with GenEO coarse space and less strict tolerance than default\n",
    "By default the target is $\\lambda_{\\text{max}}^{\\text{target}} = 100$, here we ask for $\\lambda_{\\text{max}}^{\\text{target}} = 1000$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Subdomain number 0 contributes 0 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 2 contributes 3 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 3 contributes 3 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 1 contributes 3 coarse vectors as zero energy modes of local solver\n",
      "GenEO eigenvalue number 0 for lambdamax in subdomain 1: (1.4945905644205672e-06+0j)\n",
      "GenEO eigenvalue number 1 for lambdamax in subdomain 1: (1.3826304534084137e-05+0j)\n",
      "GenEO eigenvalue number 2 for lambdamax in subdomain 1: (4.5054862699016505e-05+0j)\n",
      "GenEO eigenvalue number 3 for lambdamax in subdomain 1: (0.05405868128473235+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 4 for lambdamax in subdomain 1: (0.054059009027747504+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 5 for lambdamax in subdomain 1: (0.056663048124898245+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 6 for lambdamax in subdomain 1: (0.05707962286789531+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 7 for lambdamax in subdomain 1: (0.1590121284975672+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 8 for lambdamax in subdomain 1: (0.15905866059775023+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 9 for lambdamax in subdomain 1: (0.22127754627425406+0j) <-- not selected (> 0.002)\n",
      "Subdomain number 1 contributes 6 coarse vectors after first GenEO\n",
      "Subdomain number 1 contributes 6 coarse vectors in total\n",
      "GenEO eigenvalue number 0 for lambdamax in subdomain 2: (1.4945905644205672e-06+0j)\n",
      "GenEO eigenvalue number 1 for lambdamax in subdomain 2: (1.3826304534084137e-05+0j)\n",
      "GenEO eigenvalue number 2 for lambdamax in subdomain 2: (4.5054862699016505e-05+0j)\n",
      "GenEO eigenvalue number 3 for lambdamax in subdomain 2: (0.05405868128473235+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 4 for lambdamax in subdomain 2: (0.054059009027747504+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 5 for lambdamax in subdomain 2: (0.056663048124898245+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 6 for lambdamax in subdomain 2: (0.05707962286789531+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 7 for lambdamax in subdomain 2: (0.1590121284975672+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 8 for lambdamax in subdomain 2: (0.15905866059775023+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 9 for lambdamax in subdomain 2: (0.22127754627425406+0j) <-- not selected (> 0.002)\n",
      "Subdomain number 2 contributes 6 coarse vectors after first GenEO\n",
      "Subdomain number 2 contributes 6 coarse vectors in total\n",
      "GenEO eigenvalue number 0 for lambdamax in subdomain 0: (0.00031732419879194125+0j)\n",
      "GenEO eigenvalue number 1 for lambdamax in subdomain 0: (0.0003370240261628236+0j)\n",
      "GenEO eigenvalue number 2 for lambdamax in subdomain 0: (0.028282401567833855+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 3 for lambdamax in subdomain 0: (0.028283168511417482+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 4 for lambdamax in subdomain 0: (0.111982986271491+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 5 for lambdamax in subdomain 0: (0.11219184197646168+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 6 for lambdamax in subdomain 0: (0.22129077270330236+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 7 for lambdamax in subdomain 0: (0.2212907735051293+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 8 for lambdamax in subdomain 0: (0.5564840670455399+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 9 for lambdamax in subdomain 0: (0.5839813243185191+0j) <-- not selected (> 0.002)\n",
      "Subdomain number 0 contributes 2 coarse vectors after first GenEO\n",
      "This is BNN so eigmin = 1, no eigenvalue problem will be solved for eigmin\n",
      "Subdomain number 0 contributes 2 coarse vectors in total\n",
      "GenEO eigenvalue number 0 for lambdamax in subdomain 3: (2.1208234833446384e-05+0j)\n",
      "GenEO eigenvalue number 1 for lambdamax in subdomain 3: (3.18585278025384e-05+0j)\n",
      "GenEO eigenvalue number 2 for lambdamax in subdomain 3: (0.008267951049146533+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 3 for lambdamax in subdomain 3: (0.22129069514149202+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 4 for lambdamax in subdomain 3: (0.22129069789192596+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 5 for lambdamax in subdomain 3: (0.5564838682522003+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 6 for lambdamax in subdomain 3: (0.5839813228857347+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 7 for lambdamax in subdomain 3: (0.5839813229177968+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 8 for lambdamax in subdomain 3: (0.6574284065235355+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 9 for lambdamax in subdomain 3: (0.6574287754614184+0j) <-- not selected (> 0.002)\n",
      "GenEO eigenvalue number 10 for lambdamax in subdomain 3: (0.8078884348812645+0j) <-- not selected (> 0.002)\n",
      "Subdomain number 3 contributes 5 coarse vectors after first GenEO\n",
      "Subdomain number 3 contributes 5 coarse vectors in total\n",
      "There are 19 vectors in the coarse space.\n",
      "  0 KSP Residual norm 6.624560964727e+01 \n",
      "  1 KSP Residual norm 6.711450314872e+00 \n",
      "  2 KSP Residual norm 2.639853029733e-01 \n",
      "  3 KSP Residual norm 1.966555729695e-02 \n",
      "  4 KSP Residual norm 2.688426827986e-03 \n",
      "  5 KSP Residual norm 6.525302455015e-03 \n",
      "  6 KSP Residual norm 2.827952033537e-04 \n"
     ]
    }
   ],
   "source": [
    "!mpiexec -np 4 --oversubscribe python demo_GenEO_2d.py -AMPCG_verbose -ksp_monitor -PCBNN_verbose -PCBNN_GenEO true -PCBNN_GenEO_eigmax 1000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "from plot import plot_solution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "64a8a935ab8e443591f8b73a6b92eff3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(Renderer(camera=PerspectiveCamera(position=(0.0, 0.0, 13.0)), controls=[OrbitControls(controlli…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_solution('output_2d', 'solution_2d.vts')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Test Number 4: Additive Schwarz with GenEO coarse space"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The user has chosen to switch to Additive Schwarz instead of BNN.\n",
      "Subdomain number 2 contributes 0 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 1 contributes 0 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 3 contributes 0 coarse vectors as zero energy modes of local solver\n",
      "Subdomain number 0 contributes 0 coarse vectors as zero energy modes of local solver\n",
      "This is classical additive Schwarz so eigmax = 2.0 (+1 if fully additive preconditioner), no eigenvalue problem will be solved for eigmax\n",
      "Subdomain number 0 contributes 0 coarse vectors as zero energy modes of the scaled local operator (in GenEO for eigmin)\n",
      "Subdomain number 2 contributes 3 coarse vectors as zero energy modes of the scaled local operator (in GenEO for eigmin)\n",
      "Subdomain number 3 contributes 3 coarse vectors as zero energy modes of the scaled local operator (in GenEO for eigmin)\n",
      "Subdomain number 1 contributes 3 coarse vectors as zero energy modes of the scaled local operator (in GenEO for eigmin)\n",
      "GenEO eigenvalue number 0 for lambdamin in subdomain 2: (1.4945905644205685e-06+0j)\n",
      "GenEO eigenvalue number 1 for lambdamin in subdomain 2: (1.3826304534084115e-05+0j)\n",
      "GenEO eigenvalue number 2 for lambdamin in subdomain 2: (4.505486269901672e-05+0j)\n",
      "GenEO eigenvalue number 3 for lambdamin in subdomain 2: (0.05405868128473257+0j)\n",
      "GenEO eigenvalue number 4 for lambdamin in subdomain 2: (0.054059009027747594+0j)\n",
      "GenEO eigenvalue number 5 for lambdamin in subdomain 2: (0.0566630481248983+0j)\n",
      "GenEO eigenvalue number 6 for lambdamin in subdomain 2: (0.05707962286789529+0j)\n",
      "GenEO eigenvalue number 7 for lambdamin in subdomain 2: (0.15901212849756435+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 8 for lambdamin in subdomain 2: (0.15905866059774557+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 9 for lambdamin in subdomain 2: (0.22127754627469343+0j) <-- not selected (> 0.1)\n",
      "Subdomain number 2 contributes 10 coarse vectors in total\n",
      "GenEO eigenvalue number 0 for lambdamin in subdomain 1: (1.4945905644205685e-06+0j)\n",
      "GenEO eigenvalue number 1 for lambdamin in subdomain 1: (1.3826304534084115e-05+0j)\n",
      "GenEO eigenvalue number 2 for lambdamin in subdomain 1: (4.505486269901672e-05+0j)\n",
      "GenEO eigenvalue number 3 for lambdamin in subdomain 1: (0.05405868128473257+0j)\n",
      "GenEO eigenvalue number 4 for lambdamin in subdomain 1: (0.054059009027747594+0j)\n",
      "GenEO eigenvalue number 5 for lambdamin in subdomain 1: (0.0566630481248983+0j)\n",
      "GenEO eigenvalue number 6 for lambdamin in subdomain 1: (0.05707962286789529+0j)\n",
      "GenEO eigenvalue number 7 for lambdamin in subdomain 1: (0.15901212849756435+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 8 for lambdamin in subdomain 1: (0.15905866059774557+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 9 for lambdamin in subdomain 1: (0.22127754627469343+0j) <-- not selected (> 0.1)\n",
      "Subdomain number 1 contributes 10 coarse vectors in total\n",
      "GenEO eigenvalue number 0 for lambdamin in subdomain 0: (0.00031732419879194125+0j)\n",
      "GenEO eigenvalue number 1 for lambdamin in subdomain 0: (0.0003370240261628236+0j)\n",
      "GenEO eigenvalue number 2 for lambdamin in subdomain 0: (0.028282401567833855+0j)\n",
      "GenEO eigenvalue number 3 for lambdamin in subdomain 0: (0.028283168511417482+0j)\n",
      "GenEO eigenvalue number 4 for lambdamin in subdomain 0: (0.111982986271491+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 5 for lambdamin in subdomain 0: (0.11219184197646168+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 6 for lambdamin in subdomain 0: (0.22129077270330236+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 7 for lambdamin in subdomain 0: (0.2212907735051293+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 8 for lambdamin in subdomain 0: (0.5564840670455399+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 9 for lambdamin in subdomain 0: (0.5839813243185191+0j) <-- not selected (> 0.1)\n",
      "Subdomain number 0 contributes 4 coarse vectors in total\n",
      "GenEO eigenvalue number 0 for lambdamin in subdomain 3: (2.1208234833446408e-05+0j)\n",
      "GenEO eigenvalue number 1 for lambdamin in subdomain 3: (3.185852780254934e-05+0j)\n",
      "GenEO eigenvalue number 2 for lambdamin in subdomain 3: (0.008267951049149007+0j)\n",
      "GenEO eigenvalue number 3 for lambdamin in subdomain 3: (0.22129069514149105+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 4 for lambdamin in subdomain 3: (0.22129069789192488+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 5 for lambdamin in subdomain 3: (0.5564838682522003+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 6 for lambdamin in subdomain 3: (0.583981322893095+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 7 for lambdamin in subdomain 3: (0.5839813229104338+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 8 for lambdamin in subdomain 3: (0.6574284065235037+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 9 for lambdamin in subdomain 3: (0.6574287754614225+0j) <-- not selected (> 0.1)\n",
      "GenEO eigenvalue number 10 for lambdamin in subdomain 3: (0.8078884348443285+0j) <-- not selected (> 0.1)\n",
      "Subdomain number 3 contributes 6 coarse vectors in total\n",
      "There are 30 vectors in the coarse space.\n",
      "  0 KSP Residual norm 4.629956316580e+00 \n",
      "  1 KSP Residual norm 1.917574142489e+00 \n",
      "  2 KSP Residual norm 2.274917072116e+00 \n",
      "  3 KSP Residual norm 3.455852228238e-01 \n",
      "  4 KSP Residual norm 1.939840304250e-01 \n",
      "  5 KSP Residual norm 2.326484704634e-01 \n",
      "  6 KSP Residual norm 9.964194868328e-02 \n",
      "  7 KSP Residual norm 1.894197347551e-02 \n",
      "  8 KSP Residual norm 4.350109134410e-03 \n",
      "  9 KSP Residual norm 3.511853159586e-03 \n",
      " 10 KSP Residual norm 9.025485051546e-04 \n",
      " 11 KSP Residual norm 1.104179904784e-04 \n",
      " 12 KSP Residual norm 6.028933287553e-05 \n",
      " 13 KSP Residual norm 3.166940876578e-05 \n"
     ]
    }
   ],
   "source": [
    "!mpiexec -np 4 --oversubscribe python demo_GenEO_2d.py -AMPCG_verbose -ksp_monitor -PCBNN_verbose -PCBNN_GenEO true -PCBNN_switchtoASM true"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "from plot import plot_solution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c86051bf7a424e8fa8dd06528dfb6f4f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(Renderer(camera=PerspectiveCamera(position=(0.0, 0.0, 13.0)), controls=[OrbitControls(controlli…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_solution('output_2d', 'solution_2d.vts')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

back to top

Software Heritage — Copyright (C) 2015–2026, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API