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
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user