Sha256: 2bd09c84875da8634a27bbbe07b82c0f4097a4fc9d307bca680e06e76dbcfa8f

Contents?: true

Size: 1.87 KB

Versions: 1

Compression:

Stored size: 1.87 KB

Contents

#! /usr/bin/env ruby
# coding: utf-8

USAGE = <<HERE
    USAGE: setvaspgeomopt <-i|-n|-r> [-Y|-N] target_dirs ...
HERE

require "optparse"
require "fileutils"
require "rubygems"
require "comana"
require "vasputils"

## option analysis
OPTIONS = {}
op = OptionParser.new
op.on("-i", "--reset-init", "Remain only 'geomopt00/{INCAR,KPOINTS,POSCAR,POTCAR}'."){OPTIONS[:init] = true}
op.on("-n", "--next" , "Next vasp for geometry optimization."){OPTIONS[:next] = true}
op.on("-r", "--reincarnate", "Like reset, but generate 'geomopt00' using final CONTCAR."){OPTIONS[:reincarnate] = true}

#op.on("-Y", "--yes", "Answer 'yes' to all questions."){OPTIONS[:yes] = true}
#op.on("-N", "--no",    "Answer 'no'    to all questions."){OPTIONS[:no ] = true}
op.parse!(ARGV)

def check_options(opts)
    modes = [opts[:init], opts[:next], opts[:reincarnate]]
    return false unless modes.select{|t| t ==true}.size == 1

    #return false if (opts[:yes] && opts[:no])
    return true
end

unless check_options(OPTIONS)
    puts USAGE
    exit
end

tgts = ARGV
tgts = [ENV['PWD']] if tgts.size == 0

#pp OPTIONS; exit
#pp tgts; exit
#
tgts.each do |tgt_dir|
    puts "Directory: #{tgt_dir}"

    # Check tgt_dir is VaspDir?
    begin
        tgt = VaspUtils::VaspGeometryOptimizer.new(tgt_dir)
    rescue VaspUtils::VaspGeometryOptimizer::NoVaspDirError
        puts "  Not VaspGeometryOptimizer: #{tgt_dir}"
        next
    end

    if OPTIONS[:init]
        puts "  Back to init: #{tgt_dir}"
        tgt.reset_init
    end

    if OPTIONS[:next]
        puts "  Generate next: #{tgt_dir}"
        #begin
            tgt.reset_next
        #rescue VaspUtils::VaspGeometryOptimizer::NoContcarError
            #puts "  CONTCAR not exist in latest_dir: #{tgt_dir}"
        #end
    end

    if OPTIONS[:reincarnate]
        puts "  Reincarnate(generate dir as new calc): #{tgt_dir}"
        tgt.reset_reincarnate
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vasputils-0.0.12 bin/resetvaspgeomopt