1
0
mirror of https://github.com/kalmarek/PropertyT.jl.git synced 2024-09-13 08:35:40 +02:00

rework loading/saving GroupRingElems

This commit is contained in:
kalmarek 2019-01-11 06:33:14 +01:00
parent 10d319f48b
commit 0614bf268d
2 changed files with 19 additions and 13 deletions

View File

@ -207,11 +207,12 @@ function check_property_T(sett::Settings)
if isfile(filename(sett,)) if isfile(filename(sett,))
# cached # cached
Δ = loadLaplacian(filename(sett,), sett.G) @info("Loading precomputed Δ...")
Δ = loadGRElem(filename(sett,), sett.G)
else else
# compute # compute
Δ = Laplacian(sett.S, sett.radius) Δ = Laplacian(sett.S, sett.radius)
saveLaplacian(filename(sett, ), Δ) saveGRElem(filename(sett, ), Δ)
end end
if !sett.warmstart && isfile(filename(sett, :solution)) if !sett.warmstart && isfile(filename(sett, :solution))

View File

@ -45,19 +45,24 @@ function Laplacian(S, Id, radius)
return Δ return Δ
end end
function saveGRElem(filename::String, g::GroupRingElem) function saveGRElem(fname::String, g::GroupRingElem)
RG = parent(g) RG = parent(g)
JLD.save(filename, "coeffs", g.coeffs, "pm", RG.pm, "G", RG.group) JLD.save(fname, "coeffs", g.coeffs, "pm", RG.pm, "G", RG.group)
end
function loadGRElem(fname::String, RG::GroupRing)
coeffs = load(fname, "coeffs")
return GroupRingElem(coeffs, RG)
end end
function loadGRElem(fname::String, G::Group) function loadGRElem(fname::String, G::Group)
if isfile(fname) pm = load(fname, "pm")
@info("Loading precomputed Δ...")
coeffs, pm = load(fname, "coeffs", "pm")
RG = GroupRing(G, pm) RG = GroupRing(G, pm)
Δ = GroupRingElem(coeffs, RG) return loadGRElem(fname, RG)
else end
throw(ErrorException("You need to precompute $fname first!"))
end function loadGRElem(fname::String)
return Δ pm, G = load(fname, "pm", "G")
RG = GroupRing(G, pm)
return loadGRElem(fname, RG)
end end