tool
borgWarp
ADDA
#migrated

ADDA > bash script > read_numIter_170916_exec > v0.1, v0.2 > to extract the number of iterations from log files

動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
ADDA v.1.3b6

About

Is used to extract followings from the 'log' files

  • Re{m}: real part of refractive index
  • Im{m}: imaginary part of refractive index
  • number of iterations

code v0.1

bash script

#!/usr/bin/env bash

#
# v0.1 Sep. 16, 2017
#   - extract number of iterations in ADDA log file
#   - extract Re{m} and Im{m}
#

LOGFILE="log"

#debug
#target="run845_sphere_g26_m1.5"

for target in $(ls | grep run):
do
    refrac=$(grep refrac $target/$LOGFILE | awk '{print $3}')
    arys=$(echo $refrac | sed 's/+/ /g' | sed 's/i//g')
    # set -x  # start debugging
    rem=$(echo $arys | awk '{print $1}')  # real part
    imm=$(echo $arys | awk '{print $2}')  # imaginary part

    num=$(grep RE_ $target/$LOGFILE | tail -n 1 | sed 's/_/ /g' | awk '{print $2}')

    echo "$rem,$imm,$num"
done

run

The code can be executed in the directory where you see ADDA output directories (e.g., run859_sphere_g26_m1.5).

$ ls | head
run425_sphere_g26_m1.4
run426_sphere_g26_m1.4
run427_sphere_g26_m1.4
run428_sphere_g26_m1.4
run429_sphere_g26_m1.4
run430_sphere_g26_m1.4
run431_sphere_g26_m1.4
run432_sphere_g26_m1.4
run433_sphere_g26_m1.4
run434_sphere_g26_m1.4
$ bash read_numIter_170916_exec > ReIm_170916.tbl
$ head ReIm_170916.tbl 
1.4,1e-05,038
1.4,1.3e-05,039
1.4,1.6e-05,039
1.4,2e-05,039
1.4,2.5e-05,039
1.4,3.2e-05,039
1.4,4e-05,039
1.4,5e-05,038
1.4,6.3e-05,039
1.4,7.9e-05,039

code v0.2

To skip the directories having no [log file.

#!/usr/bin/env bash

#
# v0.2 Sep. 16, 2017
#   - check whether the log file exists or not
# v0.1 Sep. 16, 2017
#   - extract number of iterations in ADDA log file
#   - extract Re{m} and Im{m}
#

LOGFILE="log"

#debug
#target="run845_sphere_g26_m1.5"

for target in $(ls | grep run):
do
    if [ -e $target/$LOGFILE ]; then
        refrac=$(grep refrac $target/$LOGFILE | awk '{print $3}')
        arys=$(echo $refrac | sed 's/+/ /g' | sed 's/i//g')
        # set -x  # start debugging
        rem=$(echo $arys | awk '{print $1}')  # real part
        imm=$(echo $arys | awk '{print $2}')  # imaginary part

        num=$(grep RE_ $target/$LOGFILE | tail -n 1 | sed 's/_/ /g' | awk '{print $2}')

        echo "$rem,$imm,$num"
    fi
done