Files
lammps/examples/PACKAGES/cgdna/examples/test.sh
2024-05-15 22:03:56 +01:00

347 lines
10 KiB
Bash
Executable File

#! /bin/bash
DATE='15May24'
TOL=1e-8
LMPDIR=/Users/ohenrich/Work/code/lammps
SRCDIR=$LMPDIR/src
EXDIR=$LMPDIR/examples/PACKAGES/cgdna/examples
if [ $# -eq 1 ] && [ $1 = run ]; then
echo '# Compiling executable in' $SRCDIR | tee -a $EXDIR/test.log
cd $SRCDIR
make clean-all | tee -a $EXDIR/test.log
make purge | tee -a $EXDIR/test.log
make pu | tee -a $EXDIR/test.log
make ps | tee -a $EXDIR/test.log
make -j8 mpi | tee -a $EXDIR/test.log
######################################################
printf '\n# Running oxDNA duplex1 test\n' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA/duplex1
mkdir test
cd test
cp $SRCDIR/lmp_mpi .
cp ../in.duplex1 .
cp ../data.duplex1 .
mpirun -np 1 ./lmp_mpi -in in.duplex1 > /dev/null
mv log.lammps log.$DATE.duplex1.g++.1
grep etot log.$DATE.duplex1.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi -in in.duplex1 > /dev/null
mv log.lammps log.$DATE.duplex1.g++.4
grep etot log.$DATE.duplex1.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
printf '\n# Running oxDNA duplex2 test\n' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA/duplex2
mkdir test
cd test
cp $SRCDIR/lmp_mpi .
cp ../in.duplex2 .
cp ../data.duplex2 .
mpirun -np 1 ./lmp_mpi -in in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.1
grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi -in in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.4
grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
printf '\n# Running oxDNA2 duplex1 test\n' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA2/duplex1
mkdir test
cd test
cp $SRCDIR/lmp_mpi .
cp ../in.duplex1 .
cp ../data.duplex1 .
mpirun -np 1 ./lmp_mpi -in in.duplex1 > /dev/null
mv log.lammps log.$DATE.duplex1.g++.1
grep etot log.$DATE.duplex1.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi -in in.duplex1 > /dev/null
mv log.lammps log.$DATE.duplex1.g++.4
grep etot log.$DATE.duplex1.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
printf '\n# Running oxDNA2 duplex2 test\n' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA2/duplex2
mkdir test
cd test
cp $SRCDIR/lmp_mpi .
cp ../in.duplex2 .
cp ../data.duplex2 .
mpirun -np 1 ./lmp_mpi -in in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.1
grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi -in in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.4
grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
printf '\n# Running oxDNA2 duplex3 test\n' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA2/duplex3
mkdir test
cd test
cp $SRCDIR/lmp_mpi .
cp ../in.duplex3 .
cp ../data.duplex3 .
mpirun -np 1 ./lmp_mpi -in in.duplex3 > /dev/null
mv log.lammps log.$DATE.duplex3.g++.1
grep etot log.$DATE.duplex3.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi -in in.duplex3 > /dev/null
mv log.lammps log.$DATE.duplex3.g++.4
grep etot log.$DATE.duplex3.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
printf '\n# Running oxDNA2 unique_bp test\n' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA2/unique_bp
mkdir test
cd test
cp $SRCDIR/lmp_mpi .
cp ../in.duplex4.4type .
cp ../in.duplex4.8type .
cp ../data.duplex4.4type .
cp ../data.duplex4.8type .
mpirun -np 1 ./lmp_mpi -in in.duplex4.4type > /dev/null
mv log.lammps log.$DATE.duplex4.4type.g++.1
grep etot log.$DATE.duplex4.4type.g++.1 > e_test.4type.1.dat
grep etot ../log*4type*1 > e_old.4type.1.dat
ndiff -relerr $TOL e_test.4type.1.dat e_old.4type.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task 4 types passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task 4 types FAILED" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi -in in.duplex4.4type > /dev/null
mv log.lammps log.$DATE.duplex4.4type.g++.4
grep etot log.$DATE.duplex4.4type.g++.4 > e_test.4type.4.dat
grep etot ../log*4type*4 > e_old.4type.4.dat
ndiff -relerr $TOL e_test.4type.4.dat e_old.4type.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks 4 types passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks 4 types FAILED" | tee -a $EXDIR/test.log
fi
mpirun -np 1 ./lmp_mpi -in in.duplex4.8type > /dev/null
mv log.lammps log.$DATE.duplex4.8type.g++.1
grep etot log.$DATE.duplex4.8type.g++.1 > e_test.8type.1.dat
grep etot ../log*8type*1 > e_old.8type.1.dat
ndiff -relerr $TOL e_test.8type.1.dat e_old.8type.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task 8 types passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task 8 types FAILED" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi -in in.duplex4.8type > /dev/null
mv log.lammps log.$DATE.duplex4.8type.g++.4
grep etot log.$DATE.duplex4.8type.g++.4 > e_test.8type.4.dat
grep etot ../log*8type*4 > e_old.8type.4.dat
ndiff -relerr $TOL e_test.8type.4.dat e_old.8type.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks 8 types passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks 8 types FAILED" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
printf '\n# Running oxDNA2 dsring test\n' | tee -a $EXDIR/test.log
cd $EXDIR/oxDNA2/dsring
mkdir test
cd test
cp $SRCDIR/lmp_mpi .
cp ../in.dsring .
cp ../data.dsring .
mpirun -np 1 ./lmp_mpi -in in.dsring > /dev/null
mv log.lammps log.$DATE.dsring.g++.1
grep etot log.$DATE.dsring.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi -in in.dsring > /dev/null
mv log.lammps log.$DATE.dsring.g++.4
grep etot log.$DATE.dsring.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log
fi
######################################################
######################################################
printf '\n# Running oxRNA2 duplex2 test\n' | tee -a $EXDIR/test.log
cd $EXDIR/oxRNA2/duplex2
mkdir test
cd test
cp $SRCDIR/lmp_mpi .
cp ../in.duplex2 .
cp ../data.duplex2 .
mpirun -np 1 ./lmp_mpi -in in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.1
grep etot log.$DATE.duplex2.g++.1 > e_test.1.dat
grep etot ../log*1 > e_old.1.dat
ndiff -relerr $TOL e_test.1.dat e_old.1.dat
if [ $? -eq 0 ];
then
echo "# 1 MPI-task passed" | tee -a $EXDIR/test.log
else
echo "# 1 MPI-task FAILED" | tee -a $EXDIR/test.log
fi
mpirun -np 4 ./lmp_mpi -in in.duplex2 > /dev/null
mv log.lammps log.$DATE.duplex2.g++.4
grep etot log.$DATE.duplex2.g++.4 > e_test.4.dat
grep etot ../log*4 > e_old.4.dat
ndiff -relerr $TOL e_test.4.dat e_old.4.dat
if [ $? -eq 0 ];
then
echo "# 4 MPI-tasks passed" | tee -a $EXDIR/test.log
else
echo "# 4 MPI-tasks FAILED" | tee -a $EXDIR/test.log
fi
######################################################
echo
echo '# Done' | tee -a $EXDIR/test.log
elif [ $# -eq 1 ] && [ $1 = clean ]; then
echo '# Deleting test directories'
rm -rf $EXDIR/oxDNA/duplex1/test
rm -rf $EXDIR/oxDNA/duplex2/test
rm -rf $EXDIR/oxDNA2/duplex1/test
rm -rf $EXDIR/oxDNA2/duplex2/test
rm -rf $EXDIR/oxDNA2/duplex3/test
rm -rf $EXDIR/oxDNA2/unique_bp/test
rm -rf $EXDIR/oxDNA2/dsring/test
rm -rf $EXDIR/oxRNA2/duplex2/test
rm -rf $EXDIR/test.log
echo '# Done'
else
echo '# Usage:'
echo '# ./test.sh run ... to run test suite'
echo '# ./test.sh clean ... to delete test directories'
fi