{ "cells": [ { "cell_type": "markdown", "id": "a42e7807", "metadata": { "language": "markdown", "papermill": { "duration": 0.001523, "end_time": "2026-05-26T01:18:07.232726+00:00", "exception": false, "start_time": "2026-05-26T01:18:07.231203+00:00", "status": "completed" }, "tags": [] }, "source": [ "# Dipole Antenna Mesh with PalaceToolkit\n", "\n", "This notebook uses PalaceToolkit utilities with a robust workflow:\n", "- build primitives\n", "- fragment once for conformal topology\n", "- define `Entity` objects from fragmented geometry\n", "- run `run_meshing_pipeline`, refine with `refine_near_surfaces`, then `generate_3d_mesh`\n", "- visualize with `palacetoolkit.viz`\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "906648bd", "metadata": { "execution": { "iopub.execute_input": "2026-05-26T01:18:07.237177Z", "iopub.status.busy": "2026-05-26T01:18:07.236915Z", "iopub.status.idle": "2026-05-26T01:18:07.973443Z", "shell.execute_reply": "2026-05-26T01:18:07.972087Z" }, "language": "python", "papermill": { "duration": 0.739868, "end_time": "2026-05-26T01:18:07.974228+00:00", "exception": false, "start_time": "2026-05-26T01:18:07.234360+00:00", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "from pathlib import Path\n", "import math\n", "import gmsh\n", "\n", "from palacetoolkit.geometry import xmin, xmax, ymin, ymax, zmin, zmax, extract_tag\n", "from palacetoolkit.mesh import Entity, run_meshing_pipeline, generate_3d_mesh, refine_near_surfaces\n", "from palacetoolkit.viz import view_mesh\n", "from palacetoolkit.simulation import generate_palace_config_from_entities, run_palace\n", "from palacetoolkit.verify_topology import verify, print_report, visualise_problems" ] }, { "cell_type": "code", "execution_count": 2, "id": "5b1a7aa6", "metadata": { "execution": { "iopub.execute_input": "2026-05-26T01:18:07.977853Z", "iopub.status.busy": "2026-05-26T01:18:07.977598Z", "iopub.status.idle": "2026-05-26T01:18:07.982280Z", "shell.execute_reply": "2026-05-26T01:18:07.980915Z" }, "language": "python", "papermill": { "duration": 0.007855, "end_time": "2026-05-26T01:18:07.983582+00:00", "exception": false, "start_time": "2026-05-26T01:18:07.975727+00:00", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "wavelength = 4.0\n", "arm_length = wavelength / 4\n", "arm_radius = arm_length / 20\n", "gap_size = arm_length / 50\n", "outer_boundary_radius = 1.5 * wavelength\n", "mesh_file = \"dipole.msh\"" ] }, { "cell_type": "code", "execution_count": 3, "id": "f66556ad", "metadata": { "execution": { "iopub.execute_input": "2026-05-26T01:18:07.989481Z", "iopub.status.busy": "2026-05-26T01:18:07.989145Z", "iopub.status.idle": "2026-05-26T01:18:39.618599Z", "shell.execute_reply": "2026-05-26T01:18:39.617356Z" }, "language": "python", "papermill": { "duration": 31.634225, "end_time": "2026-05-26T01:18:39.619934+00:00", "exception": false, "start_time": "2026-05-26T01:18:07.985709+00:00", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "if gmsh.isInitialized():\n", " gmsh.finalize()\n", "gmsh.initialize()\n", "gmsh.option.setNumber(\"General.Verbosity\", 2)\n", "gmsh.model.add(\"dipole_entity_pipeline\")\n", "occ = gmsh.model.occ\n", "\n", "air = occ.addSphere(0, 0, 0, outer_boundary_radius)\n", "top_arm = occ.addBox(-arm_radius, -arm_radius, gap_size / 2, 2 * arm_radius, 2 * arm_radius, arm_length)\n", "bot_arm = occ.addBox(-arm_radius, -arm_radius, -gap_size / 2 - arm_length, 2 * arm_radius, 2 * arm_radius, arm_length)\n", "port_sheet = occ.addRectangle(-arm_radius, -gap_size / 2, 0, 2 * arm_radius, gap_size)\n", "occ.rotate([(2, port_sheet)], 0, 0, 0, 1, 0, 0, math.pi / 2)\n", "occ.synchronize()" ] }, { "cell_type": "code", "execution_count": 4, "id": "bc7e7def", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Physical group 'air' (dim=3): pg=1, tags=[1]\n", " Physical group 'top_arm' (dim=3): pg=2, tags=[2]\n", " Physical group 'bot_arm' (dim=3): pg=3, tags=[3]\n", " Physical group 'port' (dim=2): pg=4, tags=[14]\n", " Physical group 'air__None' (dim=2): pg=5, tags=[23]\n", " Physical group 'air__bot_arm' (dim=2): pg=6, tags=[19, 10, 21, 22, 11, 12, 20]\n", " Physical group 'air__top_arm' (dim=2): pg=7, tags=[15, 4, 7, 5, 17, 18, 16]\n", " ppw_near=30 ppw_far=5\n", " SizeMax=0.8000 transition=1.0000\n", " global: 7 curves, SizeMin=0.1333\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Warning : Unknown curve 11\n", "Warning : Unknown curve 21\n", "Warning : ------------------------------\n", "Warning : Mesh generation error summary\n", "Warning : 2 warnings\n", "Warning : 0 errors\n", "Warning : Check the full log for details\n", "Warning : ------------------------------\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Mesh saved to dipole.msh\n", " Nodes: 1994\n", " Elements: 10919\n" ] }, { "data": { "text/plain": [ "{'port': 4,\n", " 'air__None': 5,\n", " 'air__bot_arm': 6,\n", " 'air__top_arm': 7,\n", " 'air': 1,\n", " 'top_arm': 2,\n", " 'bot_arm': 3}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Entity + boolean pipeline for named physical groups.\n", "entities = [\n", " Entity(\"air\", dim=3, mesh_order=2, btype=\"dielectric\", tags=[air], loss_tan=0.0, eps_r=1.0, mu_r=1.0),\n", " Entity(\"top_arm\", dim=3, mesh_order=1, btype=\"pec\", tags=[top_arm]),\n", " Entity(\"bot_arm\", dim=3, mesh_order=1, btype=\"pec\", tags=[bot_arm]),\n", " Entity(\"port\", dim=2, mesh_order=0, btype=\"lumped_port\", tags=[port_sheet], R=50.0, direction=\"+Z\", excitation=True),\n", "]\n", "pg_map = run_meshing_pipeline(entities)\n", "\n", "refine_near_surfaces(\n", " entities[2].dimtags,\n", " wavelength,\n", " ppw_near=30,\n", " ppw_far=5,\n", " transition_distance=wavelength / 4,\n", " set_as_background=True\n", ")\n", "\n", "generate_3d_mesh(entities, output_file=mesh_file, optimize=True)\n", "gmsh.finalize()\n", "pg_map" ] }, { "cell_type": "code", "execution_count": 5, "id": "91c6664f", "metadata": { "execution": { "iopub.execute_input": "2026-05-26T01:18:39.623943Z", "iopub.status.busy": "2026-05-26T01:18:39.623738Z", "iopub.status.idle": "2026-05-26T01:18:41.070528Z", "shell.execute_reply": "2026-05-26T01:18:41.069298Z" }, "language": "python", "papermill": { "duration": 1.449963, "end_time": "2026-05-26T01:18:41.071511+00:00", "exception": false, "start_time": "2026-05-26T01:18:39.621548+00:00", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loading mesh file: dipole.msh\n", "Groups to render transparent: ['air__None']\n", "\n", "Mesh loaded successfully with 2 cell blocks\n", "Found 2006 triangles total\n", "Physical group tags in mesh: {4: 'port', 5: 'air__None', 6: 'air__bot_arm', 7: 'air__top_arm'}\n" ] }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "view_mesh(mesh_file, transparent_groups=[\"air__None\"])" ] }, { "cell_type": "code", "execution_count": 6, "id": "d89f65e1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Estimated f0 = 0.074948 GHz\n", "Sweep: 0.056211 to 0.093685 GHz (step 0.001874 GHz)\n", "Palace config written to dipole_antenna.json\n" ] }, { "data": { "text/plain": [ "{'Problem': {'Type': 'Driven',\n", " 'Verbose': 2,\n", " 'Output': 'postpro/dipole_antenna'},\n", " 'Model': {'Mesh': 'dipole.msh', 'L0': 1.0, 'Refinement': {}},\n", " 'Domains': {'Materials': [{'Attributes': [1],\n", " 'Permeability': 1.0,\n", " 'Permittivity': 1.0,\n", " 'LossTan': 0.0}]},\n", " 'Boundaries': {'PEC': {'Attributes': [2, 3]},\n", " 'Absorbing': {'Attributes': [5, 6, 7], 'Order': 2},\n", " 'LumpedPort': [{'Index': 1,\n", " 'Attributes': [4],\n", " 'R': 50.0,\n", " 'Excitation': True,\n", " 'Direction': '+Z'}],\n", " 'Postprocessing': {'FarField': {'Attributes': [5, 6, 7], 'NSample': 16000}}},\n", " 'Solver': {'Order': 2,\n", " 'Device': 'CPU',\n", " 'Driven': {'MinFreq': 0.056211085875,\n", " 'MaxFreq': 0.093685143125,\n", " 'FreqStep': 0.0018737028625,\n", " 'SaveStep': 5,\n", " 'AdaptiveTol': 0.001},\n", " 'Linear': {'Type': 'Default',\n", " 'KSPType': 'GMRES',\n", " 'Tol': 1e-08,\n", " 'MaxIts': 500}}}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "config_file: str = \"dipole_antenna.json\"\n", "mesh_file = \"dipole.msh\"\n", "\n", "# Frequency sweep centered around the dipole resonance.\n", "# Each arm is lambda/4, so total dipole length is lambda/2 and\n", "# the resonant frequency is approximately f0 = c / lambda.\n", "c0 = 299_792_458.0\n", "f0_hz = c0 / wavelength\n", "f0_ghz = f0_hz / 1e9\n", "\n", "freq_min: float = 0.75 * f0_ghz\n", "freq_max: float = 1.25 * f0_ghz\n", "freq_step: float = (freq_max-freq_min)/20\n", "solver_order: int = 2\n", "\n", "print(f\"Estimated f0 = {f0_ghz:.6f} GHz\")\n", "print(f\"Sweep: {freq_min:.6f} to {freq_max:.6f} GHz (step {freq_step:.6f} GHz)\")\n", "\n", "generate_palace_config_from_entities(entity_defs = [e.to_dict() for e in entities],\n", " pg_map = pg_map,\n", " mesh_file = mesh_file,\n", " output_file = config_file,\n", " freq_min = freq_min,\n", " freq_max = freq_max,\n", " freq_step = freq_step ,\n", " L0 = 1.0,\n", " solver_order = solver_order,\n", " absorbing_order = 2,\n", " farfield=True)" ] }, { "cell_type": "code", "execution_count": 7, "id": "0ee29358", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "╔══════════════════════════════════════════════════════════════════════╗\n", "║ Mesh Topological Consistency Report ║\n", "╚══════════════════════════════════════════════════════════════════════╝\n", "\n", " Mesh file: dipole.msh\n", " Vertices: 1,994\n", " Tetrahedra: 8,791\n", " Boundary triangles: 2,006\n", " Unique volume faces: 18,519\n", " interior (2 tets): 16,645\n", " skin (1 tet): 1,874\n", "\n", " Physical groups (2-D):\n", " attr 1 = air\n", " attr 2 = top_arm\n", " attr 3 = bot_arm\n", " attr 4 = port\n", " attr 5 = air__None\n", " attr 6 = air__bot_arm\n", " attr 7 = air__top_arm\n", "\n", "──────────────────────────────────────────────────────────────────────\n", " CHECK 1 — Totality: every boundary face ∈ volume faces\n", " (violation → MFEM abort: (r,c,f) = …)\n", "──────────────────────────────────────────────────────────────────────\n", " ✅ Pass 1 (raw): all boundary faces found among volume faces.\n", " ⓘ Pass 2 (periodic): skipped — no periodic BC.\n", "\n", "──────────────────────────────────────────────────────────────────────\n", " CHECK 2 — Injectivity: each volume face has ≤ 1 boundary element\n", " (violation → \"…cannot have multiple boundary elements!\")\n", "──────────────────────────────────────────────────────────────────────\n", " ✅ Pass 1 (raw): no duplicate boundary faces.\n", " ⓘ Pass 2 (periodic): skipped — no periodic BC.\n", "\n", "──────────────────────────────────────────────────────────────────────\n", " CHECK 3 — Volume manifoldness: each volume face has <= 2 tets\n", " (violation → MFEM: \"Interior triangular face found …\")\n", "──────────────────────────────────────────────────────────────────────\n", " ✅ Pass 1 (raw): no non-manifold volume faces.\n", " ⓘ Pass 2 (periodic): skipped — no periodic BC.\n", "\n", "──────────────────────────────────────────────────────────────────────\n", " ✅ RESULT: Mesh passes both topological checks.\n", "──────────────────────────────────────────────────────────────────────\n" ] } ], "source": [ "# Validate topology before launching Palace.\n", "topology_result = verify(mesh_file, config_file)\n", "topology_ok = print_report(topology_result)\n", "\n", "if not topology_ok:\n", " print(\"Topology validation failed; opening mesh viewer in debug mode (problem faces highlighted).\")\n", " visualise_problems(\n", " mesh_file,\n", " topology_result,\n", " transparent_groups=[\"air__None\"],\n", " exclude_expected_periodic=False,\n", " only_nonmanifold=False,\n", " )\n", " raise RuntimeError(\"Mesh topology validation failed. Fix mesh/topology issues before running Palace.\")" ] }, { "cell_type": "code", "execution_count": 8, "id": "875f4bf6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Running: apptainer exec --pwd /work --bind /home/martin/Desktop/PalaceToolkit/docs/examples:/work /opt/palace/Palace.sif mpirun -np 16 /opt/palace/bin/palace-x86_64.bin /work/dipole_antenna.json\n", "\n", "_____________ _______\n", "_____ __ \\____ __ /____ ____________\n", "____ /_/ / __ ` / / __ ` / ___/ _ \\\n", "___ _____/ /_/ / / /_/ / /__/ ___/\n", " /__/ \\___,__/__/\\___,__/\\_____\\_____/\n", "\n", "\n", "\u001b[38;2;255;255;000m--> Warning!\u001b[0m\n", "Output folder is not empty; program will overwrite content! (postpro/dipole_antenna)\n", "Git changeset ID: v0.14.0-270-g9d6ea72f\n", "Running with 16 MPI processes, 1 OpenMP thread\n", "Device configuration: omp,cpu\n", "Memory configuration: host-std\n", "libCEED backend: /cpu/self/xsmm/blocked\n", "\n", "Removed 204 unmarked domain elements from the mesh\n", "Finished partitioning mesh into 16 subdomains\n", "\n", "Characteristic length and time scales:\n", " L₀ = 1.200e+01 m, t₀ = 4.003e+01 ns\n", "\n", "Mesh curvature order: 1\n", "Mesh bounding box:\n", " (Xmin, Ymin, Zmin) = (-5.987e+00, -5.993e+00, -6.000e+00) m\n", " (Xmax, Ymax, Zmax) = (+6.000e+00, +5.991e+00, +6.000e+00) m\n", "\n", "Parallel Mesh Stats:\n", "\n", " minimum average maximum total\n", " vertices 85 123 181 1974\n", " edges 609 722 856 11560\n", " faces 1056 1136 1202 18176\n", " elements 523 536 552 8587\n", " neighbors 6 8 15\n", "\n", " minimum maximum\n", " h 0.00323682 0.1219\n", " kappa 1.10887 8.33158\n", "\n", "\n", "\u001b[38;2;255;255;000m--> Warning!\u001b[0m\n", "Unknown PEC boundary attributes!\n", "Solver will just ignore them!\n", "Boundary attribute list: 2-3\n", "\n", "\n", "Configuring Robin absorbing BC (order 2) at attributes:\n", " 5-7\n", "\n", "Configuring Robin impedance BC for lumped ports at attributes:\n", " 4: Rs = 2.500e+02 Ω/sq, n = (+0.0,-1.0,+0.0)\n", "\n", "Configuring lumped port circuit properties:\n", " Index = 1: R = 5.000e+01 Ω\n", "\n", "Configuring lumped port excitation source term at attributes:\n", " 4: Index = 1\n", "\n", "Computing adaptive fast frequency response for:\n", "Excitation with index 1 has contributions from:\n", " Lumped port 1\n", "\n", "Beginning PROM construction offline phase:\n", " 21 points for frequency sweep over [5.621e-02, 9.369e-02] GHz\n", "\n", "Assembling system matrices, number of global unknowns:\n", " H1 (p = 2): 13534, ND (p = 2): 59472, RT (p = 2): 80289\n", " Operator assembly level: Partial\n", " Mesh geometries:\n", " Tetrahedron: P = 20, Q = 11 (quadrature order = 4)\n", "\n", "Assembling multigrid hierarchy:\n", " Level 0 (p = 1): 11560 unknowns\n", " Level 1 (p = 2): 59472 unknowns\n", " Level 0 (auxiliary) (p = 1): 1974 unknowns\n", " Level 1 (auxiliary) (p = 2): 13534 unknowns\n", "\n", " Residual norms for GMRES solve\n", " 0 (restart 0) KSP residual norm 1.838179e+01\n", " 1 (restart 0) KSP residual norm 1.820537e+01\n", " 2 (restart 0) KSP residual norm 1.764846e+01\n", " 3 (restart 0) KSP residual norm 1.751396e+01\n", " 4 (restart 0) KSP residual norm 1.729224e+01\n", " 5 (restart 0) KSP residual norm 1.388227e+01\n", " 6 (restart 0) KSP residual norm 1.236513e+01\n", " 7 (restart 0) KSP residual norm 5.806985e+00\n", " 8 (restart 0) KSP residual norm 5.330030e+00\n", " 9 (restart 0) KSP residual norm 5.145725e+00\n", " 10 (restart 0) KSP residual norm 4.988094e+00\n", " 11 (restart 0) KSP residual norm 4.562753e+00\n", " 12 (restart 0) KSP residual norm 4.486284e+00\n", " 13 (restart 0) KSP residual norm 4.104938e+00\n", " 14 (restart 0) KSP residual norm 3.952913e+00\n", " 15 (restart 0) KSP residual norm 3.675543e+00\n", " 16 (restart 0) KSP residual norm 3.627041e+00\n", " 17 (restart 0) KSP residual norm 2.941933e+00\n", " 18 (restart 0) KSP residual norm 2.816217e+00\n", " 19 (restart 0) KSP residual norm 2.475126e+00\n", " 20 (restart 0) KSP residual norm 2.311013e+00\n", " 21 (restart 0) KSP residual norm 2.153472e+00\n", " 22 (restart 0) KSP residual norm 2.099072e+00\n", " 23 (restart 0) KSP residual norm 1.565863e+00\n", " 24 (restart 0) KSP residual norm 1.416813e+00\n", " 25 (restart 0) KSP residual norm 1.253874e+00\n", " 26 (restart 0) KSP residual norm 9.160372e-01\n", " 27 (restart 0) KSP residual norm 8.798550e-01\n", " 28 (restart 0) KSP residual norm 7.653105e-01\n", " 29 (restart 0) KSP residual norm 7.136855e-01\n", " 30 (restart 0) KSP residual norm 6.573851e-01\n", " 31 (restart 0) KSP residual norm 6.182612e-01\n", " 32 (restart 0) KSP residual norm 5.474590e-01\n", " 33 (restart 0) KSP residual norm 5.201839e-01\n", " 34 (restart 0) KSP residual norm 4.165398e-01\n", " 35 (restart 0) KSP residual norm 3.992275e-01\n", " 36 (restart 0) KSP residual norm 3.377647e-01\n", " 37 (restart 0) KSP residual norm 3.189571e-01\n", " 38 (restart 0) KSP residual norm 2.822967e-01\n", " 39 (restart 0) KSP residual norm 2.642686e-01\n", " 40 (restart 0) KSP residual norm 2.403931e-01\n", " 41 (restart 0) KSP residual norm 2.232835e-01\n", " 42 (restart 0) KSP residual norm 2.035456e-01\n", " 43 (restart 0) KSP residual norm 1.844014e-01\n", " 44 (restart 0) KSP residual norm 1.682451e-01\n", " 45 (restart 0) KSP residual norm 1.538741e-01\n", " 46 (restart 0) KSP residual norm 1.393227e-01\n", " 47 (restart 0) KSP residual norm 1.263362e-01\n", " 48 (restart 0) KSP residual norm 1.093383e-01\n", " 49 (restart 0) KSP residual norm 1.028515e-01\n", " 50 (restart 0) KSP residual norm 9.098831e-02\n", " 51 (restart 0) KSP residual norm 8.310692e-02\n", " 52 (restart 0) KSP residual norm 7.559705e-02\n", " 53 (restart 0) KSP residual norm 6.465825e-02\n", " 54 (restart 0) KSP residual norm 5.986551e-02\n", " 55 (restart 0) KSP residual norm 5.031678e-02\n", " 56 (restart 0) KSP residual norm 4.446684e-02\n", " 57 (restart 0) KSP residual norm 3.696589e-02\n", " 58 (restart 0) KSP residual norm 3.335654e-02\n", " 59 (restart 0) KSP residual norm 2.982424e-02\n", " 60 (restart 0) KSP residual norm 2.674390e-02\n", " 61 (restart 0) KSP residual norm 2.397422e-02\n", " 62 (restart 0) KSP residual norm 2.230864e-02\n", " 63 (restart 0) KSP residual norm 2.007414e-02\n", " 64 (restart 0) KSP residual norm 1.720798e-02\n", " 65 (restart 0) KSP residual norm 1.531096e-02\n", " 66 (restart 0) KSP residual norm 1.265109e-02\n", " 67 (restart 0) KSP residual norm 1.119924e-02\n", " 68 (restart 0) KSP residual norm 9.104768e-03\n", " 69 (restart 0) KSP residual norm 8.020553e-03\n", " 70 (restart 0) KSP residual norm 6.852569e-03\n", " 71 (restart 0) KSP residual norm 6.038007e-03\n", " 72 (restart 0) KSP residual norm 5.150454e-03\n", " 73 (restart 0) KSP residual norm 4.611824e-03\n", " 74 (restart 0) KSP residual norm 4.163393e-03\n", " 75 (restart 0) KSP residual norm 3.677273e-03\n", " 76 (restart 0) KSP residual norm 3.272737e-03\n", " 77 (restart 0) KSP residual norm 2.833010e-03\n", " 78 (restart 0) KSP residual norm 2.400227e-03\n", " 79 (restart 0) KSP residual norm 2.054208e-03\n", " 80 (restart 0) KSP residual norm 1.797927e-03\n", " 81 (restart 0) KSP residual norm 1.544394e-03\n", " 82 (restart 0) KSP residual norm 1.331341e-03\n", " 83 (restart 0) KSP residual norm 1.110058e-03\n", " 84 (restart 0) KSP residual norm 9.950468e-04\n", " 85 (restart 0) KSP residual norm 8.452068e-04\n", " 86 (restart 0) KSP residual norm 7.531709e-04\n", " 87 (restart 0) KSP residual norm 6.096358e-04\n", " 88 (restart 0) KSP residual norm 5.182587e-04\n", " 89 (restart 0) KSP residual norm 4.009794e-04\n", " 90 (restart 0) KSP residual norm 3.296973e-04\n", " 91 (restart 0) KSP residual norm 2.712081e-04\n", " 92 (restart 0) KSP residual norm 2.267449e-04\n", " 93 (restart 0) KSP residual norm 1.936247e-04\n", " 94 (restart 0) KSP residual norm 1.681285e-04\n", " 95 (restart 0) KSP residual norm 1.374392e-04\n", " 96 (restart 0) KSP residual norm 1.086911e-04\n", " 97 (restart 0) KSP residual norm 8.943700e-05\n", " 98 (restart 0) KSP residual norm 6.972367e-05\n", " 99 (restart 0) KSP residual norm 5.656560e-05\n", "100 (restart 0) KSP residual norm 4.626108e-05\n", "101 (restart 0) KSP residual norm 4.026367e-05\n", "102 (restart 0) KSP residual norm 3.483768e-05\n", "103 (restart 0) KSP residual norm 2.826949e-05\n", "104 (restart 0) KSP residual norm 2.334312e-05\n", "105 (restart 0) KSP residual norm 1.821356e-05\n", "106 (restart 0) KSP residual norm 1.553565e-05\n", "107 (restart 0) KSP residual norm 1.270711e-05\n", "108 (restart 0) KSP residual norm 1.054156e-05\n", "109 (restart 0) KSP residual norm 8.606573e-06\n", "110 (restart 0) KSP residual norm 7.521676e-06\n", "111 (restart 0) KSP residual norm 6.601969e-06\n", "112 (restart 0) KSP residual norm 5.440069e-06\n", "113 (restart 0) KSP residual norm 4.396418e-06\n", "114 (restart 0) KSP residual norm 3.416653e-06\n", "115 (restart 0) KSP residual norm 2.733806e-06\n", "116 (restart 0) KSP residual norm 2.125440e-06\n", "117 (restart 0) KSP residual norm 1.688447e-06\n", "118 (restart 0) KSP residual norm 1.403590e-06\n", "119 (restart 0) KSP residual norm 1.230442e-06\n", "120 (restart 0) KSP residual norm 1.014445e-06\n", "121 (restart 0) KSP residual norm 8.409095e-07\n", "122 (restart 0) KSP residual norm 6.633951e-07\n", "123 (restart 0) KSP residual norm 5.366251e-07\n", "124 (restart 0) KSP residual norm 4.070587e-07\n", "125 (restart 0) KSP residual norm 3.184378e-07\n", "126 (restart 0) KSP residual norm 2.486929e-07\n", "127 (restart 0) KSP residual norm 2.008116e-07\n", "128 (restart 0) KSP residual norm 1.751650e-07\n", "GMRES solver converged in 128 iterations (avg. reduction factor: 8.656e-01)\n", " Field energy E (8.510e-01 J) + H (7.806e-02 J) = 9.290e-01 J\n", "\n", " Residual norms for GMRES solve\n", " 0 (restart 0) KSP residual norm 6.910536e+01\n", " 1 (restart 0) KSP residual norm 5.140182e+01\n", " 2 (restart 0) KSP residual norm 5.079719e+01\n", " 3 (restart 0) KSP residual norm 3.876424e+01\n", " 4 (restart 0) KSP residual norm 3.563005e+01\n", " 5 (restart 0) KSP residual norm 1.361241e+01\n", " 6 (restart 0) KSP residual norm 1.179929e+01\n", " 7 (restart 0) KSP residual norm 1.099297e+01\n", " 8 (restart 0) KSP residual norm 8.709881e+00\n", " 9 (restart 0) KSP residual norm 8.017954e+00\n", " 10 (restart 0) KSP residual norm 5.037669e+00\n", " 11 (restart 0) KSP residual norm 4.771643e+00\n", " 12 (restart 0) KSP residual norm 4.120286e+00\n", " 13 (restart 0) KSP residual norm 3.539946e+00\n", " 14 (restart 0) KSP residual norm 3.262797e+00\n", " 15 (restart 0) KSP residual norm 2.456810e+00\n", " 16 (restart 0) KSP residual norm 2.070571e+00\n", " 17 (restart 0) KSP residual norm 1.789283e+00\n", " 18 (restart 0) KSP residual norm 1.540515e+00\n", " 19 (restart 0) KSP residual norm 1.176383e+00\n", " 20 (restart 0) KSP residual norm 1.074127e+00\n", " 21 (restart 0) KSP residual norm 8.702815e-01\n", " 22 (restart 0) KSP residual norm 7.871296e-01\n", " 23 (restart 0) KSP residual norm 6.790947e-01\n", " 24 (restart 0) KSP residual norm 6.552361e-01\n", " 25 (restart 0) KSP residual norm 5.891942e-01\n", " 26 (restart 0) KSP residual norm 5.117341e-01\n", " 27 (restart 0) KSP residual norm 4.644589e-01\n", " 28 (restart 0) KSP residual norm 4.075516e-01\n", " 29 (restart 0) KSP residual norm 3.523857e-01\n", " 30 (restart 0) KSP residual norm 3.296527e-01\n", " 31 (restart 0) KSP residual norm 2.827174e-01\n", " 32 (restart 0) KSP residual norm 2.629840e-01\n", " 33 (restart 0) KSP residual norm 2.283130e-01\n", " 34 (restart 0) KSP residual norm 2.030955e-01\n", " 35 (restart 0) KSP residual norm 1.848945e-01\n", " 36 (restart 0) KSP residual norm 1.661262e-01\n", " 37 (restart 0) KSP residual norm 1.532206e-01\n", " 38 (restart 0) KSP residual norm 1.416329e-01\n", " 39 (restart 0) KSP residual norm 1.276299e-01\n", " 40 (restart 0) KSP residual norm 1.172478e-01\n", " 41 (restart 0) KSP residual norm 1.001224e-01\n", " 42 (restart 0) KSP residual norm 9.249619e-02\n", " 43 (restart 0) KSP residual norm 7.870383e-02\n", " 44 (restart 0) KSP residual norm 6.918394e-02\n", " 45 (restart 0) KSP residual norm 6.437764e-02\n", " 46 (restart 0) KSP residual norm 5.858565e-02\n", " 47 (restart 0) KSP residual norm 5.421839e-02\n", " 48 (restart 0) KSP residual norm 4.864810e-02\n", " 49 (restart 0) KSP residual norm 4.428938e-02\n", " 50 (restart 0) KSP residual norm 4.029964e-02\n", " 51 (restart 0) KSP residual norm 3.454573e-02\n", " 52 (restart 0) KSP residual norm 3.046239e-02\n", " 53 (restart 0) KSP residual norm 2.777065e-02\n", " 54 (restart 0) KSP residual norm 2.378382e-02\n", " 55 (restart 0) KSP residual norm 2.194917e-02\n", " 56 (restart 0) KSP residual norm 1.884919e-02\n", " 57 (restart 0) KSP residual norm 1.690924e-02\n", " 58 (restart 0) KSP residual norm 1.566433e-02\n", " 59 (restart 0) KSP residual norm 1.395510e-02\n", " 60 (restart 0) KSP residual norm 1.274711e-02\n", " 61 (restart 0) KSP residual norm 1.098624e-02\n", " 62 (restart 0) KSP residual norm 9.617125e-03\n", " 63 (restart 0) KSP residual norm 8.715797e-03\n", " 64 (restart 0) KSP residual norm 7.656064e-03\n", " 65 (restart 0) KSP residual norm 6.836878e-03\n", " 66 (restart 0) KSP residual norm 5.929278e-03\n", " 67 (restart 0) KSP residual norm 5.191764e-03\n", " 68 (restart 0) KSP residual norm 4.763205e-03\n", " 69 (restart 0) KSP residual norm 4.279301e-03\n", " 70 (restart 0) KSP residual norm 3.840888e-03\n", " 71 (restart 0) KSP residual norm 3.429782e-03\n", " 72 (restart 0) KSP residual norm 2.942724e-03\n", " 73 (restart 0) KSP residual norm 2.651897e-03\n", " 74 (restart 0) KSP residual norm 2.352117e-03\n", " 75 (restart 0) KSP residual norm 2.131487e-03\n", " 76 (restart 0) KSP residual norm 1.954341e-03\n", " 77 (restart 0) KSP residual norm 1.712945e-03\n", " 78 (restart 0) KSP residual norm 1.541599e-03\n", " 79 (restart 0) KSP residual norm 1.418262e-03\n", " 80 (restart 0) KSP residual norm 1.253822e-03\n", " 81 (restart 0) KSP residual norm 1.084947e-03\n", " 82 (restart 0) KSP residual norm 9.694829e-04\n", " 83 (restart 0) KSP residual norm 8.795280e-04\n", " 84 (restart 0) KSP residual norm 7.791180e-04\n", " 85 (restart 0) KSP residual norm 6.810674e-04\n", " 86 (restart 0) KSP residual norm 6.009069e-04\n", " 87 (restart 0) KSP residual norm 5.489473e-04\n", " 88 (restart 0) KSP residual norm 4.871449e-04\n", " 89 (restart 0) KSP residual norm 4.171595e-04\n", " 90 (restart 0) KSP residual norm 3.710176e-04\n", " 91 (restart 0) KSP residual norm 3.329486e-04\n", " 92 (restart 0) KSP residual norm 2.985300e-04\n", " 93 (restart 0) KSP residual norm 2.604445e-04\n", " 94 (restart 0) KSP residual norm 2.260449e-04\n", " 95 (restart 0) KSP residual norm 1.865576e-04\n", " 96 (restart 0) KSP residual norm 1.621080e-04\n", " 97 (restart 0) KSP residual norm 1.443631e-04\n", " 98 (restart 0) KSP residual norm 1.237904e-04\n", " 99 (restart 0) KSP residual norm 1.074157e-04\n", "100 (restart 0) KSP residual norm 8.825905e-05\n", "101 (restart 0) KSP residual norm 7.540290e-05\n", "102 (restart 0) KSP residual norm 6.448310e-05\n", "103 (restart 0) KSP residual norm 5.587905e-05\n", "104 (restart 0) KSP residual norm 4.873683e-05\n", "105 (restart 0) KSP residual norm 4.088910e-05\n", "106 (restart 0) KSP residual norm 3.541985e-05\n", "107 (restart 0) KSP residual norm 3.004047e-05\n", "108 (restart 0) KSP residual norm 2.531954e-05\n", "109 (restart 0) KSP residual norm 2.195109e-05\n", "110 (restart 0) KSP residual norm 1.897932e-05\n", "111 (restart 0) KSP residual norm 1.656845e-05\n", "112 (restart 0) KSP residual norm 1.418329e-05\n", "113 (restart 0) KSP residual norm 1.229588e-05\n", "114 (restart 0) KSP residual norm 1.067992e-05\n", "115 (restart 0) KSP residual norm 9.272476e-06\n", "116 (restart 0) KSP residual norm 8.044695e-06\n", "117 (restart 0) KSP residual norm 6.874367e-06\n", "118 (restart 0) KSP residual norm 5.659595e-06\n", "119 (restart 0) KSP residual norm 4.832767e-06\n", "120 (restart 0) KSP residual norm 3.956145e-06\n", "121 (restart 0) KSP residual norm 3.254175e-06\n", "122 (restart 0) KSP residual norm 2.722758e-06\n", "123 (restart 0) KSP residual norm 2.273313e-06\n", "124 (restart 0) KSP residual norm 1.938301e-06\n", "125 (restart 0) KSP residual norm 1.617064e-06\n", "126 (restart 0) KSP residual norm 1.342308e-06\n", "127 (restart 0) KSP residual norm 1.127054e-06\n", "128 (restart 0) KSP residual norm 9.265384e-07\n", "129 (restart 0) KSP residual norm 7.502585e-07\n", "130 (restart 0) KSP residual norm 6.246350e-07\n", "GMRES solver converged in 130 iterations (avg. reduction factor: 8.672e-01)\n", " Field energy E (6.429e-01 J) + H (9.762e-02 J) = 7.405e-01 J\n", "\n", " Residual norms for GMRES solve\n", " 0 (restart 0) KSP residual norm 3.349400e+01\n", " 1 (restart 0) KSP residual norm 3.339599e+01\n", " 2 (restart 0) KSP residual norm 3.331788e+01\n", " 3 (restart 0) KSP residual norm 1.382389e+01\n", " 4 (restart 0) KSP residual norm 1.347580e+01\n", " 5 (restart 0) KSP residual norm 1.221700e+01\n", " 6 (restart 0) KSP residual norm 1.082680e+01\n", " 7 (restart 0) KSP residual norm 1.022810e+01\n", " 8 (restart 0) KSP residual norm 1.019635e+01\n", " 9 (restart 0) KSP residual norm 8.598836e+00\n", " 10 (restart 0) KSP residual norm 8.507451e+00\n", " 11 (restart 0) KSP residual norm 7.712787e+00\n", " 12 (restart 0) KSP residual norm 7.415415e+00\n", " 13 (restart 0) KSP residual norm 7.176818e+00\n", " 14 (restart 0) KSP residual norm 7.011953e+00\n", " 15 (restart 0) KSP residual norm 6.024465e+00\n", " 16 (restart 0) KSP residual norm 5.877763e+00\n", " 17 (restart 0) KSP residual norm 5.474733e+00\n", " 18 (restart 0) KSP residual norm 4.630565e+00\n", " 19 (restart 0) KSP residual norm 3.634509e+00\n", " 20 (restart 0) KSP residual norm 3.514568e+00\n", " 21 (restart 0) KSP residual norm 2.798046e+00\n", " 22 (restart 0) KSP residual norm 2.708525e+00\n", " 23 (restart 0) KSP residual norm 2.604395e+00\n", " 24 (restart 0) KSP residual norm 2.347166e+00\n", " 25 (restart 0) KSP residual norm 2.300784e+00\n", " 26 (restart 0) KSP residual norm 2.074013e+00\n", " 27 (restart 0) KSP residual norm 1.846770e+00\n", " 28 (restart 0) KSP residual norm 1.791694e+00\n", " 29 (restart 0) KSP residual norm 1.545316e+00\n", " 30 (restart 0) KSP residual norm 1.525001e+00\n", " 31 (restart 0) KSP residual norm 1.368470e+00\n", " 32 (restart 0) KSP residual norm 1.261780e+00\n", " 33 (restart 0) KSP residual norm 1.230083e+00\n", " 34 (restart 0) KSP residual norm 1.159990e+00\n", " 35 (restart 0) KSP residual norm 1.086427e+00\n", " 36 (restart 0) KSP residual norm 1.053329e+00\n", " 37 (restart 0) KSP residual norm 9.459616e-01\n", " 38 (restart 0) KSP residual norm 9.315145e-01\n", " 39 (restart 0) KSP residual norm 8.197189e-01\n", " 40 (restart 0) KSP residual norm 6.798738e-01\n", " 41 (restart 0) KSP residual norm 6.559715e-01\n", " 42 (restart 0) KSP residual norm 6.112439e-01\n", " 43 (restart 0) KSP residual norm 5.553958e-01\n", " 44 (restart 0) KSP residual norm 5.191988e-01\n", " 45 (restart 0) KSP residual norm 4.636649e-01\n", " 46 (restart 0) KSP residual norm 4.131939e-01\n", " 47 (restart 0) KSP residual norm 3.974270e-01\n", " 48 (restart 0) KSP residual norm 3.580844e-01\n", " 49 (restart 0) KSP residual norm 3.408561e-01\n", " 50 (restart 0) KSP residual norm 3.153162e-01\n", " 51 (restart 0) KSP residual norm 2.890354e-01\n", " 52 (restart 0) KSP residual norm 2.699729e-01\n", " 53 (restart 0) KSP residual norm 2.431887e-01\n", " 54 (restart 0) KSP residual norm 2.210198e-01\n", " 55 (restart 0) KSP residual norm 1.941405e-01\n", " 56 (restart 0) KSP residual norm 1.855355e-01\n", " 57 (restart 0) KSP residual norm 1.647163e-01\n", " 58 (restart 0) KSP residual norm 1.501964e-01\n", " 59 (restart 0) KSP residual norm 1.419572e-01\n", " 60 (restart 0) KSP residual norm 1.303772e-01\n", " 61 (restart 0) KSP residual norm 1.198298e-01\n", " 62 (restart 0) KSP residual norm 1.127472e-01\n", " 63 (restart 0) KSP residual norm 1.038044e-01\n", " 64 (restart 0) KSP residual norm 9.477485e-02\n", " 65 (restart 0) KSP residual norm 8.890639e-02\n", " 66 (restart 0) KSP residual norm 7.894009e-02\n", " 67 (restart 0) KSP residual norm 7.398431e-02\n", " 68 (restart 0) KSP residual norm 6.820377e-02\n", " 69 (restart 0) KSP residual norm 6.358088e-02\n", " 70 (restart 0) KSP residual norm 5.513398e-02\n", " 71 (restart 0) KSP residual norm 4.923293e-02\n", " 72 (restart 0) KSP residual norm 4.551475e-02\n", " 73 (restart 0) KSP residual norm 4.115255e-02\n", " 74 (restart 0) KSP residual norm 3.814463e-02\n", " 75 (restart 0) KSP residual norm 3.434777e-02\n", " 76 (restart 0) KSP residual norm 3.209662e-02\n", " 77 (restart 0) KSP residual norm 2.879499e-02\n", " 78 (restart 0) KSP residual norm 2.661116e-02\n", " 79 (restart 0) KSP residual norm 2.445553e-02\n", " 80 (restart 0) KSP residual norm 2.162525e-02\n", " 81 (restart 0) KSP residual norm 2.001836e-02\n", " 82 (restart 0) KSP residual norm 1.777105e-02\n", " 83 (restart 0) KSP residual norm 1.630438e-02\n", " 84 (restart 0) KSP residual norm 1.469889e-02\n", " 85 (restart 0) KSP residual norm 1.339136e-02\n", " 86 (restart 0) KSP residual norm 1.183136e-02\n", " 87 (restart 0) KSP residual norm 1.016261e-02\n", " 88 (restart 0) KSP residual norm 8.907724e-03\n", " 89 (restart 0) KSP residual norm 7.949844e-03\n", " 90 (restart 0) KSP residual norm 7.165017e-03\n", " 91 (restart 0) KSP residual norm 6.508424e-03\n", " 92 (restart 0) KSP residual norm 5.620344e-03\n", " 93 (restart 0) KSP residual norm 4.941302e-03\n", " 94 (restart 0) KSP residual norm 4.388314e-03\n", " 95 (restart 0) KSP residual norm 3.838074e-03\n", " 96 (restart 0) KSP residual norm 3.485562e-03\n", " 97 (restart 0) KSP residual norm 3.090671e-03\n", " 98 (restart 0) KSP residual norm 2.720510e-03\n", " 99 (restart 0) KSP residual norm 2.402237e-03\n", "100 (restart 0) KSP residual norm 2.078534e-03\n", "101 (restart 0) KSP residual norm 1.787341e-03\n", "102 (restart 0) KSP residual norm 1.558079e-03\n", "103 (restart 0) KSP residual norm 1.381587e-03\n", "104 (restart 0) KSP residual norm 1.180406e-03\n", "105 (restart 0) KSP residual norm 9.804168e-04\n", "106 (restart 0) KSP residual norm 7.973739e-04\n", "107 (restart 0) KSP residual norm 6.484130e-04\n", "108 (restart 0) KSP residual norm 5.210813e-04\n", "109 (restart 0) KSP residual norm 4.234887e-04\n", "110 (restart 0) KSP residual norm 3.562406e-04\n", "111 (restart 0) KSP residual norm 3.046667e-04\n", "112 (restart 0) KSP residual norm 2.665681e-04\n", "113 (restart 0) KSP residual norm 2.284098e-04\n", "114 (restart 0) KSP residual norm 1.935454e-04\n", "115 (restart 0) KSP residual norm 1.638144e-04\n", "116 (restart 0) KSP residual norm 1.450462e-04\n", "117 (restart 0) KSP residual norm 1.255680e-04\n", "118 (restart 0) KSP residual norm 1.051836e-04\n", "119 (restart 0) KSP residual norm 8.399552e-05\n", "120 (restart 0) KSP residual norm 6.732251e-05\n", "121 (restart 0) KSP residual norm 5.597541e-05\n", "122 (restart 0) KSP residual norm 4.656429e-05\n", "123 (restart 0) KSP residual norm 3.974880e-05\n", "124 (restart 0) KSP residual norm 3.263035e-05\n", "125 (restart 0) KSP residual norm 2.709573e-05\n", "126 (restart 0) KSP residual norm 2.188947e-05\n", "127 (restart 0) KSP residual norm 1.737277e-05\n", "128 (restart 0) KSP residual norm 1.424793e-05\n", "129 (restart 0) KSP residual norm 1.212999e-05\n", "130 (restart 0) KSP residual norm 1.027701e-05\n", "131 (restart 0) KSP residual norm 8.532553e-06\n", "132 (restart 0) KSP residual norm 6.983835e-06\n", "133 (restart 0) KSP residual norm 5.776562e-06\n", "134 (restart 0) KSP residual norm 4.880947e-06\n", "135 (restart 0) KSP residual norm 4.040910e-06\n", "136 (restart 0) KSP residual norm 3.331757e-06\n", "137 (restart 0) KSP residual norm 2.773195e-06\n", "138 (restart 0) KSP residual norm 2.288515e-06\n", "139 (restart 0) KSP residual norm 1.906338e-06\n", "140 (restart 0) KSP residual norm 1.594411e-06\n", "141 (restart 0) KSP residual norm 1.339863e-06\n", "142 (restart 0) KSP residual norm 1.133978e-06\n", "143 (restart 0) KSP residual norm 9.348951e-07\n", "144 (restart 0) KSP residual norm 7.776251e-07\n", "145 (restart 0) KSP residual norm 6.358495e-07\n", "146 (restart 0) KSP residual norm 5.235310e-07\n", "147 (restart 0) KSP residual norm 4.397862e-07\n", "148 (restart 0) KSP residual norm 3.741359e-07\n", "149 (restart 0) KSP residual norm 3.087886e-07\n", "GMRES solver converged in 149 iterations (avg. reduction factor: 8.832e-01)\n", "\n", "Greedy iteration 1 (n = 4): ω* = 7.666e-02 GHz (1.928e+01), error = 1.807e-01\n", " Field energy E (7.247e-01 J) + H (9.030e-02 J) = 8.150e-01 J\n", "\n", " Residual norms for GMRES solve\n", " 0 (restart 0) KSP residual norm 4.201484e+01\n", " 1 (restart 0) KSP residual norm 3.699726e+01\n", " 2 (restart 0) KSP residual norm 2.479330e+01\n", " 3 (restart 0) KSP residual norm 1.978674e+01\n", " 4 (restart 0) KSP residual norm 1.756410e+01\n", " 5 (restart 0) KSP residual norm 1.146205e+01\n", " 6 (restart 0) KSP residual norm 1.114473e+01\n", " 7 (restart 0) KSP residual norm 1.024453e+01\n", " 8 (restart 0) KSP residual norm 1.006097e+01\n", " 9 (restart 0) KSP residual norm 7.483316e+00\n", " 10 (restart 0) KSP residual norm 7.370953e+00\n", " 11 (restart 0) KSP residual norm 6.756726e+00\n", " 12 (restart 0) KSP residual norm 6.433169e+00\n", " 13 (restart 0) KSP residual norm 6.371254e+00\n", " 14 (restart 0) KSP residual norm 5.770779e+00\n", " 15 (restart 0) KSP residual norm 5.752697e+00\n", " 16 (restart 0) KSP residual norm 5.007068e+00\n", " 17 (restart 0) KSP residual norm 4.636729e+00\n", " 18 (restart 0) KSP residual norm 4.289847e+00\n", " 19 (restart 0) KSP residual norm 4.088856e+00\n", " 20 (restart 0) KSP residual norm 3.928459e+00\n", " 21 (restart 0) KSP residual norm 3.632440e+00\n", " 22 (restart 0) KSP residual norm 3.608224e+00\n", " 23 (restart 0) KSP residual norm 3.429361e+00\n", " 24 (restart 0) KSP residual norm 3.365778e+00\n", " 25 (restart 0) KSP residual norm 3.306644e+00\n", " 26 (restart 0) KSP residual norm 3.122540e+00\n", " 27 (restart 0) KSP residual norm 3.064817e+00\n", " 28 (restart 0) KSP residual norm 2.919740e+00\n", " 29 (restart 0) KSP residual norm 2.724568e+00\n", " 30 (restart 0) KSP residual norm 2.659002e+00\n", " 31 (restart 0) KSP residual norm 2.379714e+00\n", " 32 (restart 0) KSP residual norm 2.316860e+00\n", " 33 (restart 0) KSP residual norm 2.145185e+00\n", " 34 (restart 0) KSP residual norm 2.034437e+00\n", " 35 (restart 0) KSP residual norm 1.960322e+00\n", " 36 (restart 0) KSP residual norm 1.766679e+00\n", " 37 (restart 0) KSP residual norm 1.720724e+00\n", " 38 (restart 0) KSP residual norm 1.526005e+00\n", " 39 (restart 0) KSP residual norm 1.341460e+00\n", " 40 (restart 0) KSP residual norm 1.321533e+00\n", " 41 (restart 0) KSP residual norm 1.027011e+00\n", " 42 (restart 0) KSP residual norm 9.981900e-01\n", " 43 (restart 0) KSP residual norm 8.371891e-01\n", " 44 (restart 0) KSP residual norm 7.741265e-01\n", " 45 (restart 0) KSP residual norm 7.259464e-01\n", " 46 (restart 0) KSP residual norm 6.237500e-01\n", " 47 (restart 0) KSP residual norm 6.017219e-01\n", " 48 (restart 0) KSP residual norm 5.079543e-01\n", " 49 (restart 0) KSP residual norm 4.861458e-01\n", " 50 (restart 0) KSP residual norm 4.337090e-01\n", " 51 (restart 0) KSP residual norm 3.896931e-01\n", " 52 (restart 0) KSP residual norm 3.533626e-01\n", " 53 (restart 0) KSP residual norm 3.193116e-01\n", " 54 (restart 0) KSP residual norm 2.925875e-01\n", " 55 (restart 0) KSP residual norm 2.692448e-01\n", " 56 (restart 0) KSP residual norm 2.486749e-01\n", " 57 (restart 0) KSP residual norm 2.284391e-01\n", " 58 (restart 0) KSP residual norm 2.114445e-01\n", " 59 (restart 0) KSP residual norm 1.903558e-01\n", " 60 (restart 0) KSP residual norm 1.791187e-01\n", " 61 (restart 0) KSP residual norm 1.568913e-01\n", " 62 (restart 0) KSP residual norm 1.488817e-01\n", " 63 (restart 0) KSP residual norm 1.308252e-01\n", " 64 (restart 0) KSP residual norm 1.237357e-01\n", " 65 (restart 0) KSP residual norm 1.098430e-01\n", " 66 (restart 0) KSP residual norm 1.011944e-01\n", " 67 (restart 0) KSP residual norm 9.240204e-02\n", " 68 (restart 0) KSP residual norm 7.853316e-02\n", " 69 (restart 0) KSP residual norm 7.343612e-02\n", " 70 (restart 0) KSP residual norm 5.878309e-02\n", " 71 (restart 0) KSP residual norm 5.418723e-02\n", " 72 (restart 0) KSP residual norm 4.712241e-02\n", " 73 (restart 0) KSP residual norm 4.292619e-02\n", " 74 (restart 0) KSP residual norm 3.713822e-02\n", " 75 (restart 0) KSP residual norm 3.221422e-02\n", " 76 (restart 0) KSP residual norm 2.643603e-02\n", " 77 (restart 0) KSP residual norm 2.344671e-02\n", " 78 (restart 0) KSP residual norm 2.164996e-02\n", " 79 (restart 0) KSP residual norm 1.970595e-02\n", " 80 (restart 0) KSP residual norm 1.718498e-02\n", " 81 (restart 0) KSP residual norm 1.461740e-02\n", " 82 (restart 0) KSP residual norm 1.296993e-02\n", " 83 (restart 0) KSP residual norm 1.121418e-02\n", " 84 (restart 0) KSP residual norm 9.927232e-03\n", " 85 (restart 0) KSP residual norm 9.008599e-03\n", " 86 (restart 0) KSP residual norm 7.513208e-03\n", " 87 (restart 0) KSP residual norm 6.588333e-03\n", " 88 (restart 0) KSP residual norm 5.677089e-03\n", " 89 (restart 0) KSP residual norm 5.061547e-03\n", " 90 (restart 0) KSP residual norm 4.623938e-03\n", " 91 (restart 0) KSP residual norm 4.037335e-03\n", " 92 (restart 0) KSP residual norm 3.489319e-03\n", " 93 (restart 0) KSP residual norm 2.876739e-03\n", " 94 (restart 0) KSP residual norm 2.537234e-03\n", " 95 (restart 0) KSP residual norm 2.287873e-03\n", " 96 (restart 0) KSP residual norm 2.072829e-03\n", " 97 (restart 0) KSP residual norm 1.753329e-03\n", " 98 (restart 0) KSP residual norm 1.540126e-03\n", " 99 (restart 0) KSP residual norm 1.330358e-03\n", "100 (restart 0) KSP residual norm 1.206118e-03\n", "101 (restart 0) KSP residual norm 1.093429e-03\n", "102 (restart 0) KSP residual norm 9.551687e-04\n", "103 (restart 0) KSP residual norm 8.326909e-04\n", "104 (restart 0) KSP residual norm 7.239925e-04\n", "105 (restart 0) KSP residual norm 6.478568e-04\n", "106 (restart 0) KSP residual norm 5.835552e-04\n", "107 (restart 0) KSP residual norm 5.188423e-04\n", "108 (restart 0) KSP residual norm 4.379782e-04\n", "109 (restart 0) KSP residual norm 3.629590e-04\n", "110 (restart 0) KSP residual norm 3.116633e-04\n", "111 (restart 0) KSP residual norm 2.759593e-04\n", "112 (restart 0) KSP residual norm 2.430551e-04\n", "113 (restart 0) KSP residual norm 2.005860e-04\n", "114 (restart 0) KSP residual norm 1.599661e-04\n", "115 (restart 0) KSP residual norm 1.257960e-04\n", "116 (restart 0) KSP residual norm 1.015883e-04\n", "117 (restart 0) KSP residual norm 8.714039e-05\n", "118 (restart 0) KSP residual norm 7.794489e-05\n", "119 (restart 0) KSP residual norm 6.627367e-05\n", "120 (restart 0) KSP residual norm 5.348801e-05\n", "121 (restart 0) KSP residual norm 4.438590e-05\n", "122 (restart 0) KSP residual norm 3.652341e-05\n", "123 (restart 0) KSP residual norm 3.132649e-05\n", "124 (restart 0) KSP residual norm 2.551602e-05\n", "125 (restart 0) KSP residual norm 2.170744e-05\n", "126 (restart 0) KSP residual norm 1.708523e-05\n", "127 (restart 0) KSP residual norm 1.403872e-05\n", "128 (restart 0) KSP residual norm 1.104181e-05\n", "129 (restart 0) KSP residual norm 9.319661e-06\n", "130 (restart 0) KSP residual norm 7.628311e-06\n", "131 (restart 0) KSP residual norm 6.452134e-06\n", "132 (restart 0) KSP residual norm 5.026538e-06\n", "133 (restart 0) KSP residual norm 4.120557e-06\n", "134 (restart 0) KSP residual norm 3.259806e-06\n", "135 (restart 0) KSP residual norm 2.662429e-06\n", "136 (restart 0) KSP residual norm 2.101417e-06\n", "137 (restart 0) KSP residual norm 1.750245e-06\n", "138 (restart 0) KSP residual norm 1.414542e-06\n", "139 (restart 0) KSP residual norm 1.144148e-06\n", "140 (restart 0) KSP residual norm 8.743341e-07\n", "141 (restart 0) KSP residual norm 7.071765e-07\n", "142 (restart 0) KSP residual norm 5.551381e-07\n", "143 (restart 0) KSP residual norm 4.571115e-07\n", "144 (restart 0) KSP residual norm 3.601505e-07\n", "GMRES solver converged in 144 iterations (avg. reduction factor: 8.790e-01)\n", "\n", "Greedy iteration 2 (n = 6): ω* = 6.589e-02 GHz (1.657e+01), error = 3.881e-02\n", " Field energy E (7.873e-01 J) + H (8.491e-02 J) = 8.722e-01 J\n", "\n", " Residual norms for GMRES solve\n", " 0 (restart 0) KSP residual norm 2.844314e+01\n", " 1 (restart 0) KSP residual norm 2.644548e+01\n", " 2 (restart 0) KSP residual norm 2.275776e+01\n", " 3 (restart 0) KSP residual norm 1.769332e+01\n", " 4 (restart 0) KSP residual norm 1.765085e+01\n", " 5 (restart 0) KSP residual norm 1.594473e+01\n", " 6 (restart 0) KSP residual norm 1.479618e+01\n", " 7 (restart 0) KSP residual norm 1.457876e+01\n", " 8 (restart 0) KSP residual norm 1.095591e+01\n", " 9 (restart 0) KSP residual norm 9.658261e+00\n", " 10 (restart 0) KSP residual norm 7.274301e+00\n", " 11 (restart 0) KSP residual norm 7.195220e+00\n", " 12 (restart 0) KSP residual norm 5.954279e+00\n", " 13 (restart 0) KSP residual norm 5.816909e+00\n", " 14 (restart 0) KSP residual norm 4.951125e+00\n", " 15 (restart 0) KSP residual norm 4.816588e+00\n", " 16 (restart 0) KSP residual norm 4.464790e+00\n", " 17 (restart 0) KSP residual norm 4.182610e+00\n", " 18 (restart 0) KSP residual norm 3.843518e+00\n", " 19 (restart 0) KSP residual norm 3.677767e+00\n", " 20 (restart 0) KSP residual norm 3.288194e+00\n", " 21 (restart 0) KSP residual norm 3.217689e+00\n", " 22 (restart 0) KSP residual norm 2.837661e+00\n", " 23 (restart 0) KSP residual norm 2.723380e+00\n", " 24 (restart 0) KSP residual norm 2.522806e+00\n", " 25 (restart 0) KSP residual norm 2.370371e+00\n", " 26 (restart 0) KSP residual norm 2.214101e+00\n", " 27 (restart 0) KSP residual norm 2.107167e+00\n", " 28 (restart 0) KSP residual norm 1.912278e+00\n", " 29 (restart 0) KSP residual norm 1.819147e+00\n", " 30 (restart 0) KSP residual norm 1.569321e+00\n", " 31 (restart 0) KSP residual norm 1.504773e+00\n", " 32 (restart 0) KSP residual norm 1.344828e+00\n", " 33 (restart 0) KSP residual norm 1.291095e+00\n", " 34 (restart 0) KSP residual norm 1.213578e+00\n", " 35 (restart 0) KSP residual norm 1.109702e+00\n", " 36 (restart 0) KSP residual norm 1.035425e+00\n", " 37 (restart 0) KSP residual norm 9.001570e-01\n", " 38 (restart 0) KSP residual norm 8.562292e-01\n", " 39 (restart 0) KSP residual norm 7.708716e-01\n", " 40 (restart 0) KSP residual norm 7.215291e-01\n", " 41 (restart 0) KSP residual norm 6.529219e-01\n", " 42 (restart 0) KSP residual norm 6.174605e-01\n", " 43 (restart 0) KSP residual norm 5.573557e-01\n", " 44 (restart 0) KSP residual norm 5.290993e-01\n", " 45 (restart 0) KSP residual norm 4.223429e-01\n", " 46 (restart 0) KSP residual norm 4.104930e-01\n", " 47 (restart 0) KSP residual norm 3.345857e-01\n", " 48 (restart 0) KSP residual norm 3.248134e-01\n", " 49 (restart 0) KSP residual norm 2.842468e-01\n", " 50 (restart 0) KSP residual norm 2.779873e-01\n", " 51 (restart 0) KSP residual norm 2.314581e-01\n", " 52 (restart 0) KSP residual norm 2.241979e-01\n", " 53 (restart 0) KSP residual norm 1.941883e-01\n", " 54 (restart 0) KSP residual norm 1.873997e-01\n", " 55 (restart 0) KSP residual norm 1.620324e-01\n", " 56 (restart 0) KSP residual norm 1.479451e-01\n", " 57 (restart 0) KSP residual norm 1.393785e-01\n", " 58 (restart 0) KSP residual norm 1.198478e-01\n", " 59 (restart 0) KSP residual norm 1.141420e-01\n", " 60 (restart 0) KSP residual norm 9.751654e-02\n", " 61 (restart 0) KSP residual norm 9.458212e-02\n", " 62 (restart 0) KSP residual norm 7.867308e-02\n", " 63 (restart 0) KSP residual norm 7.226444e-02\n", " 64 (restart 0) KSP residual norm 6.587274e-02\n", " 65 (restart 0) KSP residual norm 5.982050e-02\n", " 66 (restart 0) KSP residual norm 5.655181e-02\n", " 67 (restart 0) KSP residual norm 5.175948e-02\n", " 68 (restart 0) KSP residual norm 4.502918e-02\n", " 69 (restart 0) KSP residual norm 4.254858e-02\n", " 70 (restart 0) KSP residual norm 3.698099e-02\n", " 71 (restart 0) KSP residual norm 3.360218e-02\n", " 72 (restart 0) KSP residual norm 3.114946e-02\n", " 73 (restart 0) KSP residual norm 2.696771e-02\n", " 74 (restart 0) KSP residual norm 2.325530e-02\n", " 75 (restart 0) KSP residual norm 2.000240e-02\n", " 76 (restart 0) KSP residual norm 1.724507e-02\n", " 77 (restart 0) KSP residual norm 1.595550e-02\n", " 78 (restart 0) KSP residual norm 1.404242e-02\n", " 79 (restart 0) KSP residual norm 1.234808e-02\n", " 80 (restart 0) KSP residual norm 1.079441e-02\n", " 81 (restart 0) KSP residual norm 9.412431e-03\n", " 82 (restart 0) KSP residual norm 8.485063e-03\n", " 83 (restart 0) KSP residual norm 7.527019e-03\n", " 84 (restart 0) KSP residual norm 6.758576e-03\n", " 85 (restart 0) KSP residual norm 6.043970e-03\n", " 86 (restart 0) KSP residual norm 5.347198e-03\n", " 87 (restart 0) KSP residual norm 4.654221e-03\n", " 88 (restart 0) KSP residual norm 4.011899e-03\n", " 89 (restart 0) KSP residual norm 3.577493e-03\n", " 90 (restart 0) KSP residual norm 3.142014e-03\n", " 91 (restart 0) KSP residual norm 2.672890e-03\n", " 92 (restart 0) KSP residual norm 2.356149e-03\n", " 93 (restart 0) KSP residual norm 2.076869e-03\n", " 94 (restart 0) KSP residual norm 1.804231e-03\n", " 95 (restart 0) KSP residual norm 1.577319e-03\n", " 96 (restart 0) KSP residual norm 1.371154e-03\n", " 97 (restart 0) KSP residual norm 1.175168e-03\n", " 98 (restart 0) KSP residual norm 1.052049e-03\n", " 99 (restart 0) KSP residual norm 9.185918e-04\n", "100 (restart 0) KSP residual norm 7.915908e-04\n", "101 (restart 0) KSP residual norm 6.901907e-04\n", "102 (restart 0) KSP residual norm 6.038281e-04\n", "103 (restart 0) KSP residual norm 5.238061e-04\n", "104 (restart 0) KSP residual norm 4.441228e-04\n", "105 (restart 0) KSP residual norm 3.885199e-04\n", "106 (restart 0) KSP residual norm 3.441190e-04\n", "107 (restart 0) KSP residual norm 2.973427e-04\n", "108 (restart 0) KSP residual norm 2.527691e-04\n", "109 (restart 0) KSP residual norm 2.228260e-04\n", "110 (restart 0) KSP residual norm 1.927259e-04\n", "111 (restart 0) KSP residual norm 1.704849e-04\n", "112 (restart 0) KSP residual norm 1.494124e-04\n", "113 (restart 0) KSP residual norm 1.254301e-04\n", "114 (restart 0) KSP residual norm 1.035064e-04\n", "115 (restart 0) KSP residual norm 8.643996e-05\n", "116 (restart 0) KSP residual norm 7.354628e-05\n", "117 (restart 0) KSP residual norm 6.230101e-05\n", "118 (restart 0) KSP residual norm 5.204286e-05\n", "119 (restart 0) KSP residual norm 4.249049e-05\n", "120 (restart 0) KSP residual norm 3.597213e-05\n", "121 (restart 0) KSP residual norm 3.013129e-05\n", "122 (restart 0) KSP residual norm 2.483566e-05\n", "123 (restart 0) KSP residual norm 2.037325e-05\n", "124 (restart 0) KSP residual norm 1.716161e-05\n", "125 (restart 0) KSP residual norm 1.502082e-05\n", "126 (restart 0) KSP residual norm 1.293903e-05\n", "127 (restart 0) KSP residual norm 1.112756e-05\n", "128 (restart 0) KSP residual norm 9.400016e-06\n", "129 (restart 0) KSP residual norm 7.765352e-06\n", "130 (restart 0) KSP residual norm 6.525417e-06\n", "131 (restart 0) KSP residual norm 5.461696e-06\n", "132 (restart 0) KSP residual norm 4.549279e-06\n", "133 (restart 0) KSP residual norm 3.708026e-06\n", "134 (restart 0) KSP residual norm 3.142844e-06\n", "135 (restart 0) KSP residual norm 2.553050e-06\n", "136 (restart 0) KSP residual norm 2.103293e-06\n", "137 (restart 0) KSP residual norm 1.720958e-06\n", "138 (restart 0) KSP residual norm 1.376295e-06\n", "139 (restart 0) KSP residual norm 1.114133e-06\n", "140 (restart 0) KSP residual norm 9.030977e-07\n", "141 (restart 0) KSP residual norm 7.458604e-07\n", "142 (restart 0) KSP residual norm 6.015027e-07\n", "143 (restart 0) KSP residual norm 4.891975e-07\n", "144 (restart 0) KSP residual norm 3.990345e-07\n", "145 (restart 0) KSP residual norm 3.217504e-07\n", "146 (restart 0) KSP residual norm 2.588682e-07\n", "GMRES solver converged in 146 iterations (avg. reduction factor: 8.809e-01)\n", "\n", "Greedy iteration 3 (n = 8): ω* = 8.747e-02 GHz (2.200e+01), error = 2.281e-03\n", " Field energy E (6.715e-01 J) + H (9.586e-02 J) = 7.673e-01 J\n", "\n", " Residual norms for GMRES solve\n", " 0 (restart 0) KSP residual norm 2.042889e+01\n", " 1 (restart 0) KSP residual norm 2.027437e+01\n", " 2 (restart 0) KSP residual norm 2.023083e+01\n", " 3 (restart 0) KSP residual norm 1.547535e+01\n", " 4 (restart 0) KSP residual norm 1.502530e+01\n", " 5 (restart 0) KSP residual norm 1.318760e+01\n", " 6 (restart 0) KSP residual norm 1.133267e+01\n", " 7 (restart 0) KSP residual norm 8.630884e+00\n", " 8 (restart 0) KSP residual norm 7.896093e+00\n", " 9 (restart 0) KSP residual norm 6.428616e+00\n", " 10 (restart 0) KSP residual norm 6.383410e+00\n", " 11 (restart 0) KSP residual norm 5.268262e+00\n", " 12 (restart 0) KSP residual norm 5.209124e+00\n", " 13 (restart 0) KSP residual norm 4.728123e+00\n", " 14 (restart 0) KSP residual norm 4.552161e+00\n", " 15 (restart 0) KSP residual norm 4.322521e+00\n", " 16 (restart 0) KSP residual norm 4.003216e+00\n", " 17 (restart 0) KSP residual norm 3.785865e+00\n", " 18 (restart 0) KSP residual norm 3.035431e+00\n", " 19 (restart 0) KSP residual norm 2.670497e+00\n", " 20 (restart 0) KSP residual norm 2.570177e+00\n", " 21 (restart 0) KSP residual norm 2.414542e+00\n", " 22 (restart 0) KSP residual norm 2.286942e+00\n", " 23 (restart 0) KSP residual norm 2.209053e+00\n", " 24 (restart 0) KSP residual norm 1.805342e+00\n", " 25 (restart 0) KSP residual norm 1.650560e+00\n", " 26 (restart 0) KSP residual norm 1.473338e+00\n", " 27 (restart 0) KSP residual norm 1.296651e+00\n", " 28 (restart 0) KSP residual norm 1.229094e+00\n", " 29 (restart 0) KSP residual norm 1.116511e+00\n", " 30 (restart 0) KSP residual norm 9.869732e-01\n", " 31 (restart 0) KSP residual norm 8.788232e-01\n", " 32 (restart 0) KSP residual norm 8.292670e-01\n", " 33 (restart 0) KSP residual norm 7.195066e-01\n", " 34 (restart 0) KSP residual norm 6.880733e-01\n", " 35 (restart 0) KSP residual norm 6.313263e-01\n", " 36 (restart 0) KSP residual norm 5.867261e-01\n", " 37 (restart 0) KSP residual norm 5.017192e-01\n", " 38 (restart 0) KSP residual norm 4.810637e-01\n", " 39 (restart 0) KSP residual norm 3.854340e-01\n", " 40 (restart 0) KSP residual norm 3.669350e-01\n", " 41 (restart 0) KSP residual norm 2.985555e-01\n", " 42 (restart 0) KSP residual norm 2.759435e-01\n", " 43 (restart 0) KSP residual norm 2.549152e-01\n", " 44 (restart 0) KSP residual norm 2.362147e-01\n", " 45 (restart 0) KSP residual norm 2.140597e-01\n", " 46 (restart 0) KSP residual norm 1.990136e-01\n", " 47 (restart 0) KSP residual norm 1.808665e-01\n", " 48 (restart 0) KSP residual norm 1.689829e-01\n", " 49 (restart 0) KSP residual norm 1.583628e-01\n", " 50 (restart 0) KSP residual norm 1.471209e-01\n", " 51 (restart 0) KSP residual norm 1.384500e-01\n", " 52 (restart 0) KSP residual norm 1.252734e-01\n", " 53 (restart 0) KSP residual norm 1.171784e-01\n", " 54 (restart 0) KSP residual norm 1.069232e-01\n", " 55 (restart 0) KSP residual norm 9.717824e-02\n", " 56 (restart 0) KSP residual norm 8.801977e-02\n", " 57 (restart 0) KSP residual norm 8.154329e-02\n", " 58 (restart 0) KSP residual norm 7.121128e-02\n", " 59 (restart 0) KSP residual norm 6.591035e-02\n", " 60 (restart 0) KSP residual norm 5.774376e-02\n", " 61 (restart 0) KSP residual norm 5.336727e-02\n", " 62 (restart 0) KSP residual norm 4.646023e-02\n", " 63 (restart 0) KSP residual norm 4.275234e-02\n", " 64 (restart 0) KSP residual norm 3.992192e-02\n", " 65 (restart 0) KSP residual norm 3.638387e-02\n", " 66 (restart 0) KSP residual norm 3.326158e-02\n", " 67 (restart 0) KSP residual norm 2.908708e-02\n", " 68 (restart 0) KSP residual norm 2.640191e-02\n", " 69 (restart 0) KSP residual norm 2.259525e-02\n", " 70 (restart 0) KSP residual norm 2.013433e-02\n", " 71 (restart 0) KSP residual norm 1.710483e-02\n", " 72 (restart 0) KSP residual norm 1.502178e-02\n", " 73 (restart 0) KSP residual norm 1.329930e-02\n", " 74 (restart 0) KSP residual norm 1.168188e-02\n", " 75 (restart 0) KSP residual norm 1.096272e-02\n", " 76 (restart 0) KSP residual norm 9.886421e-03\n", " 77 (restart 0) KSP residual norm 9.106042e-03\n", " 78 (restart 0) KSP residual norm 7.608192e-03\n", " 79 (restart 0) KSP residual norm 6.630630e-03\n", " 80 (restart 0) KSP residual norm 5.160740e-03\n", " 81 (restart 0) KSP residual norm 4.414217e-03\n", " 82 (restart 0) KSP residual norm 3.731349e-03\n", " 83 (restart 0) KSP residual norm 3.243320e-03\n", " 84 (restart 0) KSP residual norm 2.867478e-03\n", " 85 (restart 0) KSP residual norm 2.589084e-03\n", " 86 (restart 0) KSP residual norm 2.390977e-03\n", " 87 (restart 0) KSP residual norm 2.075082e-03\n", " 88 (restart 0) KSP residual norm 1.789083e-03\n", " 89 (restart 0) KSP residual norm 1.504995e-03\n", " 90 (restart 0) KSP residual norm 1.277197e-03\n", " 91 (restart 0) KSP residual norm 1.100396e-03\n", " 92 (restart 0) KSP residual norm 9.502641e-04\n", " 93 (restart 0) KSP residual norm 8.502701e-04\n", " 94 (restart 0) KSP residual norm 7.700257e-04\n", " 95 (restart 0) KSP residual norm 6.919304e-04\n", " 96 (restart 0) KSP residual norm 6.195523e-04\n", " 97 (restart 0) KSP residual norm 5.218727e-04\n", " 98 (restart 0) KSP residual norm 4.387896e-04\n", " 99 (restart 0) KSP residual norm 3.660013e-04\n", "100 (restart 0) KSP residual norm 3.142407e-04\n", "101 (restart 0) KSP residual norm 2.565702e-04\n", "102 (restart 0) KSP residual norm 2.171901e-04\n", "103 (restart 0) KSP residual norm 1.831856e-04\n", "104 (restart 0) KSP residual norm 1.542106e-04\n", "105 (restart 0) KSP residual norm 1.377388e-04\n", "106 (restart 0) KSP residual norm 1.219872e-04\n", "107 (restart 0) KSP residual norm 1.077371e-04\n", "108 (restart 0) KSP residual norm 8.859267e-05\n", "109 (restart 0) KSP residual norm 7.596475e-05\n", "110 (restart 0) KSP residual norm 6.275381e-05\n", "111 (restart 0) KSP residual norm 5.283743e-05\n", "112 (restart 0) KSP residual norm 4.435560e-05\n", "113 (restart 0) KSP residual norm 3.701401e-05\n", "114 (restart 0) KSP residual norm 2.980073e-05\n", "115 (restart 0) KSP residual norm 2.468426e-05\n", "116 (restart 0) KSP residual norm 2.013584e-05\n", "117 (restart 0) KSP residual norm 1.667121e-05\n", "118 (restart 0) KSP residual norm 1.344484e-05\n", "119 (restart 0) KSP residual norm 1.104998e-05\n", "120 (restart 0) KSP residual norm 8.834505e-06\n", "121 (restart 0) KSP residual norm 7.304665e-06\n", "122 (restart 0) KSP residual norm 5.869287e-06\n", "123 (restart 0) KSP residual norm 4.782435e-06\n", "124 (restart 0) KSP residual norm 3.958426e-06\n", "125 (restart 0) KSP residual norm 3.328071e-06\n", "126 (restart 0) KSP residual norm 2.704746e-06\n", "127 (restart 0) KSP residual norm 2.244325e-06\n", "128 (restart 0) KSP residual norm 1.709745e-06\n", "129 (restart 0) KSP residual norm 1.327032e-06\n", "130 (restart 0) KSP residual norm 1.029878e-06\n", "131 (restart 0) KSP residual norm 7.820526e-07\n", "132 (restart 0) KSP residual norm 5.965929e-07\n", "133 (restart 0) KSP residual norm 4.936279e-07\n", "134 (restart 0) KSP residual norm 3.956172e-07\n", "135 (restart 0) KSP residual norm 3.240729e-07\n", "136 (restart 0) KSP residual norm 2.570930e-07\n", "137 (restart 0) KSP residual norm 2.060828e-07\n", "138 (restart 0) KSP residual norm 1.630016e-07\n", "GMRES solver converged in 138 iterations (avg. reduction factor: 8.736e-01)\n", "\n", "Greedy iteration 4 (n = 10): ω* = 5.987e-02 GHz (1.506e+01), error = 2.983e-04, memory = 1/2\n", " Field energy E (8.263e-01 J) + H (8.124e-02 J) = 9.076e-01 J\n", "\n", " Residual norms for GMRES solve\n", " 0 (restart 0) KSP residual norm 4.019291e+02\n", " 1 (restart 0) KSP residual norm 3.268955e+01\n", " 2 (restart 0) KSP residual norm 2.986973e+01\n", " 3 (restart 0) KSP residual norm 1.696305e+01\n", " 4 (restart 0) KSP residual norm 1.692442e+01\n", " 5 (restart 0) KSP residual norm 1.362762e+01\n", " 6 (restart 0) KSP residual norm 1.315620e+01\n", " 7 (restart 0) KSP residual norm 1.245182e+01\n", " 8 (restart 0) KSP residual norm 1.217929e+01\n", " 9 (restart 0) KSP residual norm 1.056858e+01\n", " 10 (restart 0) KSP residual norm 9.496582e+00\n", " 11 (restart 0) KSP residual norm 9.310563e+00\n", " 12 (restart 0) KSP residual norm 6.229332e+00\n", " 13 (restart 0) KSP residual norm 5.914524e+00\n", " 14 (restart 0) KSP residual norm 5.184853e+00\n", " 15 (restart 0) KSP residual norm 4.873931e+00\n", " 16 (restart 0) KSP residual norm 4.512389e+00\n", " 17 (restart 0) KSP residual norm 4.212592e+00\n", " 18 (restart 0) KSP residual norm 3.840091e+00\n", " 19 (restart 0) KSP residual norm 3.548131e+00\n", " 20 (restart 0) KSP residual norm 3.329916e+00\n", " 21 (restart 0) KSP residual norm 2.977109e+00\n", " 22 (restart 0) KSP residual norm 2.788545e+00\n", " 23 (restart 0) KSP residual norm 2.481746e+00\n", " 24 (restart 0) KSP residual norm 2.344894e+00\n", " 25 (restart 0) KSP residual norm 2.150968e+00\n", " 26 (restart 0) KSP residual norm 1.994935e+00\n", " 27 (restart 0) KSP residual norm 1.771967e+00\n", " 28 (restart 0) KSP residual norm 1.628553e+00\n", " 29 (restart 0) KSP residual norm 1.545736e+00\n", " 30 (restart 0) KSP residual norm 1.414773e+00\n", " 31 (restart 0) KSP residual norm 1.331575e+00\n", " 32 (restart 0) KSP residual norm 1.065642e+00\n", " 33 (restart 0) KSP residual norm 9.633193e-01\n", " 34 (restart 0) KSP residual norm 7.947481e-01\n", " 35 (restart 0) KSP residual norm 7.003376e-01\n", " 36 (restart 0) KSP residual norm 5.973425e-01\n", " 37 (restart 0) KSP residual norm 5.186585e-01\n", " 38 (restart 0) KSP residual norm 4.810716e-01\n", " 39 (restart 0) KSP residual norm 4.228698e-01\n", " 40 (restart 0) KSP residual norm 3.829883e-01\n", " 41 (restart 0) KSP residual norm 3.283028e-01\n", " 42 (restart 0) KSP residual norm 2.842079e-01\n", " 43 (restart 0) KSP residual norm 2.414638e-01\n", " 44 (restart 0) KSP residual norm 2.075543e-01\n", " 45 (restart 0) KSP residual norm 1.832504e-01\n", " 46 (restart 0) KSP residual norm 1.549034e-01\n", " 47 (restart 0) KSP residual norm 1.318585e-01\n", " 48 (restart 0) KSP residual norm 1.199832e-01\n", " 49 (restart 0) KSP residual norm 9.965482e-02\n", " 50 (restart 0) KSP residual norm 9.077035e-02\n", " 51 (restart 0) KSP residual norm 7.638034e-02\n", " 52 (restart 0) KSP residual norm 6.804307e-02\n", " 53 (restart 0) KSP residual norm 5.805444e-02\n", " 54 (restart 0) KSP residual norm 5.279622e-02\n", " 55 (restart 0) KSP residual norm 4.535220e-02\n", " 56 (restart 0) KSP residual norm 4.093703e-02\n", " 57 (restart 0) KSP residual norm 3.703610e-02\n", " 58 (restart 0) KSP residual norm 3.345429e-02\n", " 59 (restart 0) KSP residual norm 3.053537e-02\n", " 60 (restart 0) KSP residual norm 2.746701e-02\n", " 61 (restart 0) KSP residual norm 2.462901e-02\n", " 62 (restart 0) KSP residual norm 2.165946e-02\n", " 63 (restart 0) KSP residual norm 1.835083e-02\n", " 64 (restart 0) KSP residual norm 1.638302e-02\n", " 65 (restart 0) KSP residual norm 1.435928e-02\n", " 66 (restart 0) KSP residual norm 1.304893e-02\n", " 67 (restart 0) KSP residual norm 1.157376e-02\n", " 68 (restart 0) KSP residual norm 1.056642e-02\n", " 69 (restart 0) KSP residual norm 9.397988e-03\n", " 70 (restart 0) KSP residual norm 8.468033e-03\n", " 71 (restart 0) KSP residual norm 7.564413e-03\n", " 72 (restart 0) KSP residual norm 6.684216e-03\n", " 73 (restart 0) KSP residual norm 5.933915e-03\n", " 74 (restart 0) KSP residual norm 5.296856e-03\n", " 75 (restart 0) KSP residual norm 4.797766e-03\n", " 76 (restart 0) KSP residual norm 4.233475e-03\n", " 77 (restart 0) KSP residual norm 3.743815e-03\n", " 78 (restart 0) KSP residual norm 3.160569e-03\n", " 79 (restart 0) KSP residual norm 2.765297e-03\n", " 80 (restart 0) KSP residual norm 2.348691e-03\n", " 81 (restart 0) KSP residual norm 2.035312e-03\n", " 82 (restart 0) KSP residual norm 1.725625e-03\n", " 83 (restart 0) KSP residual norm 1.456257e-03\n", " 84 (restart 0) KSP residual norm 1.290962e-03\n", " 85 (restart 0) KSP residual norm 1.145283e-03\n", " 86 (restart 0) KSP residual norm 1.003289e-03\n", " 87 (restart 0) KSP residual norm 8.746090e-04\n", " 88 (restart 0) KSP residual norm 7.602910e-04\n", " 89 (restart 0) KSP residual norm 6.662398e-04\n", " 90 (restart 0) KSP residual norm 5.719609e-04\n", " 91 (restart 0) KSP residual norm 5.111255e-04\n", " 92 (restart 0) KSP residual norm 4.392681e-04\n", " 93 (restart 0) KSP residual norm 3.844378e-04\n", " 94 (restart 0) KSP residual norm 3.350539e-04\n", " 95 (restart 0) KSP residual norm 2.854854e-04\n", " 96 (restart 0) KSP residual norm 2.482740e-04\n", " 97 (restart 0) KSP residual norm 2.103948e-04\n", " 98 (restart 0) KSP residual norm 1.777495e-04\n", " 99 (restart 0) KSP residual norm 1.565508e-04\n", "100 (restart 0) KSP residual norm 1.363470e-04\n", "101 (restart 0) KSP residual norm 1.187984e-04\n", "102 (restart 0) KSP residual norm 1.031860e-04\n", "103 (restart 0) KSP residual norm 8.723157e-05\n", "104 (restart 0) KSP residual norm 7.608098e-05\n", "105 (restart 0) KSP residual norm 6.509107e-05\n", "106 (restart 0) KSP residual norm 5.496898e-05\n", "107 (restart 0) KSP residual norm 4.664535e-05\n", "108 (restart 0) KSP residual norm 3.949140e-05\n", "109 (restart 0) KSP residual norm 3.267717e-05\n", "110 (restart 0) KSP residual norm 2.759363e-05\n", "111 (restart 0) KSP residual norm 2.386752e-05\n", "112 (restart 0) KSP residual norm 2.035468e-05\n", "113 (restart 0) KSP residual norm 1.683161e-05\n", "114 (restart 0) KSP residual norm 1.432334e-05\n", "115 (restart 0) KSP residual norm 1.235002e-05\n", "116 (restart 0) KSP residual norm 1.049758e-05\n", "117 (restart 0) KSP residual norm 8.930803e-06\n", "118 (restart 0) KSP residual norm 7.808016e-06\n", "119 (restart 0) KSP residual norm 6.769262e-06\n", "120 (restart 0) KSP residual norm 5.799267e-06\n", "121 (restart 0) KSP residual norm 5.047058e-06\n", "122 (restart 0) KSP residual norm 4.367123e-06\n", "123 (restart 0) KSP residual norm 3.839456e-06\n", "GMRES solver converged in 123 iterations (avg. reduction factor: 8.606e-01)\n", "\n", "Greedy iteration 5 (n = 12): ω* = 9.128e-02 GHz (2.296e+01), error = 9.899e-05, memory = 2/2\n", " Field energy E (6.537e-01 J) + H (9.701e-02 J) = 7.507e-01 J\n", "\n", "Adaptive sampling converged with 7 frequency samples:\n", " n = 14, error = 9.899e-05, tol = 1.000e-03, memory = 2/2\n", " Sampled frequencies (GHz): 5.621e-02, 9.369e-02, 7.666e-02, 6.589e-02,\n", " 8.747e-02, 5.987e-02, 9.128e-02\n", " Sample errors: inf, inf, 1.807e-01, 3.881e-02, 2.281e-03,\n", " 2.983e-04, 9.899e-05\n", " Total offline phase elapsed time: 1.28e+02 s\n", "\n", "Beginning fast frequency sweep online phase\n", "\n", "It 1/21: ω/2π = 5.621e-02 GHz (total elapsed time = 1.28e+02 s)\n", "\n", " Sol. ||E|| = 7.552320e+00\n", " Field energy E (8.510e-01 J) + H (7.806e-02 J) = 9.290e-01 J\n", " S[1][1] = +7.634e-01-2.730e-01i, |S[1][1]| = -1.823e+00, arg(S[1][1]) = -1.968e+01\n", "\n", " Wrote fields to disk (Paraview) at step 1\n", "\n", "It 2/21: ω/2π = 5.808e-02 GHz (total elapsed time = 1.29e+02 s)\n", "\n", " Sol. ||E|| = 7.487982e+00\n", " Field energy E (8.382e-01 J) + H (7.977e-02 J) = 9.180e-01 J\n", " S[1][1] = +7.569e-01-2.768e-01i, |S[1][1]| = -1.874e+00, arg(S[1][1]) = -2.009e+01\n", "\n", "It 3/21: ω/2π = 5.996e-02 GHz (total elapsed time = 1.30e+02 s)\n", "\n", " Sol. ||E|| = 7.424728e+00\n", " Field energy E (8.257e-01 J) + H (8.131e-02 J) = 9.070e-01 J\n", " S[1][1] = +7.504e-01-2.804e-01i, |S[1][1]| = -1.926e+00, arg(S[1][1]) = -2.049e+01\n", "\n", "It 4/21: ω/2π = 6.183e-02 GHz (total elapsed time = 1.31e+02 s)\n", "\n", " Sol. ||E|| = 7.362445e+00\n", " Field energy E (8.134e-01 J) + H (8.264e-02 J) = 8.960e-01 J\n", " S[1][1] = +7.440e-01-2.839e-01i, |S[1][1]| = -1.979e+00, arg(S[1][1]) = -2.089e+01\n", "\n", "It 5/21: ω/2π = 6.371e-02 GHz (total elapsed time = 1.32e+02 s)\n", "\n", " Sol. ||E|| = 7.301097e+00\n", " Field energy E (8.013e-01 J) + H (8.378e-02 J) = 8.850e-01 J\n", " S[1][1] = +7.376e-01-2.872e-01i, |S[1][1]| = -2.031e+00, arg(S[1][1]) = -2.127e+01\n", "\n", "It 6/21: ω/2π = 6.558e-02 GHz (total elapsed time = 1.34e+02 s)\n", "\n", " Sol. ||E|| = 7.240704e+00\n", " Field energy E (7.893e-01 J) + H (8.476e-02 J) = 8.740e-01 J\n", " S[1][1] = +7.312e-01-2.903e-01i, |S[1][1]| = -2.083e+00, arg(S[1][1]) = -2.165e+01\n", "\n", " Wrote fields to disk (Paraview) at step 6\n", "\n", "It 7/21: ω/2π = 6.745e-02 GHz (total elapsed time = 1.36e+02 s)\n", "\n", " Sol. ||E|| = 7.181323e+00\n", " Field energy E (7.775e-01 J) + H (8.565e-02 J) = 8.632e-01 J\n", " S[1][1] = +7.250e-01-2.932e-01i, |S[1][1]| = -2.135e+00, arg(S[1][1]) = -2.202e+01\n", "\n", "It 8/21: ω/2π = 6.933e-02 GHz (total elapsed time = 1.37e+02 s)\n", "\n", " Sol. ||E|| = 7.123018e+00\n", " Field energy E (7.661e-01 J) + H (8.651e-02 J) = 8.526e-01 J\n", " S[1][1] = +7.188e-01-2.960e-01i, |S[1][1]| = -2.187e+00, arg(S[1][1]) = -2.238e+01\n", "\n", "It 9/21: ω/2π = 7.120e-02 GHz (total elapsed time = 1.39e+02 s)\n", "\n", " Sol. ||E|| = 7.065844e+00\n", " Field energy E (7.549e-01 J) + H (8.738e-02 J) = 8.423e-01 J\n", " S[1][1] = +7.127e-01-2.986e-01i, |S[1][1]| = -2.239e+00, arg(S[1][1]) = -2.273e+01\n", "\n", "It 10/21: ω/2π = 7.307e-02 GHz (total elapsed time = 1.40e+02 s)\n", "\n", " Sol. ||E|| = 7.009826e+00\n", " Field energy E (7.442e-01 J) + H (8.832e-02 J) = 8.325e-01 J\n", " S[1][1] = +7.067e-01-3.011e-01i, |S[1][1]| = -2.291e+00, arg(S[1][1]) = -2.308e+01\n", "\n", "It 11/21: ω/2π = 7.495e-02 GHz (total elapsed time = 1.42e+02 s)\n", "\n", " Sol. ||E|| = 6.954951e+00\n", " Field energy E (7.338e-01 J) + H (8.932e-02 J) = 8.231e-01 J\n", " S[1][1] = +7.008e-01-3.035e-01i, |S[1][1]| = -2.342e+00, arg(S[1][1]) = -2.342e+01\n", "\n", " Wrote fields to disk (Paraview) at step 11\n", "\n", "It 12/21: ω/2π = 7.682e-02 GHz (total elapsed time = 1.44e+02 s)\n", "\n", " Sol. ||E|| = 6.901167e+00\n", " Field energy E (7.238e-01 J) + H (9.039e-02 J) = 8.142e-01 J\n", " S[1][1] = +6.949e-01-3.057e-01i, |S[1][1]| = -2.393e+00, arg(S[1][1]) = -2.375e+01\n", "\n", "It 13/21: ω/2π = 7.870e-02 GHz (total elapsed time = 1.46e+02 s)\n", "\n", " Sol. ||E|| = 6.848395e+00\n", " Field energy E (7.141e-01 J) + H (9.149e-02 J) = 8.056e-01 J\n", " S[1][1] = +6.891e-01-3.079e-01i, |S[1][1]| = -2.444e+00, arg(S[1][1]) = -2.407e+01\n", "\n", "It 14/21: ω/2π = 8.057e-02 GHz (total elapsed time = 1.48e+02 s)\n", "\n", " Sol. ||E|| = 6.796535e+00\n", " Field energy E (7.047e-01 J) + H (9.259e-02 J) = 7.973e-01 J\n", " S[1][1] = +6.834e-01-3.099e-01i, |S[1][1]| = -2.494e+00, arg(S[1][1]) = -2.439e+01\n", "\n", "It 15/21: ω/2π = 8.244e-02 GHz (total elapsed time = 1.50e+02 s)\n", "\n", " Sol. ||E|| = 6.745491e+00\n", " Field energy E (6.955e-01 J) + H (9.362e-02 J) = 7.891e-01 J\n", " S[1][1] = +6.778e-01-3.118e-01i, |S[1][1]| = -2.545e+00, arg(S[1][1]) = -2.470e+01\n", "\n", "It 16/21: ω/2π = 8.432e-02 GHz (total elapsed time = 1.53e+02 s)\n", "\n", " Sol. ||E|| = 6.695180e+00\n", " Field energy E (6.864e-01 J) + H (9.456e-02 J) = 7.810e-01 J\n", " S[1][1] = +6.722e-01-3.136e-01i, |S[1][1]| = -2.595e+00, arg(S[1][1]) = -2.501e+01\n", "\n", " Wrote fields to disk (Paraview) at step 16\n", "\n", "It 17/21: ω/2π = 8.619e-02 GHz (total elapsed time = 1.55e+02 s)\n", "\n", " Sol. ||E|| = 6.645555e+00\n", " Field energy E (6.775e-01 J) + H (9.538e-02 J) = 7.729e-01 J\n", " S[1][1] = +6.667e-01-3.152e-01i, |S[1][1]| = -2.645e+00, arg(S[1][1]) = -2.531e+01\n", "\n", "It 18/21: ω/2π = 8.806e-02 GHz (total elapsed time = 1.58e+02 s)\n", "\n", " Sol. ||E|| = 6.596610e+00\n", " Field energy E (6.686e-01 J) + H (9.607e-02 J) = 7.647e-01 J\n", " S[1][1] = +6.613e-01-3.168e-01i, |S[1][1]| = -2.695e+00, arg(S[1][1]) = -2.560e+01\n", "\n", "It 19/21: ω/2π = 8.994e-02 GHz (total elapsed time = 1.60e+02 s)\n", "\n", " Sol. ||E|| = 6.548375e+00\n", " Field energy E (6.599e-01 J) + H (9.665e-02 J) = 7.565e-01 J\n", " S[1][1] = +6.560e-01-3.183e-01i, |S[1][1]| = -2.744e+00, arg(S[1][1]) = -2.588e+01\n", "\n", "It 20/21: ω/2π = 9.181e-02 GHz (total elapsed time = 1.63e+02 s)\n", "\n", " Sol. ||E|| = 6.500909e+00\n", " Field energy E (6.513e-01 J) + H (9.715e-02 J) = 7.484e-01 J\n", " S[1][1] = +6.507e-01-3.197e-01i, |S[1][1]| = -2.793e+00, arg(S[1][1]) = -2.616e+01\n", "\n", "It 21/21: ω/2π = 9.369e-02 GHz (total elapsed time = 1.66e+02 s)\n", "\n", " Sol. ||E|| = 6.454280e+00\n", " Field energy E (6.429e-01 J) + H (9.762e-02 J) = 7.405e-01 J\n", " S[1][1] = +6.456e-01-3.210e-01i, |S[1][1]| = -2.842e+00, arg(S[1][1]) = -2.644e+01\n", "\n", " Wrote fields to disk (Paraview) at step 21\n", "\n", "Completed 0 iterations of adaptive mesh refinement (AMR):\n", " Indicator norm = 3.831e-01, global unknowns = 59472\n", " Max. iterations = 0, tol. = 1.000e-02\n", "\n", "Elapsed Time Report (s) Min. Max. Avg.\n", "==============================================================\n", "Initialization 0.067 0.070 0.069\n", " Mesh Preprocessing 0.159 0.162 0.159\n", "Operator Construction 0.608 17.963 16.872\n", "Linear Solve 17.294 17.667 17.404\n", " Setup 6.254 6.260 6.258\n", " Preconditioner 87.633 90.224 89.156\n", " Coarse Solve 11.349 13.613 12.356\n", "PROM Construction 0.165 0.171 0.166\n", "PROM Solve 0.006 0.008 0.006\n", "Estimation 0.038 0.049 0.041\n", " Construction 0.659 0.661 0.660\n", " Solve 2.575 2.580 2.577\n", "Postprocessing 0.294 23.158 1.727\n", " Far Fields 16.642 16.665 16.654\n", " Paraview 1.289 6.790 6.444\n", "Disk IO 0.081 0.081 0.081\n", "--------------------------------------------------------------\n", "Total 170.707 170.707 170.707\n", "\n" ] } ], "source": [ "run_palace(config_file=config_file, num_procs=16)" ] }, { "cell_type": "code", "execution_count": 9, "id": "f1205290", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2MAAAIjCAYAAACOHsPRAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAkHhJREFUeJzs3XdcleX/x/H3OYdxUAFFQUARECfiNs2NGUmpWdnSrCwztWGltn4Ns287zcrM0bBhZtlwZGrukRouXLjFheBCAUX2/fvDoEgUUOAGfD0fDx557nPd9/mcDyPe3Nd93RbDMAwBAAAAAEqU1ewCAAAAAOBaRBgDAAAAABMQxgAAAADABIQxAAAAADABYQwAAAAATEAYAwAAAAATEMYAAAAAwASEMQAAAAAwAWEMAAAAAExAGAMAAJf12muvyWKxlNjrWSwWvfbaayX2egBgFsIYAJRCW7du1Z133il/f3/Z7XbVqFFDYWFhGjdunNmllXq///47v8iXgLfeekszZ840uwwAKNMshmEYZhcBAPjH6tWr1aVLF9WqVUsPPvigvL29dfjwYa1du1b79u3T3r17zS6xVHviiSc0fvx48b+3opORkaGMjAzZ7facbZUqVdKdd96pr776qshfz2KxaOTIkYRqAOWeg9kFAABye/PNN+Xu7q5169apcuXKuZ47fvy4OUX9R0ZGhrKysuTk5GR2KSXCMAylpKTIxcXF7FJM4eDgIAcHfmUAgKLGNEUAKGX27dunRo0aXRTEJMnLyyvf/UNDQxUSEqINGzaoXbt2cnFxUWBgoCZOnJhrXFpaml599VW1bNlS7u7uqlixojp27KilS5fmGnfgwAFZLBaNHj1aH374oYKCguTs7KyoqKgrOsb48eNVu3ZtVahQQTfddJMOHz4swzD0v//9TzVr1pSLi4t69eql+Pj4i97bvHnz1LFjR1WsWFGurq7q3r27tm/fnvN8//79NX78eEkXzq5kf2TLysrShx9+qEaNGslut6t69eoaNGiQTp8+net1AgIC1KNHDy1YsECtWrWSi4uLJk2aJElauHChOnTooMqVK6tSpUqqX7++/u///i/fz4vFYtETTzyhGTNmKDg4WC4uLmrbtq22bt0qSZo0aZLq1Kkju92u0NBQHThwINf+K1eu1F133aVatWrJ2dlZfn5+euaZZ3T+/PmLXiv7Nex2u0JCQvTrr7+qf//+CggIyPNzMnny5JzP63XXXad169blOt5/rxmzWCw6d+6cvv7665we9+/fP+dz8O/XudQxJCk1NVXPPPOMPD095erqqltvvVVHjhzJs38xMTF6+OGHVb16dTk7O6tRo0b68ssvL9VuACgT+DMXAJQy/v7+WrNmjbZt26aQkJArOsbp06d1yy236O6771afPn30448/asiQIXJyctLDDz8sSUpMTNTnn3+uPn36aODAgUpKStIXX3yhbt26KSIiQs2aNct1zClTpiglJUWPPvqonJ2d5eHhUehjfPfdd0pLS9OTTz6p+Ph4vffee7r77rt1ww03aNmyZXr++ee1d+9ejRs3TiNGjMj1y/a3336rBx98UN26ddO7776r5ORkTZgwQR06dNCmTZsUEBCgQYMG6ejRo1q4cKG+/fbbi/oyaNAgffXVV3rooYc0dOhQRUdH65NPPtGmTZv0559/ytHRMWfsrl271KdPHw0aNEgDBw5U/fr1tX37dvXo0UNNmjTR66+/LmdnZ+3du1d//vlngT4vK1eu1OzZs/X4449Lkt5++2316NFDzz33nD799FM99thjOn36tN577z09/PDDWrJkSc6+M2bMUHJysoYMGaKqVasqIiJC48aN05EjRzRjxoyccXPnztU999yjxo0b6+2339bp06c1YMAA1ahRI8+apk2bpqSkJA0aNEgWi0Xvvfee7rjjDu3fvz9XP/7t22+/1SOPPKLWrVvr0UcflSQFBQUVqAf/9sgjj2jq1Knq27ev2rVrpyVLlqh79+4XjTt27Jiuv/76nEDr6empefPmacCAAUpMTNTTTz9d6NcGgFLBAACUKn/88Ydhs9kMm81mtG3b1njuueeMBQsWGGlpaQXav3PnzoYkY8yYMTnbUlNTjWbNmhleXl45x8nIyDBSU1Nz7Xv69GmjevXqxsMPP5yzLTo62pBkuLm5GcePH881vrDH8PT0NM6cOZOz/cUXXzQkGU2bNjXS09Nztvfp08dwcnIyUlJSDMMwjKSkJKNy5crGwIEDc71WXFyc4e7unmv7448/buT1v7eVK1cakozvvvsu1/b58+dftN3f39+QZMyfPz/X2LFjxxqSjBMnTlx0/PxIMpydnY3o6OicbZMmTTIkGd7e3kZiYmLO9uy+/HtscnLyRcd8++23DYvFYhw8eDBnW+PGjY2aNWsaSUlJOduWLVtmSDL8/f1ztmV/TqpWrWrEx8fnbJ81a5YhyZgzZ07OtpEjR17U04oVKxoPPvjgRTU9+OCDuV7nUseIjIw0JBmPPfZYrnF9+/Y1JBkjR47M2TZgwADDx8fHOHnyZK6x9957r+Hu7p5nbwCgLGCaIgCUMmFhYVqzZo1uvfVWbd68We+99566deumGjVqaPbs2QU6hoODgwYNGpTz2MnJSYMGDdLx48e1YcMGSZLNZsu55isrK0vx8fHKyMhQq1attHHjxouO2bt3b3l6eubaVthj3HXXXXJ3d8953KZNG0lSv379cl2T1KZNG6WlpSkmJkbShamBZ86cUZ8+fXTy5MmcD5vNpjZt2lw0LTIvM2bMkLu7u8LCwnIdo2XLlqpUqdJFxwgMDFS3bt1ybcueOjpr1ixlZWXl+5r/1bVr11xT+LLff+/eveXq6nrR9v379+ds+/f1aufOndPJkyfVrl07GYahTZs2SZKOHj2qrVu36oEHHlClSpVyxnfu3FmNGzfOs6Z77rlHVapUyXncsWPHi167OPz++++SpKFDh+ba/t+zXIZh6Oeff1bPnj1lGEauz123bt2UkJCQ59caAJQFhDEAKIWuu+46/fLLLzp9+rQiIiL04osvKikpSXfeeaeioqLy3d/X11cVK1bMta1evXqSlOtapK+//lpNmjSR3W5X1apV5enpqblz5yohIeGiYwYGBub5WoU5Rq1atXI9zg5mfn5+eW7PvpZrz549kqQbbrhBnp6euT7++OOPAi1ssmfPHiUkJMjLy+uiY5w9e/aiY+T1fu+55x61b99ejzzyiKpXr657771XP/74Y4GD2ZW+f0k6dOiQ+vfvLw8PD1WqVEmenp7q3LmzJOX0+uDBg5KkOnXqXPTaeW3Lq6bsYPbf6+iK2sGDB2W1Wi+a3li/fv1cj0+cOKEzZ85o8uTJF33eHnroIUmlZ2EbACgsrhkDgFLMyclJ1113na677jrVq1dPDz30kGbMmKGRI0de9bGnTp2q/v3767bbbtOzzz4rLy8v2Ww2vf3229q3b99F4/NaSbCwx7DZbHnWcqntxt/L02eHnW+//Vbe3t4XjSvISn9ZWVny8vLSd999l+fz/z3rl9f7dXFx0YoVK7R06VLNnTtX8+fP1w8//KAbbrhBf/zxxyXfR7Yrff+ZmZkKCwtTfHy8nn/+eTVo0EAVK1ZUTEyM+vfvf0Vn6Qr62oV1qZtDZ2ZmXtHxst9bv3799OCDD+Y5pkmTJld0bAAwG2EMAMqIVq1aSZJiY2PzHXv06FGdO3cu19mx3bt3S1LONLmffvpJtWvX1i+//JLrF+jCBL2iOEZBZJ898fLy0o033njZsZcKA0FBQVq0aJHat29/VUvUW61Wde3aVV27dtUHH3ygt956Sy+99JKWLl2ab21XauvWrdq9e7e+/vprPfDAAznbFy5cmGucv7+/JOV5L7qivj/dpfpcpUoVnTlz5qLt2Wftsvn7+ysrK0v79u3LdTZs165ducZlr7SYmZlZbP0FALMwTREASpmlS5fmeVYi+xqb/07jyktGRkbOUuzShWXsJ02aJE9PT7Vs2VLSP2dE/v1af/31l9asWVPgWoviGAXRrVs3ubm56a233lJ6evpFz584cSLn39kB9L+B4O6771ZmZqb+97//XbR/RkZGngHiv/Jabj97xcjU1NR8979SefXZMAx99NFHucb5+voqJCRE33zzjc6ePZuzffny5TlL6BeVihUr5tmzoKAgJSQkaMuWLTnbYmNj9euvv+Yad/PNN0uSPv7441zbP/zww1yPbTabevfurZ9//lnbtm276PX+/bkHgLKGM2MAUMo8+eSTSk5O1u23364GDRooLS1Nq1ev1g8//KCAgICc62Qux9fXV++++64OHDigevXq6YcfflBkZKQmT56cs1x5jx499Msvv+j2229X9+7dFR0drYkTJyo4ODjXL/KXUxTHKAg3NzdNmDBB999/v1q0aKF7771Xnp6eOnTokObOnav27dvrk08+kaScsDl06FB169ZNNptN9957rzp37qxBgwbp7bffVmRkpG666SY5Ojpqz549mjFjhj766CPdeeedl63j9ddf14oVK9S9e3f5+/vr+PHj+vTTT1WzZk116NChyN7vfzVo0EBBQUEaMWKEYmJi5Obmpp9//jnP67reeust9erVS+3bt9dDDz2k06dP65NPPlFISEiRfk5atmypRYsW6YMPPpCvr68CAwPVpk0b3XvvvXr++ed1++23a+jQoTm3IKhXr16uhTaaNWumPn366NNPP1VCQoLatWunxYsX53kG75133tHSpUvVpk0bDRw4UMHBwYqPj9fGjRu1aNGiPEMyAJQJJq3i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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# S parameters. Return the frequency where the minimum is reached.\n", "from pathlib import Path\n", "from palacetoolkit.postpro import s_params\n", "\n", "notebook_dir = Path().resolve()\n", "postpro_dir = notebook_dir / \"postpro\" / \"dipole_antenna\"\n", " \n", "f = s_params(str(postpro_dir / \"port-S.csv\"))" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "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.12.3" }, "papermill": { "default_parameters": {}, "duration": 35.469595, "end_time": "2026-05-26T01:18:41.593618+00:00", "environment_variables": {}, "exception": null, "input_path": "docs/examples/dipole_antenna_mesh.ipynb", "output_path": "docs/examples/dipole_antenna_mesh.ipynb", "parameters": {}, "start_time": "2026-05-26T01:18:06.124023+00:00", "version": "2.7.0" } }, "nbformat": 4, "nbformat_minor": 5 }