# full operator symbols
numbersteps = 250
maxeigenvalue = 0
θ_min = -π/2
θ_max = 3π/2
θ_step = 2π/(numbersteps-1)
θ_range = θ_min:θ_step:θ_max
# compute and plot smoothing factor
# setup
ω = [0.2]
maxeigenvalues = zeros(numbersteps, numbersteps)
# compute
for i in 1:numbersteps, j in 1:numbersteps
θ = [θ_range[i], θ_range[j]]
if sqrt(abs(θ[1])^2 + abs(θ[2])^2) > π/128
A = computesymbols(bddc, ω, θ)
eigenvalues = [abs(val) for val in eigvals(A)]
maxeigenvalues[i, j] = max(eigenvalues...)
maxeigenvalue = max(maxeigenvalue, maxeigenvalues[i, j])
end
end
# plot
println("max eigenvalue: ", maxeigenvalue)
xrange = θ_range/π
heatmap(
xrange,
xlabel="θ/π",
xtickfont=font(12, "Courier"),
xrange,
ylabel="θ/π",
ytickfont=font(12, "Courier"),
maxeigenvalues,
title="Lumped BDDC Error Symbol",
transpose=true,
aspect_ratio=:equal
)
xlims!(θ_min/π, θ_max/π)
ylims!(θ_min/π, θ_max/π)