From f0ee0a0ae6a0d6fb86c34421e40efcedc34df9f7 Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 1 Jul 2019 12:01:30 +0200 Subject: [PATCH] made pseudos a bit more consistent with defaults --- src/defaults.jl | 8 ++++---- src/structure.jl | 3 ++- test/defaults_tests.jl | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/defaults.jl b/src/defaults.jl index 0e4b36c7..ba92f536 100644 --- a/src/defaults.jl +++ b/src/defaults.jl @@ -2,11 +2,11 @@ # const default_file = abspath(homedir(),".julia","config","DFControl", "user_defaults.jl") const default_file = occursin("cache", first(Base.DEPOT_PATH)) ? abspath(Base.DEPOT_PATH[2], "config","DFControl", "user_defaults.jl") : abspath(Base.DEPOT_PATH[1], "config","DFControl", "user_defaults.jl") const default_pseudodirs = Dict{Symbol, String}() -const default_pseudos = Dict{Symbol, Dict{Symbol, Vector{String}}}() +const default_pseudos = Dict{Symbol, Dict{Symbol, Vector{Pseudo}}}() const default_jobheader = [""] for el in ELEMENTS - default_pseudos[el.symbol] = Dict{Symbol, Vector{String}}() + default_pseudos[el.symbol] = Dict{Symbol, Vector{Pseudo}}() end const default_server = "localhost" @@ -109,11 +109,11 @@ function configuredefault_pseudos(;server = getdefault_server(), pseudo_dirs=get pseudo = pseudos[i] element = Symbol(titlecase(String(split(split(pseudo, ".")[1], "_")[1]))) if element in elsyms - t = String[pseudo] + t = Pseudo[Pseudo(pseudo, pseudo_dirs[name])] # t_expr = :(String[$pseudo]) j = 1 while j + i <= length(pseudos) && Symbol(split(pseudos[i + j],".")[1]) == element - push!(t, pseudos[i + j]) + push!(t, Pseudo(pseudos[i + j], pseudo_dirs[name])) # push!(t_expr.args,pseudos[i + j]) j += 1 end diff --git a/src/structure.jl b/src/structure.jl index f8c34919..7e6f3433 100644 --- a/src/structure.jl +++ b/src/structure.jl @@ -124,7 +124,7 @@ function setpseudos!(structure::AbstractStructure, atoms::Vector{<:AbstractAtom} return end for (i, at) in enumerate(atoms) - pseudo = Pseudo(getdefault_pseudo(name(at), set, specifier=specifier), dir) + pseudo = getdefault_pseudo(name(at), set, specifier=specifier) if pseudo == nothing @warn "Pseudo for $(name(at)) at index $i not found in set $set." else @@ -177,6 +177,7 @@ function scale_cell!(structure::Structure, v) for at in atoms(structure) at.position_cart = structure.cell' * at.position_cryst end + structure.cell end function set_magnetization!(str::Structure, atsym_mag::Pair{Symbol, <:AbstractVector}...) diff --git a/test/defaults_tests.jl b/test/defaults_tests.jl index a146381d..6cefa93c 100644 --- a/test/defaults_tests.jl +++ b/test/defaults_tests.jl @@ -7,5 +7,5 @@ setdefault_server("localhost") setdefault_pseudodir(:test, joinpath(testdir, "testassets", "pseudos")) configuredefault_pseudos(pseudo_dirs=Dict(:test => getdefault_pseudodirs()[:test])) -@test DFControl.getdefault_pseudo(:Pt, :test) == "Pt.UPF" +@test DFControl.getdefault_pseudo(:Pt, :test) == Pseudo("Pt.UPF",joinpath(testdir, "testassets", "pseudos")) @test DFControl.getdefault_server() == "localhost"