externalise Group from compute_orbit_data
This commit is contained in:
parent
3059142db0
commit
5e04690722
@ -250,27 +250,23 @@ function Uπ_matrices(P_matrices; orth=orthSVD)
|
|||||||
return U_p_matrices
|
return U_p_matrices
|
||||||
end
|
end
|
||||||
|
|
||||||
function compute_orbit_data(name::String, N::Int)
|
function compute_orbit_data(name::String, G::Group, S::Vector{GroupElem}; radius=2)
|
||||||
isdir(name) || mkdir(name)
|
isdir(name) || mkdir(name)
|
||||||
|
|
||||||
SOutFN = AutGroup(FreeGroup(N), special=true, outer=true)
|
|
||||||
S = generators(SOutFN);
|
|
||||||
S = [S; [inv(s) for s in S]]
|
|
||||||
@show S
|
|
||||||
|
|
||||||
info("Generating ball of radius 4")
|
info("Generating ball of radius 4")
|
||||||
@time E4, sizes = generate_balls(S, SOutFN(), radius=4);
|
@time E4, sizes = generate_balls(S, G(), radius=2*radius);
|
||||||
info("Reverse dict")
|
info("Reverse dict")
|
||||||
@time E_dict = GroupRings.reverse_dict(E4)
|
@time E_dict = GroupRings.reverse_dict(E4)
|
||||||
|
|
||||||
info("Product matrix")
|
info("Product matrix")
|
||||||
@time pm = GroupRings.create_pm(E4, E_dict, sizes[2], twisted=true)
|
@time pm = GroupRings.create_pm(E4, E_dict, sizes[radius], twisted=true)
|
||||||
RSOutFN = GroupRing(SOutFN, E4, E_dict, pm)
|
RG = GroupRing(G, E4, E_dict, pm)
|
||||||
Δ = PropertyT.splaplacian(RSOutFN, S)
|
Δ = PropertyT.splaplacian(RG, S)
|
||||||
@assert augmentation(Δ) == 0
|
@assert augmentation(Δ) == 0
|
||||||
save(joinpath(name, "delta.jld"), "Δ", Δ.coeffs)
|
save(joinpath(name, "delta.jld"), "Δ", Δ.coeffs)
|
||||||
save(joinpath(name, "pm.jld"), "pm", pm)
|
save(joinpath(name, "pm.jld"), "pm", pm)
|
||||||
|
|
||||||
|
N = length(G.objectGroup.gens)
|
||||||
info("WreathProduct")
|
info("WreathProduct")
|
||||||
@time BN = WreathProduct(Nemo.FiniteField(2,1, "a")[1], PermutationGroup(N))
|
@time BN = WreathProduct(Nemo.FiniteField(2,1, "a")[1], PermutationGroup(N))
|
||||||
|
|
||||||
@ -280,7 +276,7 @@ function compute_orbit_data(name::String, N::Int)
|
|||||||
save(joinpath(name, "orbits.jld"), "orbits", orbs)
|
save(joinpath(name, "orbits.jld"), "orbits", orbs)
|
||||||
|
|
||||||
info("Action matrices")
|
info("Action matrices")
|
||||||
E2 = E4[1:sizes[2]]
|
E2 = E4[1:sizes[radius]]
|
||||||
@time BNactionE_mreps = action_mreps(BN, E2, E_dict)
|
@time BNactionE_mreps = action_mreps(BN, E2, E_dict)
|
||||||
|
|
||||||
info("Projections")
|
info("Projections")
|
||||||
@ -295,7 +291,7 @@ function compute_orbit_data(name::String, N::Int)
|
|||||||
@show multiplicities
|
@show multiplicities
|
||||||
dimensions = [Int(p[BN()]*Int(order(BN))) for p in BN_mps];
|
dimensions = [Int(p[BN()]*Int(order(BN))) for p in BN_mps];
|
||||||
@show dimensions
|
@show dimensions
|
||||||
@assert dot(multiplicities, dimensions) == sizes[2]
|
@assert dot(multiplicities, dimensions) == sizes[radius]
|
||||||
|
|
||||||
save(joinpath(name, "U_pis.jld"), "Uπs", Uπs, "dims", dimensions)
|
save(joinpath(name, "U_pis.jld"), "Uπs", Uπs, "dims", dimensions)
|
||||||
return 0
|
return 0
|
||||||
|
Loading…
Reference in New Issue
Block a user