¡¾µ÷¼Á¡¿±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2024Äê16¸öרҵ½ÓÊܵ÷¼Á
²é¿´: 8402  |  »Ø¸´: 30
¡¾Óн±½»Á÷¡¿»ý¼«»Ø¸´±¾Ìû×Ó£¬²ÎÓë½»Á÷£¬¾ÍÓлú»á·ÖµÃ×÷Õß cenwanglai µÄ 5 ¸ö½ð±Ò

[½»Á÷] ¡¾ÌÖÂÛ¡¿¶Á¶®split_dos£¬Ñ§»álinux shell±à½Å±¾´¦ÀíÊý¾Ý

ÏÂÃæÊÇ´¦ÀíVASPÊä³öÊý¾ÝµÃµ½Ì¬ÃܶȵĽű¾Îļþsplit_dos,ÓëËüÅäºÏµÄvpûÓÐÌù³öÀ´¡£Ñ§Ï°vaspÈç¹û»áһЩshell±à³Ì£¬¶ÔvaspµÄÔËÓûá¸üÁé»î·½±ã¡£Õâ¸ö³ÌÐòÌý˵±È½ÏÀÏ£¬ÓÐЩÎÊÌ⣬²»ÄÜÖ±½ÓÓÃÀ´´¦Àívasp4.6¼°ÒÔÉÏ°æ±¾µÄÊý¾Ý£¬Ò²²»ÄÜ´¦Àífµç×Ó¡£ÓÐÐËȤµÄ¿ÉÒÔ¹Øעһϣ¬¿´¿´Óï·¨±¾Éí£¬»òÕßÌá³öÐÞ¸ÄÒâ¼û£¬¶¼ÓÐBB¹ÄÀø¡£
:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D:D


#!/bin/ksh


# Script to break the VASP DOSCAR file into segments for
# each atomic site.
# JMS NRL 5/0/02

# Modified to also align the Fermi level from the ground state
# to E=0.0
# JMS NRL 6/19/02


# Executables reside here
BIN=~/bin                      #°ÑÕâÀïÐÞ¸ÄΪvp±£´æµÄ·¾¶¡£È»ºó°Ñsplit_dosµÄ·¾¶Ìí¼Óµ½PATHÖС£


