externalise Group from compute_orbit_data

This commit is contained in:
kalmar 2017-06-06 17:53:03 +02:00
parent 3059142db0
commit 5e04690722

View File

@ -250,27 +250,23 @@ function Uπ_matrices(P_matrices; orth=orthSVD)
return U_p_matrices
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)
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")
@time E4, sizes = generate_balls(S, SOutFN(), radius=4);
@time E4, sizes = generate_balls(S, G(), radius=2*radius);
info("Reverse dict")
@time E_dict = GroupRings.reverse_dict(E4)
info("Product matrix")
@time pm = GroupRings.create_pm(E4, E_dict, sizes[2], twisted=true)
RSOutFN = GroupRing(SOutFN, E4, E_dict, pm)
Δ = PropertyT.splaplacian(RSOutFN, S)
@time pm = GroupRings.create_pm(E4, E_dict, sizes[radius], twisted=true)
RG = GroupRing(G, E4, E_dict, pm)
Δ = PropertyT.splaplacian(RG, S)
@assert augmentation(Δ) == 0
save(joinpath(name, "delta.jld"), "Δ", Δ.coeffs)
save(joinpath(name, "pm.jld"), "pm", pm)
N = length(G.objectGroup.gens)
info("WreathProduct")
@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)
info("Action matrices")
E2 = E4[1:sizes[2]]
E2 = E4[1:sizes[radius]]
@time BNactionE_mreps = action_mreps(BN, E2, E_dict)
info("Projections")
@ -295,7 +291,7 @@ function compute_orbit_data(name::String, N::Int)
@show multiplicities
dimensions = [Int(p[BN()]*Int(order(BN))) for p in BN_mps];
@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)
return 0