diff --git a/src/qe/fileio.jl b/src/qe/fileio.jl index e76490ba..f27c6685 100644 --- a/src/qe/fileio.jl +++ b/src/qe/fileio.jl @@ -783,22 +783,20 @@ function qe_read_input(filename; execs=[Exec("pw.x")], run=true, structure_name= if !haskey(parsed_flags, sym) if typ <: AbstractMatrix parsed_flags[sym] = length(parsedval) == 1 ? zeros(eltype(typ), ntyp, 10) : fill(zeros(eltype(typ), length(parsedval)), ntyp, 10) #arbitrary limit - else + elseif typ <: AbstractVector parsed_flags[sym] = length(parsedval) == 1 ? zeros(eltype(typ), ntyp) : fill(zeros(eltype(typ), length(parsedval)), ntyp) + else + dims = fill(nat, ndims(typ)-1) + parsed_flags[sym] = zeros(eltype(typ), dims..., 3) end end - if length(ids) == 1 - parsed_flags[sym][ids[1]] = length(parsedval) == 1 ? parsedval[1] : parsedval - else - parsed_flags[sym][ids[1], ids[2]] = length(parsedval) == 1 ? parsedval[1] : parsedval - end + parsed_flags[sym][ids...] = length(parsedval) == 1 ? parsedval[1] : parsedval end structure = extract_structure!(structure_name, parsed_flags, cell_block, atsyms, atom_block, pseudos) delete!.((parsed_flags,), [:ibrav, :nat, :ntyp, :A, :celldm_1, :celldm]) delete!.((parsed_flags,), [:Hubbard_U, :Hubbard_J0, :Hubbard_alpha, :Hubbard_beta, :Hubbard_J]) delete!.((parsed_flags,), [:starting_magnetization, :angle1, :angle2]) #hubbard and magnetization flags - # elseif haskey(parsed_flags, :celldm) && parsed_flags[:celldm] != - + else structure = nothing end diff --git a/src/serverAPI.jl b/src/serverAPI.jl index a861e71d..3624a68d 100644 --- a/src/serverAPI.jl +++ b/src/serverAPI.jl @@ -68,12 +68,10 @@ function slurm_isrunning(job::DFJob) runslocal_assert(job) id = slurm_jobid(job) if id != -1 - if slurm_process_command(`sacct -j $id --format=state`)[1] == "RUNNING" - return true - else - return false - end + line = getfirst(x -> occursin("JobState", x), slurm_process_command(`scontrol show job $id`)) + return split(split(line)[1], "=")[2] == "RUNNING" else + @warn "No jobid found. Was your job submitted through slurm?" return false end end