if [ $# -ne 0 ]; then       #Ö±½ÓÔÚshellÌáʾ·ûÏÂÊäÈësplit_dosÔËÐУ¬·ñÔòÌáÐÑUsage: split_dos,·µ»ØÐÅÏ¢2.
        echo "Usage: split_dos"
        exit 2
fi

# Script to split the DOSCAR file into the atomic
# projections labeled by atom number
dosfile=DOSCAR
outfile=OUTCAR
infile=INCAR


# Token for splitting the files
token=$(sed -n '6 p' $dosfile | awk '{print $1}')   #Õâ¸ötokenºóÃæºÃÏñûÓÐÓõ½£¬ÓÐʲôÓÃÄØ£¿

# Number of points
nl=$(sed -n '6 p' $dosfile | awk '{print $3}')

# Number of atoms
natom=$(sed -n '1 p' $dosfile | awk '{print $1}')


# Get the Fermi level if the OUTCAR file is present,
# else we set it to zero.
if [ -a $outfile ]; then
    echo "The" $outfile "exists, we use it to get the Fermi level,"
    echo "the RWIGS tag and the number of spins."
    efermi=$(grep "E-fermi" $outfile | tail -1 | awk '{print $3}')
    echo "Fermi level:" $efermi
    nspin=$(grep "ISPIN" $outfile | tail -1 | awk '{print $3}')
    if [ $nspin -eq 2 ]; then
        echo "Spin polarized calculation"
    else
        echo "Unpolarized calculation"
    fi

# 2.a
# JMS 2/3/03 Modified to accept specification by LORBIT token.
#
    lorbit=$(grep "LORBIT" $outfile | tail -1 | awk '{print $3}')
    if [ $lorbit -ge 10 ]; then
        echo "LORBIT > 10"
        echo "WARNING: not completely test for vasp.4.*"
        echo "Use at your own risk. Please check results for consistency."
        form=1
    else
# 2.a
        rwigs=$(grep "RWIGS" $outfile | tail -1 | awk '{print $3}' | sed 's/\.//g')
        if [ $rwigs -eq -100 ]; then
            echo "RWIGS token not set"
            form=0
        else
            echo "RWIGS token set"
            form=1
        fi
# 2.a
    fi
# 2.a

else
    echo "The" $outfile "does not exist, we set the Fermi level to 0"
    echo "assume an unpolarized calculation, and RWIGS not set"
    form=0
    nspin=1
    efermi=0.0
fi

# If the outcar file is not present and you wish to set something by hand
# you should do it here. Uncomment the tokens below and set them by hand.

#efermi=2.255
#form=
#nspin=

# Get the atomic coordinates
$BIN/vp >| tmp.dat
tail -$natom tmp.dat | awk '{printf "%s %12.8f %12.8f %12.8f \n", "#", $2, $3, $4}' >| tmp.dat2

# Total is first DOS
if [ $form -eq 0 ]; then   #Õâ¸öºÜ¹Ö£¬ÎªÊ²Ã´²»Ö±½Ói=0ÄØ£¿
i=0
else
i=0
fi               

start=7
end=$((start+nl-1))
#echo $start $end
#exit 0
rm -f DOS0
if [ $form -eq 1 ]; then

    while [ $i -le $natom ]; do

            #echo $i $start $end

        if [ $i -gt 0 ]; then
            sed -n ''$i' p' tmp.dat2 >| DOS$i #¶ÁÈë¶ÔÓ¦Ô­×ÓλÖÃ×ø±êµ½DOSiµÚÒ»ÐÐ
        fi

        if [ $i -gt 0 ]; then

# Atomic projected DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5, $6, -1*$7}' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3, $4 }' >> DOS$i
            fi               

        else

# Total DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' >> DOS$i
            fi

        fi

        start=$((end+2))
        end=$((start+nl-1))
        i=$((i+1))
    done

else

    while [ $i -le 0 ]; do    #Õâ¸öÆæ¹Ö£¬ÎªÊ²Ã´ÒªÌÖÂÛi<0ÄØ£¿²»ÊÇÖ»Ð迼ÂÇi>=0Âð£¿Ç°ÃæÒѾ­È«²¿°üº¬Á˵Äѽ£¿

            #echo $i $start $end

        if [ $i -gt 0 ]; then
            sed -n ''$i' p' tmp.dat2 >| DOS$i
        fi

        if [ $i -gt 0 ]; then

# Atomic projected DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5, $6, -1*$7}' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3, $4 }' >> DOS$i
            fi               

        else

# Total DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' >> DOS$i
            fi

        fi

        start=$((end+2))
        end=$((start+nl-1))
        i=$((i+1))
    done

fi

exit 0

[ Last edited by cenwanglai on 2010-8-13 at 20:30 ]
»Ø¸´´ËÂ¥

» ÊÕ¼±¾ÌûµÄÌÔÌùר¼­ÍƼö

VASP VASP ¼ÆËã-vasp µÚÒ»ÐÔ
¾«»ªÌûºÄ×ÊÔ´ DOS¼ÆËã µÚÒ»ÐÔÔ­ÀíºÍµç»¯Ñ§

» ±¾ÌûÒÑ»ñµÃµÄºì»¨£¨×îÐÂ10¶ä£©

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍƼö£¬¶ÔÄúͬÑùÓаïÖú:

» ÇÀ½ð±ÒÀ²£¡»ØÌû¾Í¿ÉÒԵõ½:

²é¿´È«²¿É¢½ðÌù

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
»ØÌûÖ§³Ö ( ÏÔʾ֧³Ö¶È×î¸ßµÄÇ° 50 Ãû )
¡ï ¡ï
cenwanglai(½ð±Ò+1):лл²ÎÓë
zzy870720z(½ð±Ò+1):лл½»Á÷ 2010-09-23 12:01:20
cenwanglai(½ð±Ò+5):¿´¿´ÏÈ£¬ºÇºÇ¡£Ð»Ð»·ÖÏí£¡ 2010-09-24 09:39:44
cenwanglai(½ð±Ò+2):лл»Ø¸´£¡ 2010-09-29 11:13:12
ÎÒµÄÊäÈë·¨²»ÊǺܺÃËùÒÔ¾­³£Óдí±ð×Ö£¬±§Ç¸£¬·¢ÏÖÇë¸æÖª


ÏÂÃ濪ʼÁË£º
#!/bin/ksh
#kshÊÇlinuxÏÂÃæµÄÒ»ÖÖshell£¬Ö¸¶¨shellÀàÐÍ¡£ÁíÒ»¸ö³£ÓõÄshellÊÇbash¡£ÓÐЩϵͳĬÈÏÊÇbash¶øûÓа²×°ksh£¬ÔËÐÐÕâ¸ö½Å±¾¾Í»á³ö´í¡£


# Script to break the VASP DOSCAR file into segments for
# each atomic site.
# JMS NRL 5/0/02

# Modified to also align the Fermi level from the ground state
# to E=0.0
# JMS NRL 6/19/02
#×¢ÊÍÐÅÏ¢¡£split_dosÊÇJMS NRL·¢²¼µÄ´¦ÀíVASPÊäÈëÊä³öÎļþµÄ½Å±¾°üÖеÄÒ»¸ö¡£

# Executables reside here
#BIN=~/bin
#ÕâÀï¿ÉÒÔͨ¹ýÉèÖÃÖ´ÐÐÎļþµÄλÖã¬Ò²¿ÉÒÔÉèÖÃPATH»·¾³±äÁ¿£¬ÀýÈ磺
#export PATH=$PATH: (vpºÍsplit_dosËùÔÚµÄÎļþ¼Ð)
# GH: replace this so that it looks for vp in the same directory as this script
EXE=$0
#$0¼´Õâ¸ö½Å±¾split_dos£¬ÊÇÍêÕû·¾¶
BIN=${EXE%/*}
#±äÁ¿Ìæ»»£¬»ñµÃsplit_dosËùÔÚµÄÎļþ¼Ð¡£%±íʾ´ÓºóÍùÇ°´¦Àí×Ö·û´®EXE,ɾ³ýÆ¥Åä"/*"ÕýÔò±í´ïʽµÄ²¿·Ö,ÔÚbashÏÂÃæÊÔÊÔÄã¾ÍÖªµÀÁË¡£

if [ $# -ne 0 ]; then
        echo "Usage: split_dos"
        exit 2
fi
#$#±íʾ¸úÔÚsplit_dosµÄ²ÎÊý¸öÊý¡£split_dosÊDz»´ø²ÎÊýµÄ£¬ËùÒÔÈç¹û$#!=0˵Ã÷ÊäÈë´íÎó£¬Í£Ö¹³ÌÐò¡£

# Script to split the DOSCAR file into the atomic
# projections labeled by atom number
dosfile=DOSCAR
outfile=OUTCAR
infile=INCAR
#¶¨ÒåÊäÈëÎļþ


# Token for splitting the files
token=$(sed -n '6 p' $dosfile | awk '{print $1}')
#ÕâÑùµÃµ½µÄÊÇDOSCARÖеÄ×î¸ßÄÜÁ¿Öµ
#|ÊǹܵÀ£¬°Ñ×ó±ßµÄÃüÁîµÄÊä³öÊä³ö¸øÓұߵÄÃüÁî×÷ΪÊäÈë¡£
#sedµÄ×÷ÓÃÊÇÊäÈëµÚÁùÐУ¬p±íʾ´ðÓ¦,-nÑ¡ÏîÊDz»Êä³öÆäËûÐУ¨Ä¬ÈÏ»á´òÓ¡Õû¸öÎļþ£©¡£
#awk¾ÍÊÇ°ÑÎļþ·Ö¸î³ÉºÜ¶àÁУ¬$1±íʾµÚÒ»ÁУ¬print¾ÍÊÇÊä³öµÚÒ»ÁС£¿ÉÒÔͨ¹ýÊýѧ±í´ïʽ¶ÔÊä³öµÄÁнøÐмÆË㣬ÀýÈç:print $1^2£¬±íʾÊä³öƽ·½¡£
#sed ºÍawkÊǺÜÇ¿´óµÄÎı¾ºÍ×Ö·û´®´¦Àí¹¤¾ß£¬¹¦ÄÜûÓÐperlÇ¿´óµ«ÊÇ·½±ã¿ì½Ý£¬ÊʺÏÔÚshellscriptÖÐÓá£Ç¿ÁÒ½¨ÒéѧϰһÏ»ù±¾Ó÷¨¡£

# Number of points
nl=$(sed -n '6 p' $dosfile | awk '{print $3}')
#µÃµ½DOSCARÖеķÖÁ¢ÄÜÁ¿Öµ£¬¼´×î¸ßµ½×îµÍÖжàÉÙ¸öÄÜÁ¿£¬Ò²¾ÍÊÇÓжàÉÙÐÐÒª´¦Àí¡£

# Number of atoms
natom=$(sed -n '1 p' $dosfile | awk '{print $1}')
#Ô­×Ó¸öÊý£¬×îºó»áµÃµ½¶àÉÙDOSÎļþÈ¡¾öÓÚÕâ¸öÊý¡£

# Get the Fermi level if the OUTCAR file is present,
# else we set it to zero.
if [ -a $outfile ]; then
#Èç¹û´æÔÚOUTCAR£¬ÈçÏ´¦Àí
    echo "The" $outfile "exists, we use it to get the Fermi level,"
    echo "the RWIGS tag and the number of spins."
    efermi=$(grep "E-fermi" $outfile | tail -1 | awk '{print $3}')
#»ñÈ¡FermiÄÜ
#grepÊÇÒ»¸ö»ù±¾¶øÇ¿´óµÄËÑË÷Îı¾µÄ¹¤¾ß£¨²»ÊÇshell×Ô´ø£©£¬¿ÉÒÔÊä³öÎı¾ÖÐÆ¥ÅäÕýÔò±í´ïʽµÄÐС£
#tail±íʾÊä³öÎļþµÄĩβ¡£-1±íʾ×îºóÒ»ÐУ¬-10¾Í±íʾ×îºó10ÐУ¨Ä¬ÈÏ£©¡£
    echo "Fermi level:" $efermi
    nspin=$(grep "ISPIN" $outfile | tail -1 | awk '{print $3}')
#ÅжÏÊÇ·ñÓÐ×ÔÐý
    if [ $nspin -eq 2 ]; then
        echo "Spin polarized calculation"
    else
        echo "Unpolarized calculation"
    fi

# 2.a
# JMS 2/3/03 Modified to accept specification by LORBIT token.
#
    lorbit=$(grep "LORBIT" $outfile | tail -1 | awk '{print $3}')
#»ñÈ¡LORBITµÄÖµ
    if [ $lorbit -eq 10 ]; then
        echo "LORBIT = 10"
        echo "WARNING: not completely test for vasp.4.*"
        echo "Use at your own risk. Please check results for consistency."
        form=1
    elif [ $lorbit -eq 11 ];then
        echo "LORBIT = 11"
        echo "WARNING: not completely test for vasp.4.*"
        echo "Use at your own risk. Please check results for consistency."
        form=2
    else
#²»Í¬µÄLORBIT²ÉÓò»Í¬µÄ´¦Àí,ÓÐformÕâ¸ö±äÁ¿±êÖ¾¡£
# 2.a
    rwigs=$(grep "RWIGS" $outfile | tail -1 | awk '{print $3}' | sed 's/\.//g')
#»ñÈ¡ËùνµÄwig°ë¾¶
        if [ $rwigs -eq -100 ]; then
            echo "RWIGS token not set"
            form=0
        else
            echo "RWIGS token set"
            form=1
        fi
    fi
# 2.a

else
#Èç¹ûûÓÐOUTCAR£¬ÄǾÍ×Ô¼ºÉèÖÃһЩ²ÎÊý£º·Ç×ÔÐý¼«»¯¼ÆË㣬·ÑÃ×ÄÜΪ0.
    echo "The" $outfile "does not exist, we set the Fermi level to 0"
    echo "assume an unpolarized calculation, and RWIGS not set"
    form=0
    nspin=1
    efermi=0.0
fi

# If the outcar file is not present and you wish to set something by hand
# you should do it here. Uncomment the tokens below and set them by hand.
#ÕâÀïÊÇÈç¹ûÄãÒª¶à´Î´¦ÀíһЩÎļþ£¬Í¬Ê±ÓÖûÓÐOUTCARÎļþÄÇô¿ÉÒÔÔÚÕâÀïÉèÖ÷ÑÃ×ÄÜ¡£
#efermi=2.255
#form=
#nspin=



# Get the atomic coordinates
$BIN/vp >| tmp.dat
tail -$natom tmp.dat | awk '{printf "%s %12.8f %12.8f %12.8f \n", "#", $2, $3, $4}' >| tmp.dat2
#µ÷ÓÃvp´ÓPOSCARÖлñµÃÔ­×ÓµÄλÖÃ,È»ºóÓÃtailºÍawk»ñµÃ¾ßÌåµÄÔ­×Ó×ø±ê£¬²¢ÇÒÇ°Ãæ¼ÓÉÏ#£¬·½±ãºóÃægnuplot»­Í¼¡£
#>±íʾÖØж¨Ïò£¬°Ñ±¾À´vpÊä³öµ½Öն˵Ľá¹ûÊä³öµ½Îļþtmp.datÖÐ
#ʹÓÃ>ҪעÒ⣬Èç¹ûÖ»ÊǸ½¼Ó¶ø²»ÊÇн¨ÄÇô±ØÐëÓÃ>>¶ø·Ç>
#³ý´ËÖ®Í⣬>ÊÇÕâÑùµÄ¹¤×÷µÄ£¬Ëü»á×óÓÒÁ½±ßµÄÃüÁîͬʱÔËÐУ¨Ö»ÊÇÒ»¸öÖ±½ÓÔËÐжøÒ»¸öµÈ´ýÊäÈ룩¶ø²»ÊǵÈÒ»¸öÔËÐÐÍêÖ®ºó²ÅÔËÐеڶþ¸ö¡£ËùÒÔ²»ÒªÖ´ÐÐÕâÖÖÃüÁcat a.txt > a.txt£¬ÕâÑùÄãÖ»»áµÃµ½Ò»¸ö¿Õ°×Îļþ£¬ÒòΪ>ÔÚcatµÄʱºòͬʱ´´½¨ÁËa.txt¿Õ°×ÎļþµÈ´ýÊäÈëͬʱ¾Í°ÑÔ­À´µÄa.txt¸²¸ÇµôÁË£¬ËùÒÔcat a.txt¾ÍÖ»ÊÇ¿Õ°×,ÖØж¨ÏòÊäÈëµ½a.txtÒ²¾ÍÊǿհס£

# Total is first DOS
i=0
#֮ǰµÄifÓï¾äûÓÐÓã¬ÊÇÒòΪ֮ǰµÄÐ޸ĶøÁôϵÄÈßÓàÓï¾ä¡£
#Õâ¸öiÊDZê¼ÇµÚ¼¸¸öÔ­×ӵıäÁ¿¡£

start=7
end=$((start+nl-1))
#´ÓµÚ7Ðе½µÚendÐпªÊ¼Êä³öDOS
echo $start $end
#exit 0
rm -f DOS0
if [ $form -eq 1 ]; then
#LORBIT=10
    while [ $i -le $natom ]; do
#ÊäÈëËùÓеÄÔ­×Ó£¬ÓÃwhileÓï¾äʵÏÖ£ºiСÓÚÔ­×ÓÊý£¬ÄÇôÊä³ö
        echo $i $start $end

        if [ $i -gt 0 ]; then
#²¢·ÇtotalDOS£¬ÄÇôÔÚµÚÒ»ÐÐÖмÓÈëÔ­×ÓλÖã¬Êä³öµ½DOS$iÎļþ
                        sed -n ''$i' p' tmp.dat2 >| DOS$i
        fi

        if [ $i -gt 0 ]; then

# Atomic projected DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5, $6, -1*$7}' >> DOS$i
#Èç¹ûÊÇ×ÔÐý¼ÆË㣬ÄÇô¾Í°´¸ñʽÊä³ö£¬²¢ÇÒ°Ñ×ÔÐý³¯ÏµijËÒÔ-1,·½±ãºóÃ滭ͼ¡£
#sedÖ¸¶¨Êä³ö´Óstartµ½endµÄÐУ¬awkÖ¸¶¨Êä³ö¸ñʽ²¢ÇÒ×öÄÜÁ¿µÄ´¦Àí£¨Æ½ÒÆ·ÑÃ×Äܵ½Áãµã£©
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3, $4 }' >> DOS$i
#ûÓÐ×ÔÐý¾Í¼òµ¥¶àÁË£¬Ö»ÐèҪƽÒƾͿÉÒÔÁË¡£
fi

        else

# Total DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' >> DOS$i
            fi
#¶ÔtotaldosµÄ´¦Àí
        fi

        start=$((end+2))
        end=$((start+nl-1))
        i=$((i+1))
Òƶ¯µ½ÏÂÒ»¸öÔ­×ÓµÄÊä³ö£¬Ö»ÐèÒª¿ØÖÆstartºÍend¾Í¿ÉÒÔÁË£¬²¢ÇÒÐÞ¸ÄiµÄ´óС¡£
    done

elif [ $form -eq 0 ];then
# the form=0 is an unkown code!
    while [ $i -le 0 ]; do
#ÕâÀï-leÓ¦¸Ã»»³É-eqÒ²¿ÉÒÔ,Ò²¼´ÊÇ˵µÈÓÚ0¾ÍÊÇtotaldos¾Í²»Êä³öÔ­×Ó×ø±êÁË¡£
        echo $i $start $end

        if [ $i -gt 0 ]; then
            sed -n ''$i' p' tmp.dat2 >| DOS$i
        fi

        if [ $i -gt 0 ]; then

# Atomic projected DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5, $6, -1*$7}' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3, $4 }' >> DOS$i
            fi

        else

# Total DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' >> DOS$i
            fi

        fi

        start=$((end+2))
        end=$((start+nl-1))
        i=$((i+1))
    done
#ÒÔÉ϶¼ÊǺÍform=1ÊÇÒ»ÑùµÄ
elif [ $form -eq 2 ];then
#ÕâÀïÊÇÎÒ´¦ÀíµÄLORBIT=11µÄʱºò¼ÓÈëµÄ¡£Ö÷ÒªÊÇÐÞ¸ÄawkµÄÊä³ö¸ñʽ
    while [ $i -le $natom ]; do

        echo $i $start $end

        if [ $i -gt 0 ]; then
            sed -n ''$i' p' tmp.dat2 >| DOS$i
        fi

        if [ $i -gt 0 ]; then

# Atomic projected DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5, $6, -1*$7,$8,-1*$9,$10,-1*$11,$12,-1*$13,$14,-1*$15,$16,-1*$17,$18,-1*$19}' >> DOS$i
#ÕâÀïÊÇÒªÃüµÄawkÊä³ö£¬Æäʵ¾Í³¤Ò»µã£¬¸ñʽûÓÐʲôÀ§ÄÑ¡£
#ÕâÀïµÄÎÊÌâÊDz»ÂÛÊÇÔ­×Ó£¬¶¼»áÊä³öÕâô³¤µÄÒ»´®£¬¼´Ê¹Ã»ÓÐd£¬f¹ìµÀ£¬µ«¶¼ÊÇ0.ÕâÊÇVASPµÄÎÊÌ⣬²»ÊÇÕâ¸ö½Å±¾µÄÎÊÌâ¡£
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3, $4,$5,$6,$7,$8,$9,$10 }' >> DOS$i
            fi

        else

# Total DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' >> DOS$i
            fi

        fi

        start=$((end+2))
        end=$((start+nl-1))
        i=$((i+1))
    done
#ÆäËûµÄ¶¼Ã»ÓÐʲôÐèÒª¸ÄµÄÁË
fi

exit 0
#ÕâÀïÍ£Ö¹³ÌÐò²¢¸ø³öÒ»¸ö0µÄ״̬·û£¬ÊǸöºÃµÄÏ°¹ß£¬·½±ã±ðÈ˵÷ÓõĽű¾µÄʱºòÅжÏÕâ¸ö½Å±¾ÊÇ·ñÕý³£ÔËÐнáÊøÁË¡£

#×îºóÊÇshellscriptºÍpython,perlµÄ¶Ô±È
#²»µÃ²»Ëµperl,pythonµÄ¹¦Äܸü¼ÓÇ¿´ó£¬µ«ÊÇshellscript¸üÈÝÒ×ѧºÍÈÝÒ×±àд
#ÒòΪshellscipt¾ÍÊÇ°ÑÎÒÃÇÔÚÃüÁîÐÐÏÂÃæµÄÊäÈëµÄÃüÁîÖ±½ÓºÏÔÚÒ»Æð¾Í¿ÉÒÔÁË£¬¶ø²»ÐèÒªµ÷ÓÿâÎļþºÍ±àÒëÖ®ÀࣻͬʱÎÒÃǺܶàʱºò¶¼ÓÃshellÃüÁ¶ÔÕâЩÃüÁî¸ü¼ÓÊìϤ£¬ÔÚ±àдµÄʱºòÒ²ÈÝÒ×°ÑÎÕ¡£
#ÓкܶàÃüÁ¿ÉÒÔÔÚshellÏÂÃæÖ±½Ó³¢ÊÔ£¬µ÷ºÃÖ®ºó¾ÍÖ±½Ó·ÅÔÚshellscript¾Í¿ÉÒÔÁË¡££¨ÎÒ¾­³£ÊÇÕâô¸ÉµÄ¡­¡­£©
#shellscript¾ÍÏñ°ÑÎÒÃÇÈÕ³£µÄ»°ÕûÀíһϷÅÔÚÒ»Æð¾Í·¢±íµÄÎÄÕ£¬¶øpython,perlÓÐרÃŵÄÓï·¨¶øÒªÇ󣬾ÍÏñ¹æ·¶µÄÎÄÕÂ.ËùÒÔÇ°ÕßÒªÈÝÒ×дµÄ¶à£¬ºóÕßÈç¹û²»ÊǾ­³£Ð´ÈÝÒ׳ö´í¡£
#ÓÉÓÚshellsciptÊÇûÓбàÒëµÄºÍÓÅ»¯µÄ£¬ËùÒÔЧÂÊ»áµÍ£»Í¬Ê±ÓÉÓÚûÓбàÒ룬ËùÒÔûÓÐÕûÌåµÄ¼ì²é£¬ËùÒÔbug»áÒþ±Î£¨µ±È»Óï·¨´íÎóÔÚÔËÐеÄʱºò»¹ÊÇ»áÌáÐѵģ©¡£¶øÇÒÓÉÓںܶà¹ÜµÀºÍÕýÔò£¬ËùÒÔshellscriptµÄ¿É¶ÁÐÔ²¢²»ÊǺܺ᣶øÇÒshellscriptµÄÒÀÀµÐÔºÜÇ¿£¬²»ºÃÒÆÖ²¡£ËùÒÔ²»ÒªÓÃshellscriptд´ó³ÌÐò£¬ÌرðÊǼÆËãÁ¿ºÜ´óµÄ³ÌÐò¡£ºÜ¶àʱºò£¬shellscriptÊÇ·½±ã¿ì½ÝµÄ"dirty"´¦Àí¡£
#¼ÆËãÁ¿´óµÄ³ÌÐò£¬ÓÃfortran£»´¦Àí´óÁ¿ÎĵµºÍÎı¾£¬ÓÃpython»òperl¡£

ÎÒµÄÊäÈë·¨²»ÊǺܺÃËùÒÔ¾­³£Óдí±ð×Ö£¬±§Ç¸£¬·¢ÏÖÇë¸æÖª

[ Last edited by bingmou on 2010-9-23 at 19:20 ]
13Â¥2010-09-22 23:12:52
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

hedaors

½û³æ (ÕýʽдÊÖ)


¡ï ¡ï
cenwanglai(½ð±Ò+1):лл²ÎÓë
zzy870720z(½ð±Ò+1):pythonÒ²ºÜ²»´í 2010-09-23 12:01:54
ÐÂÊÖѧ shell ±à³Ì£¬²»Èçѧ python
14Â¥2010-09-23 09:53:58
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sjzxbe

ľ³æ (СÓÐÃûÆø)


¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÒýÓûØÌû:
2459262Â¥: Originally posted by butterflyyh at 2012-06-20 19:52:25
°æÖ÷ÄãºÃ£¬ÎÒ¸Õ¿ªÊ¼ÊÇ°´ÕÕÄú˵µÄ×öµÄ¡£ºóÀ´·¢ÏÖÉú³ÉµÄ¸÷¸öDOSÎļþÖÐûÓн«¶ÔÓ¦µÄÔ­×ÓλÖøø³ö¡£
ллÄúµÄ´ð¸´...

¿´¿´ÄãµÄPOSCAR, ÊDz»ÊǶàÁËÒ»ÐÐÔªËØ·ûºÅ
27Â¥2012-06-21 15:43:16
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
ÆÕͨ»ØÌû

condensed

ľ³æ (ÖøÃûдÊÖ)


¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ºÃ....¸´ÔÓ°¡....

Äã×Ô¼ºÓÃfortranд¸ö¶¼±ÈÕâ¸ö¼òµ¥¶àÁË.

ÓÚÆä¸ãÃ÷°×±ðÈ˵ijÌÐò²»Èç×Ô¼ºÐ´¸öÁË.»¹ÓÐ×Ô¼ºµÄ°æȨ!
2Â¥2010-08-13 19:26:55
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
¡ï ¡ï
zzy870720z(½ð±Ò+2):ÐÖµÜ×ÜÊÇÄܸã³öºÃµÄÌÖÂÛ³öÀ´£¬ºÇºÇ£¬ÐÁ¿àÁË£¬Ò²¶Ôlinux±à³ÌºÜ¸ÐÐËȤ£¬×î½üÓеãæÁË£¬µÈ¹ýÕó×ӺúÃÑо¿Ñо¿£¬ºÇºÇ 2010-09-01 17:24:20
ÒýÓûØÌû:
Originally posted by condensed at 2010-08-13 19:26:55:
ºÃ....¸´ÔÓ°¡....

Äã×Ô¼ºÓÃfortranд¸ö¶¼±ÈÕâ¸ö¼òµ¥¶àÁË.

ÓÚÆä¸ãÃ÷°×±ðÈ˵ijÌÐò²»Èç×Ô¼ºÐ´¸öÁË.»¹ÓÐ×Ô¼ºµÄ°æȨ!

ºÇºÇ£¬ÏëѧѧlinuxµÄshell±à³Ì£¬¾õµÃshell±à³Ì±ÈfortranºÃÓÃÄØ¡£

²»¹ýÎÒ²»ÊÇ·´¶Ôfortran±à³Ì¡£

¶øÊÇÏëͨ¹ýÕâ¸öÀ´¿´¿´Ëü´¦ÀíÊý¾ÝµÄ˼·£¬ÕâÑùÓøÄÓÃfortranÒ²ÈÝÒ×Щ¡£

Õâ¸ösplit_dos²»°üÀ¨fµç×Ó¡£¶øÇÒ¿´ÆðÀ´±È½Ï¹ÅÀÏ£¬¸úÕæʵµÄDOSCARµÄ¸ñʽÓгöÈë¡£

±ÈÈçÎÒµÄDOSCAR,
(1)ISPIN=2, LORBIT=11,¶ÔÓÚ²»º¬fµç×ÓµÄÌåϵ£¬
DOSCAR site projected DOSÓÐ19ÁÐÊý×Ö£¬·Ö±ðÊÇ
energy, s(+/-),Px(+/-),Py(+/-),Pz(+/-),D1(+/-),D2(+/-).D3(+/-).D4(+/-),D5(+/-);

(2)ISPIN=2,LORBIT=11,º¬ÓÐfµç×ÓµÄÌåϵÓÐ33ÁÐÊý×Ö¡£ÔÚÒÔÉÏ19ÁÐÊý×ÖºóÔÙÌí¼Ó7¸öfµÄÉÏÏÂÑ¡£¨14¸ö£©¡£

(3)ISPIN=1,LORBIT=11,ÔòÉÏÏÂÐýºÏ²¢£¬²»º¬fµç×ÓµÄÌåϵÓÐ10ÁÐÊý×Ö,·Ö±ðÊÇ£º
energy,s,Px,Py,Pz,D1,D2,D3,D4,D5.

(4)ISPIN=1,LORBIT=11£¬º¬ÓÐfµç×ÓµÄÌåϵ£¬Ôö¼Ó7fµç×Ó£¬¹²17ÁÐÊý×é¡£

ÕâËÄÖÖÇé¿ö£¬Ã»ÓÐÒ»ÖÖÊÇÏÖÔÚÁгöµÄsplit_dos¿ÉÒÔ´¦ÀíµÄ¡£
²»ÖªµÀÓÃËüµÄÈ˶¼×ßÁËÄÄЩÐ޸ġ£

±ÈÈ磬¶ÔÓÚÇé¿ö£¨1£©£¬ÒªµÃµ½sLDOSµÄO2pÉÏÐý̬ÃܶÈ,ÊDz»ÊÇÒª°ÑPx+Py+pz£»¶øÏÂÐý̬ÃܶÈΪ Px(-)+Py(-)+Pz(-)£¿

[ Last edited by cenwanglai on 2010-8-13 at 20:17 ]
3Â¥2010-08-13 19:57:01
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

condensed

ľ³æ (ÖøÃûдÊÖ)


¡ï ¡ï
zzy870720z(½ð±Ò+2):ллÌÖÂÛ½»Á÷ 2010-08-13 20:43:51
ÊǵÄ,ÐèÒª¶¼¼ÓÆðÀ´.µ«ÊÇvaspÌṩÁËÒ»¸ö²ÎÊý¿ÉÒÔÖ±½Ó¸ø³ös,p,d¶ø²»ÊÇpx,py...Öµ.
4Â¥2010-08-13 20:40:29
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
ÒýÓûØÌû:
Originally posted by condensed at 2010-08-13 20:40:29:
ÊǵÄ,ÐèÒª¶¼¼ÓÆðÀ´.µ«ÊÇvaspÌṩÁËÒ»¸ö²ÎÊý¿ÉÒÔÖ±½Ó¸ø³ös,p,d¶ø²»ÊÇpx,py...Öµ.

ʲô²ÎÊýÄØ£¿ÎÒûÕÒµ½ÄØ¡£
5Â¥2010-08-13 20:49:51
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

hlzya

ľ³æ (СÓÐÃûÆø)


¡ï
cenwanglai(½ð±Ò+1):лл²ÎÓë
°á¸öµÊ×Ó  Ò»Æðѧϰ
6Â¥2010-08-13 22:49:20
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

condensed

ľ³æ (ÖøÃûдÊÖ)


ÒýÓûØÌû:
Originally posted by cenwanglai at 2010-08-13 20:49:51:



ʲô²ÎÊýÄØ£¿ÎÒûÕÒµ½ÄØ¡£

µÈÎÒ»ØÈ¥ÕÒÕÒ,ÎҼDz»µÃÁË...ºÃ¾Ã²»ÓÃvaspÀ´ËãPDOSÁË.
7Â¥2010-08-13 23:23:41
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
¡ï
cenwanglai(½ð±Ò+1):лл²ÎÓë
½øÀ´Ñ§Ï°Ò»Ï£¬ÊÕ²ØÁË
8Â¥2010-08-14 01:47:23
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ztwang

Í­³æ (СÓÐÃûÆø)


¡ï ¡ï
cenwanglai(½ð±Ò+1):лл²ÎÓë
zzy870720z(½ð±Ò+1):ллÌáʾ 2010-08-14 20:22:37
cenwanglai(½ð±Ò+2):ȷʵ¡£LORBIT = 10 ¾Í¿ÉÒÔ¡£Ö»ÓÐs, p,d,f¡£Ã»ÓÐpx,py,pz. 2010-08-19 13:45:03
ÒýÓûØÌû:
Originally posted by condensed at 2010-08-13 20:40:29:
ÊǵÄ,ÐèÒª¶¼¼ÓÆðÀ´.µ«ÊÇvaspÌṩÁËÒ»¸ö²ÎÊý¿ÉÒÔÖ±½Ó¸ø³ös,p,d¶ø²»ÊÇpx,py...Öµ.

LORBIT=10£¬¾Í¿ÉÒÔʵÏÖ¡£
9Â¥2010-08-14 16:02:17
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

nkleof

Òø³æ (ÕýʽдÊÖ)


¡ï ¡ï ¡ï
cenwanglai(½ð±Ò+1):лл²ÎÓë
zzy870720z(½ð±Ò+2):ллÌÖÂÛ 2010-09-01 17:24:46
ÒýÓûØÌû:
Originally posted by cenwanglai at 2010-08-13 19:18:07:
ÏÂÃæÊÇ´¦ÀíVASPÊä³öÊý¾ÝµÃµ½Ì¬ÃܶȵĽű¾Îļþsplit_dos,ÓëËüÅäºÏµÄvpûÓÐÌù³öÀ´¡£Ñ§Ï°vaspÈç¹û»áһЩshell±à³Ì£¬¶ÔvaspµÄÔËÓûá¸üÁé»î·½±ã¡£Õâ¸ö³ÌÐòÌý˵±È½ÏÀÏ£¬ÓÐЩÎÊÌ⣬²»ÄÜÖ±½ÓÓÃÀ´´¦Àívasp4.6¼°ÒÔÉÏ°æ±¾µÄÊý ...

¶¥£¡
ÎÒÒ²ÊǸĵÄÕâ¸ö½Å±¾£¬°ÑÆäÖд¦ÀíÊý¾ÝÁеIJ¿·ÖÔö¼ÓºóÓÃÓÚÌáÈ¡°üº¬20ÁÐÊý¾Ý£¬¼´µ½dµç×ÓËùÓйìµÀµÄDOSCAR£¬Òª´¦Àífµç×ӵĻ°£¬Ôö¼ÓÌáÈ¡²¢Êä³öµÄÁÐÊý¾Í¿ÉÒÔÁË¡£
shell±à³ÌµÄÓÅÊÆÎÒÈÏΪÔÚÓÚ¸ñʽ»¯¶ÁÈëºÍÊä³ö£¬Óï¾äºÜ¼ò½à¶øÇÒ¹¦ÄÜÇ¿´ó£¬µ«ÊDz»ÊʺÏÓÃÀ´×öÔËËã¡£ÎÒÔ­À´ÊÔ¹ýÓÃshellд̬ÃܶÈÏà¼ÓµÄ³ÌÐò£¬µ«ÊÇÔËÐÐÆðÀ´·Ç³£·Ç³£µÄÂý£¬ËùÒÔºóÀ´ÎÒÓÃCÓïÑÔдÁË´¦Àí̬ÃܶȵijÌÐò¡£
10Â¥2010-08-17 10:12:48
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

calos818

ľ³æ (ÖøÃûдÊÖ)


¡ï
cenwanglai(½ð±Ò+1):лл²ÎÓë
ÄÄλţţÌṩϸÄÁ¼¿îµÄsplit¡ª¡ªdos
11Â¥2010-08-17 10:16:46
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

xijinyang

½ð³æ (СÓÐÃûÆø)


¡ï
cenwanglai(½ð±Ò+1):лл²ÎÓë
±¾ÈËÒ²ÊÇÔÚѧϰDOSCARµÄ´¦Àí¡£Ñ§Ï°Ò»Ï£¡ºÇºÇ
12Â¥2010-09-20 16:50:36
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

augusta810

гæ (³õÈëÎÄ̳)


¡ï
cenwanglai(½ð±Ò+1):лл²ÎÓë
¶àл¸÷λǰ±²Ö¸½Ì, ÇëÎÊÒ»ÏÂDOSCAR ºÍ PROCAR ´¦ÀíµÄÊý¾ÝÄĸö±È½Ï¾«È·?
15Â¥2010-09-24 09:50:45
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
cenwanglai(½ð±Ò+2):лл»Ø¸´£¡ 2010-09-29 11:12:55
ÒýÓûØÌû:
Originally posted by augusta810 at 2010-09-24 09:50:45:
¶àл¸÷λǰ±²Ö¸½Ì, ÇëÎÊÒ»ÏÂDOSCAR ºÍ PROCAR ´¦ÀíµÄÊý¾ÝÄĸö±È½Ï¾«È·?

PROCAR¸ø³öµÄÐÅÏ¢·Ç³£¶à£¬µ«ÊǺÍDOSCAR²»Ò»Ñù£¬Ã»ÓпɱÈÐÔ¡£DOSCARÊǸø³ö̬Ãܶȣ¬¶øPROCARÊǸø³öÿ¸öKµãÉÏÃæµÄÿ¸öÄܼ¶µÄ×éºÏ³É·Ö
16Â¥2010-09-24 16:48:59
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

burwoad

Òø³æ (СÓÐÃûÆø)


¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
¿ÉÒÔÓÃÒ»ÏÂawkµÄÑ­»·Óï¾ä£¬ÎÒÏëÂ¥Ö÷µÄÎÊÌⶼÄܹ»µÃµ½½â¾öÁË£º
if [ $form -eq 0 ];then        # the form=0 is an unkown code!
    echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
elif [ $form -eq 1 ]; then
    while [ $i -le $natom ]; do
        echo $i $start $end
        if [ $i -gt 0 ]; then
            sed -n ''$i' p' tmp.dat2 >| DOS$i
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f ", $1+(-1)*'$efermi'
                    indice=1
                    for (j=2; j <= NF; j++)
                        { printf "%12.8f ", indice*$j
                          indice = -1*indice }
                    print "" }' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f ", $1+(-1)*'$efermi'
                    for (j=2; j <= NF; j++)
                        { printf "%12.8f ", $j }
                    print "" }' >> DOS$i                  
            fi
        else                        # Total DOS
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' >> DOS$i
            fi
        fi

        start=$((end+2))
        end=$((start+nl-1))
        i=$((i+1))
    done
elif [ $form -eq 2 ];then
    while [ $i -le $natom ]; do
        echo $i $start $end
        if [ $i -gt 0 ]; then
            sed -n ''$i' p' tmp.dat2 >| DOS$i
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f ", $1+(-1)*'$efermi'
                    indice=1
                    for (j=2; j <= NF; j++)
                        { printf "%12.8f ", indice*$j
                          indice = -1*indice }
                    print "" }' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f ", $1+(-1)*'$efermi'
                    for (j=2; j <= NF; j++)
                        { printf "%12.8f ", $j }
                    print "" }' >> DOS$i                  
            fi
        else
            if [ $nspin -eq 2 ]; then
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, -1*$3, $4, -1*$5 }' >> DOS$i
            else
                sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f %12.8f %12.8f \n", $1+(-1)*'$efermi', $2, $3 }' >> DOS$i
            fi
        fi

        start=$((end+2))
        end=$((start+nl-1))
        i=$((i+1))
    done
fi

Áí£¬×îºóÁ½¶ÎÅжÏform=1 or 2£¨¼´LORBIT=10 »ò 11£©µÄ´úÂëÓкܴóÖظ´£¬ÊDz»ÊÇ¿ÉÒÔд¸öº¯ÊýÀ´¼ò»¯Ï£¿

» ±¾ÌûÒÑ»ñµÃµÄºì»¨£¨×îÐÂ10¶ä£©

17Â¥2012-04-16 00:56:47
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
ËÍÏÊ»¨Ò»¶ä
ÒýÓûØÌû:
2453184Â¥: Originally posted by burwoad at 2012-04-16 00:56:47:
¿ÉÒÔÓÃÒ»ÏÂawkµÄÑ­»·Óï¾ä£¬ÎÒÏëÂ¥Ö÷µÄÎÊÌⶼÄܹ»µÃµ½½â¾öÁË£º
if ;then        # the form=0 is an unkown code!
    echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
elif ; then
    while ; do
     ...

ÒѾ­½â¾öÁË¡£½â¾öµÄÒ²²»ÊǺܷ½±ã¡£¶Ô²»Í¬µÄÌåϵ¶¼ÐèÒªÊÖ¶¯ÐÞ¸Äһϣ¬ÊÊÓ¦ÐÔÓÐÎÊÌâ¡£ºÜÓбØÒªÔÙÌÖÂ۸ĽøÒ»ÏÂ~
18Â¥2012-04-16 08:26:24
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

burwoad

Òø³æ (СÓÐÃûÆø)


¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÒýÓûØÌû:
2453193Â¥: Originally posted by cenwanglai at 2012-04-16 08:26:24:
ÒѾ­½â¾öÁË¡£½â¾öµÄÒ²²»ÊǺܷ½±ã¡£¶Ô²»Í¬µÄÌåϵ¶¼ÐèÒªÊÖ¶¯ÐÞ¸Äһϣ¬ÊÊÓ¦ÐÔÓÐÎÊÌâ¡£ºÜÓбØÒªÔÙÌÖÂ۸ĽøÒ»ÏÂ~

ÎÒ˵µÄ¾ÍÊÇÊÊÓ¦ÐÔÎÊÌâµÄ½â¾ö
19Â¥2012-04-16 09:02:37
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

burwoad

Òø³æ (СÓÐÃûÆø)


¡ï ¡ï ¡ï ¡ï ¡ï ¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
cenwanglai: ½ð±Ò+5, ·Ç³£¸Ðл¡£Äܲ»ÄÜÉÏ´«Îļþ¹©´ó¼ÒÏÂÔØʹÓã¿ 2012-04-16 10:12:49
Ôٸļò±ãЩ£º
i=0
start=7
end=$((start+nl-1))
fileoutprocess () {
    while [ $i -le $natom ]; do
        echo $i $start $end
        if [ $i -gt 0 ]; then
            sed -n ''$i' p' tmp.dat2 > DOS$i
        else
            printf "# total\n" > DOS$i
        fi
        if [ $nspin -eq 2 ]; then
            sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f ", $1+(-1)*'$efermi'
                indice=1
                for (j=2; j <= NF; j++)
                    { printf "%12.8f ", indice*$j
                      indice = -1*indice }
                print "" }' >> DOS$i
        else       
            sed -n ''$start','$end' p' $dosfile | awk '{printf "%12.8f ", $1+(-1)*'$efermi'
                for (j=2; j <= NF; j++)
                    { printf "%12.8f ", $j }
                print "" }' >> DOS$i                  
        fi
              start=$((end+2))
        end=$((start+nl-1))
        i=$((i+1))
    done
}

if [ $form -eq 0 ];then        # the form=0 is an unkown code!
    echo "The RWIGS information was uncorrected."
elif [ $form -eq 1 ]; then
    fileoutprocess
elif [ $form -eq 2 ];then
    fileoutprocess
fi
20Â¥2012-04-16 09:36:21
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

butterflyyh

ľ³æ (ÖøÃûдÊÖ)


¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÒýÓûØÌû:
2453201Â¥: Originally posted by burwoad at 2012-04-16 09:36:21
Ôٸļò±ãЩ£º
i=0
start=7
end=$((start+nl-1))
fileoutprocess () {
    while ; do
        echo $i $start $end
        if ; then
            sed -n ''$i' p' tmp.dat2 > DOS$i
        else
            printf &quo ...

Ç°±²ÃǺã¬ÎÒ×î½üÔÚѧϰ´¦ÀíVASPµÄDOSÊý¾Ý£¬ÓÃsplit_dosºÍvp½Å±¾£¬¿ÉÊǵõ½µÄDOSiÎļþµÄµÚÒ»Ðж¼ÊÇ0 0 0£¬ Ò²¾ÍÊÇûÓÐÌáÈ¡µ½ÕýÈ·µÄÔ­×ÓλÖá£
ÎÒÏÖÔÚ°ÑvpºÍsplit_dos·ÅÔÚͬһ¸öĿ¼ÏÂÁË¡£
ÇëÎÊ£ºÊDz»ÊÇvpûÓÐÉèÖúÃÔì³ÉµÄ£¿
       vpµÄ·¾¶ºÍ¾ßÌåÉèÖÃÓ¦¸ÃÔõô´¦ÀíÄØ£¿

split_dos µÄ·¾¶ÉèÖÃ



[ Last edited by butterflyyh on 2012-6-20 at 17:42 ]
21Â¥2012-06-20 17:24:27
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
ÒýÓûØÌû:
2459253Â¥: Originally posted by butterflyyh at 2012-06-20 17:24:27
Ç°±²ÃǺã¬ÎÒ×î½üÔÚѧϰ´¦ÀíVASPµÄDOSÊý¾Ý£¬ÓÃsplit_dosºÍvp½Å±¾£¬¿ÉÊǵõ½µÄDOSiÎļþµÄµÚÒ»Ðж¼ÊÇ0 0 0£¬ Ò²¾ÍÊÇûÓÐÌáÈ¡µ½ÕýÈ·µÄÔ­×ÓλÖá£
ÎÒÏÖÔÚ°ÑvpºÍsplit_dos·ÅÔÚͬһ¸öĿ¼ÏÂÁË¡£
ÇëÎÊ£ºÊDz»ÊÇvpû ...

ºÃÏñ¸ù±¾²»ÓÃÉèÖá£Ö»ÐèÒª½âѹËõºó£¬±£³ÖËùÓÐÎļþ¶¼°´ÕÕÔ­ÓÐÏà¶Ô·¾¶´æ·Å¾Í¿ÉÒÔÁË¡£

µ±È»£¬Òª°Ñ½Å±¾µÄÕûÌå·¾¶¶¼Ìí¼Óµ½ÏµÍ³Â·¾¶ÖÐ~
22Â¥2012-06-20 18:47:37
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

butterflyyh

ľ³æ (ÖøÃûдÊÖ)


¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÒýÓûØÌû:
2459255Â¥: Originally posted by cenwanglai at 2012-06-20 18:47:37
ºÃÏñ¸ù±¾²»ÓÃÉèÖá£Ö»ÐèÒª½âѹËõºó£¬±£³ÖËùÓÐÎļþ¶¼°´ÕÕÔ­ÓÐÏà¶Ô·¾¶´æ·Å¾Í¿ÉÒÔÁË¡£

µ±È»£¬Òª°Ñ½Å±¾µÄÕûÌå·¾¶¶¼Ìí¼Óµ½ÏµÍ³Â·¾¶ÖÐ~...

°æÖ÷ÄãºÃ£¬ÎÒ¸Õ¿ªÊ¼ÊÇ°´ÕÕÄú˵µÄ×öµÄ¡£ºóÀ´·¢ÏÖÉú³ÉµÄ¸÷¸öDOSÎļþÖÐûÓн«¶ÔÓ¦µÄÔ­×ÓλÖøø³ö¡£
ллÄúµÄ´ð¸´
23Â¥2012-06-20 19:52:25
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
ÒýÓûØÌû:
2459262Â¥: Originally posted by butterflyyh at 2012-06-20 19:52:25
°æÖ÷ÄãºÃ£¬ÎÒ¸Õ¿ªÊ¼ÊÇ°´ÕÕÄú˵µÄ×öµÄ¡£ºóÀ´·¢ÏÖÉú³ÉµÄ¸÷¸öDOSÎļþÖÐûÓн«¶ÔÓ¦µÄÔ­×ÓλÖøø³ö¡£
ллÄúµÄ´ð¸´...

ÄÇ¿ÉÄܸúÄãµÄINCARÉèÖÃÓйء£
24Â¥2012-06-20 20:50:14
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
ÒýÓûØÌû:
2459262Â¥: Originally posted by butterflyyh at 2012-06-20 19:52:25
°æÖ÷ÄãºÃ£¬ÎÒ¸Õ¿ªÊ¼ÊÇ°´ÕÕÄú˵µÄ×öµÄ¡£ºóÀ´·¢ÏÖÉú³ÉµÄ¸÷¸öDOSÎļþÖÐûÓн«¶ÔÓ¦µÄÔ­×ÓλÖøø³ö¡£
ллÄúµÄ´ð¸´...

ÄãÊDz»ÊÇÒѾ­Çå³þÁË£¬ÔõÑùÉèÖÃINCAR¿ÉÒÔ°´Ô­×Ó·Ö½âDOS?
25Â¥2012-06-20 20:50:54
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

butterflyyh

ľ³æ (ÖøÃûдÊÖ)


¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÒýÓûØÌû:
2459267Â¥: Originally posted by cenwanglai at 2012-06-20 20:50:54
ÄãÊDz»ÊÇÒѾ­Çå³þÁË£¬ÔõÑùÉèÖÃINCAR¿ÉÒÔ°´Ô­×Ó·Ö½âDOS?...

ÎÒÓõÄPAW·½·¨£¬ÕâÊÇÎÒµÄINCARÖÐDOSÏà¹Ø²¿·Ö


[ Last edited by butterflyyh on 2012-6-20 at 21:08 ]
26Â¥2012-06-20 21:07:34
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

mousekingadv

½ð³æ (СÓÐÃûÆø)


·Ç³£ºÃ£¬Ñ§Ï°ÁË
28Â¥2012-06-23 13:30:24
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

Á÷ÄêË®

½ð³æ (СÓÐÃûÆø)


¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÒýÓûØÌû:
10Â¥: Originally posted by nkleof at 2010-08-17 10:12:48
¶¥£¡
ÎÒÒ²ÊǸĵÄÕâ¸ö½Å±¾£¬°ÑÆäÖд¦ÀíÊý¾ÝÁеIJ¿·ÖÔö¼ÓºóÓÃÓÚÌáÈ¡°üº¬20ÁÐÊý¾Ý£¬¼´µ½dµç×ÓËùÓйìµÀµÄDOSCAR£¬Òª´¦Àífµç×ӵĻ°£¬Ôö¼ÓÌáÈ¡²¢Êä³öµÄÁÐÊý¾Í¿ÉÒÔÁË¡£
shell±à³ÌµÄÓÅÊÆÎÒÈÏΪÔÚÓÚ¸ñʽ»¯¶ÁÈëºÍÊä³ö£¬Óï ...

ÄúºÃ£¬ÇëÎÊÈçºÎÐ޸IJſÉÒÔ´¦Àífµã×ÓÄØ£¿ÔÚÐ޸ĵÄʱºòvpÊÇ·ñÐèÒªÐ޸ģ¿ÎÒÔö¼ÓÁËÊä³öµÄÁÐÊý£¬»¹Êǻᱨ´í£¬ÄÜ·ñ°ÑÄúÐ޸ĵĴ¦Àífµç×ӵĽű¾·¢¸øÎÒÒ»ÏÂÄØ£¿ÎÒµÄÓÊÏä787730167@qq.com¡£Ê®·Ö¸Ðл
30Â¥2014-12-24 12:16:37
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

tsglss

Ìú¸Ëľ³æ (ÖøÃûдÊÖ)


ѧϰ

[ ·¢×ÔÊÖ»ú°æ http://muchong.com/3g ]
31Â¥2014-12-24 13:23:47
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
¼òµ¥»Ø¸´
sg1840892629Â¥
2012-07-25 16:42   »Ø¸´  
ËÍÏÊ»¨Ò»¶ä
Ïà¹Ø°æ¿éÌøת ÎÒÒª¶©ÔÄÂ¥Ö÷ cenwanglai µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍƼö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] ǰͬÊÂÄÃÎÒÒÔǰδÖеĹú×ÔÈ»±êÊéÉêÇë½ñÄêµÄ¹ú×ÔÈ»£¬ÏÖÔÚ»ù½ðί·¢À´µ÷²éº¯ +8 bjdxyxy 2024-04-19 10/500 2024-04-19 22:50 by Áè¾ø¶¥
[˶²©¼ÒÔ°] °¥ +5 s150535912 2024-04-18 6/300 2024-04-19 20:33 by s150535912
[ÂÛÎÄͶ¸å] SCI ÆÀÉóÒâ¼û»Ø¸´ Ä£°å 15+3 Kilig0317 2024-04-18 4/200 2024-04-19 08:46 by bobvan
[Óлú½»Á÷] ÐÖµÜÃÇ°ïÎÒ¿´¿´ÕâÁ½¸ö½á¹¹ÔõôºÏ³É +5 xl2088131 2024-04-17 5/250 2024-04-19 08:09 by Î÷¹Ï˪»ª
[¿¼ÑÐ] ±¾¿Æ211 277·ÖÇóµ÷¼Á +3 0854ͨÐŹ¤³Ì 2024-04-18 4/200 2024-04-18 09:11 by »¨»¨Æ½Í·¸ç
[¿¼ÑÐ] 275Çóµ÷¼Á +8 µ÷¼Á0856 2024-04-14 10/500 2024-04-17 23:23 by »ª±±Áõ±ø
[¿¼ÑÐ] Çóµ÷¼Á»¯¹¤Ñ§Ë¶276 +14 ÐÇÐÇÔÉÂä 2024-04-13 14/700 2024-04-17 22:57 by »ª±±Áõ±ø
[Óлú½»Á÷] ÔõôÇåÏ´ÉÕÆ¿ 20+5 ww34523 2024-04-16 6/300 2024-04-17 15:20 by 591950582
[»ù½ðÉêÇë] ÇëÎʽÌÓý²¿ÈËÎÄÉç¿ÆÄѶȴóÂð +9 ½õÒÂÎÀº®Õ½ 2024-04-15 14/700 2024-04-16 23:10 by ½õÒÂÎÀº®Õ½
[¿¼ÑÐ] ÍÁľ¹¤³Ì281Çóµ÷¼Á +4 ÇÇÙâľ 2024-04-13 4/200 2024-04-16 21:40 by zjl½¥Ðн¥Ô¶
[¿¼ÑÐ] Õã½­º£Ñó´óѧ ´¬²°Ó뺣ÔËѧԺ ½»Í¨ÔËÊäר˶ £¨½»Í¨ÐÅÏ¢¹¤³Ì¼°¿ØÖÆ£©½ÓÊÕµ÷½Ú +4 joee 2024-04-15 8/400 2024-04-16 20:47 by TommyZiAng
[¿¼ÑÐ] 296Çóµ÷¼Á +3 Cclocomotive 2024-04-16 4/200 2024-04-16 10:04 by 19862091
[¿¼²©] ²©Ê¿ÉêÇë +5 À²À²À²3737 2024-04-13 9/450 2024-04-16 07:07 by 1147wzzzz
[¿¼ÑÐ] 322Çóµ÷¼Á +6 ±¾¼ºÉÏ°¶ 2024-04-15 7/350 2024-04-15 14:19 by mthwyj
[¿¼ÑÐ] 273Çóµ÷¼Á +5 LateÍñ°² 2024-04-15 7/350 2024-04-15 13:01 by LateÍñ°²
[¿¼ÑÐ] »¯Ñ§¡¢²ÄÁÏÀà×îºóµ÷¼Á»ú»á£¡£¡£¡ +3 ¼ÓÓÍŬÁ¦¾ÍºÃ 2024-04-14 10/500 2024-04-15 09:05 by ÈÎpen
[¿¼ÑÐ] 274Çóµ÷¼Á +5 Ëĸö´ó×Ö£¬ÄãµÎº 2024-04-13 6/300 2024-04-15 00:01 by Ëĸö´ó×Ö£¬ÄãµÎº
[¿¼ÑÐ] 300Çóµ÷¼Á +5 @Xqy668800 2024-04-14 6/300 2024-04-14 23:03 by lincunhui
[¿¼ÑÐ] 334Çóµ÷¼Á +4 ѧҩ¾ÈÈË 2024-04-13 6/300 2024-04-13 20:27 by Ï×ÊÀµÄÍõ
[¿¼²©] ÏÖÔÚÉ격ºÜÍíÁËÂð +3 Îõ·çĽº® 2024-04-13 3/150 2024-04-13 11:08 by Nanamiwww
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û