mirror of
https://asciireactor.com/otho/lammps-graphene.git
synced 2024-11-22 15:55:07 +00:00
66 lines
1.5 KiB
Bash
Executable File
66 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Usage: ./graph_stress_afo_strain.sh <sample directory> <output file>
|
|
|
|
# This program creates xmgrace-readable output from a LAMMPS dump file.
|
|
# Independent variable: x displacement of each atom
|
|
# Dependent variable: energy of correlated atom
|
|
|
|
script_dir=$( cd $(dirname $0) ; pwd -P |sed 's@^\(.*/scripts\).*@\1@')
|
|
source $script_dir/func/log_parsing.src
|
|
source $script_dir/func/utility.src
|
|
|
|
# Test validity of input and output files, and create list of input files.
|
|
|
|
sample_dir=$1
|
|
xmgrace_file=$2
|
|
default_output_file=analyses/script_output.xm
|
|
|
|
if [ -z $sample_dir ]; then
|
|
echo No input dir specified. Exiting.
|
|
exit 1
|
|
fi
|
|
|
|
echo Using input dir $sample_dir.
|
|
|
|
if [ -z $xmgrace_file ]; then
|
|
xmgrace_file=${default_output_file}
|
|
fi
|
|
|
|
mkdir -p analyses
|
|
|
|
if `! touch $xmgrace_file`; then
|
|
echo Cannot access $xmgrace_file. Exiting.
|
|
exit 2
|
|
fi
|
|
|
|
echo Output to $xmgrace_file.
|
|
|
|
> $xmgrace_file
|
|
|
|
|
|
lammps_logs=$(find $sample_dir -name 'log.lmp')
|
|
|
|
# Find all minimization results and sort.
|
|
min_dirs=$(find $sample_dir -name 'min.*' -type d|sort)
|
|
|
|
# Load dependent (stress) and independent (strain) values.
|
|
count="0"
|
|
for dir in $min_dirs; do
|
|
(( count++ ))
|
|
log=$dir/log.lmp
|
|
stress_in_bar=$(parse_final_system_stress $log)
|
|
indep[$count]=$(echo $dir|sed 's@/*$@@'|sed 's@.*/\([^/]*\)@\1@'|sed 's@min@0@')
|
|
dep[$count]=$(bc <<< "scale=10; $stress_in_bar * 10^-4")
|
|
done
|
|
|
|
# Write array to xmgrace-readable file.
|
|
echo Writing $count entries to table.
|
|
|
|
for index in $(seq 1 $count); do
|
|
echo ${indep[$index]} ${dep[$index]} >> $xmgrace_file
|
|
done
|
|
|
|
echo Done.
|
|
exit 0
|