Skip to content

Commit efa6c9e

Browse files
committed
plot - create histograms
1 parent c3f82f1 commit efa6c9e

File tree

3 files changed

+73
-8
lines changed

3 files changed

+73
-8
lines changed
15.7 KB
Loading
13 KB
Loading

papers/high-order-bddc-2023/jupyter/Lumped-BDDC-High-Order-Histogram.ipynb

Lines changed: 73 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"outputs": [],
3232
"source": [
3333
"# setup\n",
34-
"p = 8\n",
34+
"p = 4\n",
3535
"mesh = Mesh2D(1.0, 1.0)\n",
3636
"\n",
3737
"# diffusion operator\n",
@@ -73,18 +73,83 @@
7373
" if sqrt(abs(θ[1])^2 + abs(θ[2])^2) > π/128\n",
7474
" A = computesymbols(bddc, ω, θ)\n",
7575
" currenteigenvalues = [abs(val) for val in eigvals(I - A)]\n",
76-
" push!(eigenvalues, currenteigenvalues)\n",
76+
" append!(eigenvalues, currenteigenvalues)\n",
77+
" end\n",
78+
"end\n",
79+
"\n",
80+
"# plot\n",
81+
"histogram(\n",
82+
" eigenvalues,\n",
83+
" title=\"Lumped BDDC Eigenvalues, p = 4\",\n",
84+
" legend=false,\n",
85+
" color=:cividis,\n",
86+
" normed=:true,\n",
87+
" bins=range(1.0, ceil(maximum(eigenvalues)), length=100)\n",
88+
")"
89+
]
90+
},
91+
{
92+
"cell_type": "code",
93+
"execution_count": null,
94+
"metadata": {},
95+
"outputs": [],
96+
"source": [
97+
"savefig(\"lumpedBDDCModerateOrderEigenvalues\")"
98+
]
99+
},
100+
{
101+
"cell_type": "code",
102+
"execution_count": null,
103+
"metadata": {},
104+
"outputs": [],
105+
"source": [
106+
"# setup\n",
107+
"p = 8\n",
108+
"\n",
109+
"# diffusion operator\n",
110+
"diffusion = GalleryOperator(\"diffusion\", p + 1, p + 2, mesh)\n",
111+
"\n",
112+
"# bddc smoother\n",
113+
"bddc = LumpedBDDC(diffusion)"
114+
]
115+
},
116+
{
117+
"cell_type": "code",
118+
"execution_count": null,
119+
"metadata": {},
120+
"outputs": [],
121+
"source": [
122+
"# full operator symbols\n",
123+
"numbersteps = 4\n",
124+
"maxeigenvalue = 0\n",
125+
"θ_min = -π/2\n",
126+
"θ_max = 3π/2\n",
127+
"θ_step = 2π/(numbersteps-1)\n",
128+
"θ_range = θ_min:θ_step:θ_max\n",
129+
"\n",
130+
"# compute and plot smoothing factor\n",
131+
"# setup\n",
132+
"ω = [1.0]\n",
133+
"eigenvalues = []\n",
134+
"\n",
135+
"# compute\n",
136+
"for i in 1:numbersteps, j in 1:numbersteps\n",
137+
" θ = [θ_range[i], θ_range[j]]\n",
138+
" if sqrt(abs(θ[1])^2 + abs(θ[2])^2) > π/128\n",
139+
" A = computesymbols(bddc, ω, θ)\n",
140+
" currenteigenvalues = [abs(val) for val in eigvals(I - A)]\n",
141+
" append!(eigenvalues, currenteigenvalues)\n",
77142
" end\n",
78143
"end\n",
79144
"\n",
80145
"# plot\n",
81146
"histogram(\n",
82147
" eigenvalues,\n",
83-
" title=\"Lumped BDDC Eigenvalues\",\n",
148+
" title=\"Lumped BDDC Eigenvalues, p = 8\",\n",
84149
" legend=false,\n",
85-
" aspect_ratio=:equal,\n",
86150
" color=:cividis,\n",
87-
" normed=true\n",
151+
" normed=:true,\n",
152+
" bins=range(1.0, ceil(maximum(eigenvalues)), length=100)\n",
88153
")"
89154
]
90155
},
@@ -100,15 +165,15 @@
100165
],
101166
"metadata": {
102167
"kernelspec": {
103-
"display_name": "Julia 1.9.2",
168+
"display_name": "Julia 1.11.2",
104169
"language": "julia",
105-
"name": "julia-1.9"
170+
"name": "julia-1.11"
106171
},
107172
"language_info": {
108173
"file_extension": ".jl",
109174
"mimetype": "application/julia",
110175
"name": "julia",
111-
"version": "1.9.2"
176+
"version": "1.11.2"
112177
}
113178
},
114179
"nbformat": 4,

0 commit comments

Comments
 (0)