MPToolkit用for循环转换mat文件(2)续

一.得到循环体的数量

  1. 43个delta值
   array=(-1.0000   -0.9000   -0.8000   -0.7000   -0.6000   -0.5000   -0.4000   -0.3000   -0.2000   -0.1500   -0.1000    -0.0500    -0.0450    -0.0400    -0.0350    -0.0300    -0.0250     -0.0200    -0.0150    -0.0100    -0.0050    0    0.0050    0.0100    0.0150     0.0200     0.0250    0.0300    0.0350    0.0400    0.0450    0.0500    0.1000    0.1500    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000   1.0000)
  for(( i=0;i<${#array[@]};i++))

二.写循环语句

  do
 
    lockfile -1 -r 1 ~/Wen/SU2/alpha_0.2/data/${COUNT_job}.lock 
   ##为防止不同CPU计算同一个数据,将每一个正在计算的数据锁住

    if [ $? == 0 ];     then
    
           cd ~/Wen/SU2/alpha_0.2/data/${COUNT_job}
           mp-wigner-eckart "Sz:U(1)" psi psi2
           mp-reorder-symmetry "Null:Null" psi2
           ##降低SU2对称性到没有对称性
           mp-matrix -w psi2 -o iMPS.txt
           cp -r ~/Wen/HardCode/alpha_0.0/data_nosymmetry/0/transform_iMPStxt_to_mat.m    ~/Wen/SU2/alpha_0.2/data/${COUNT_job}/transform_iMPStxt_to_mat.m
           ##子文件夹中必须要有transform_iMPStxt_to_mat.m文件
           matlab -nojvm -nodesktop < transform_iMPStxt_to_mat.m
          echo "job ${COUNT_job} is over" 

    fi
  done

你可能感兴趣的:(MPToolkit,shell,bash)