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,))
# cached
Δ = loadLaplacian(filename(sett,), sett.G)
@info("Loading precomputed Δ...")
Δ = loadGRElem(filename(sett,), sett.G)
else
# compute
Δ = Laplacian(sett.S, sett.radius)
saveLaplacian(filename(sett, ), Δ)
saveGRElem(filename(sett, ), Δ)
end
if !sett.warmstart && isfile(filename(sett, :solution))

View File

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