|
31 | 31 | "outputs": [], |
32 | 32 | "source": [ |
33 | 33 | "# setup\n", |
34 | | - "p = 8\n", |
| 34 | + "p = 4\n", |
35 | 35 | "mesh = Mesh2D(1.0, 1.0)\n", |
36 | 36 | "\n", |
37 | 37 | "# diffusion operator\n", |
|
73 | 73 | " if sqrt(abs(θ[1])^2 + abs(θ[2])^2) > π/128\n", |
74 | 74 | " A = computesymbols(bddc, ω, θ)\n", |
75 | 75 | " 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", |
77 | 142 | " end\n", |
78 | 143 | "end\n", |
79 | 144 | "\n", |
80 | 145 | "# plot\n", |
81 | 146 | "histogram(\n", |
82 | 147 | " eigenvalues,\n", |
83 | | - " title=\"Lumped BDDC Eigenvalues\",\n", |
| 148 | + " title=\"Lumped BDDC Eigenvalues, p = 8\",\n", |
84 | 149 | " legend=false,\n", |
85 | | - " aspect_ratio=:equal,\n", |
86 | 150 | " color=:cividis,\n", |
87 | | - " normed=true\n", |
| 151 | + " normed=:true,\n", |
| 152 | + " bins=range(1.0, ceil(maximum(eigenvalues)), length=100)\n", |
88 | 153 | ")" |
89 | 154 | ] |
90 | 155 | }, |
|
100 | 165 | ], |
101 | 166 | "metadata": { |
102 | 167 | "kernelspec": { |
103 | | - "display_name": "Julia 1.9.2", |
| 168 | + "display_name": "Julia 1.11.2", |
104 | 169 | "language": "julia", |
105 | | - "name": "julia-1.9" |
| 170 | + "name": "julia-1.11" |
106 | 171 | }, |
107 | 172 | "language_info": { |
108 | 173 | "file_extension": ".jl", |
109 | 174 | "mimetype": "application/julia", |
110 | 175 | "name": "julia", |
111 | | - "version": "1.9.2" |
| 176 | + "version": "1.11.2" |
112 | 177 | } |
113 | 178 | }, |
114 | 179 | "nbformat": 4, |
|
0 commit comments