#!/bin/sh
# autopkgtest check
# (C) 2014 Anton Gladky

set -e

export OMPI_MCA_plm_rsh_agent=/bin/false

WORKDIR=$(mktemp -d)
trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
cd $WORKDIR
mkdir post

cat <<EOF > in.flow
# 2-d LJ flow simulation

dimension	2
boundary	p s p

atom_style	atomic
neighbor	0.3 bin
neigh_modify	delay 5

# create geometry

lattice		hex 0.7
region		box block 0 20 0 10 -0.25 0.25
create_box	3 box
create_atoms	1 box

mass		1 1.0
mass		2 1.0
mass		3 1.0

# LJ potentials

pair_style	lj/cut 1.12246
pair_coeff	* * 1.0 1.0 1.12246

# define groups

region	     1 block INF INF INF 1.25 INF INF
group	     lower region 1
region	     2 block INF INF 8.75 INF INF INF
group	     upper region 2
group	     boundary union lower upper
group	     flow subtract all boundary

set	     group lower type 2
set	     group upper type 3

# initial velocities

compute	     mobile flow temp
velocity     flow create 1.0 482748 temp mobile
fix	     1 all nve
fix	     2 flow temp/rescale 200 1.0 1.0 0.02 1.0
fix_modify   2 temp mobile

# Couette flow

velocity     lower set 0.0 0.0 0.0
velocity     upper set 3.0 0.0 0.0
fix	     3 boundary setforce 0.0 0.0 0.0
fix	     4 all enforce2d

# Poiseuille flow

#velocity     boundary set 0.0 0.0 0.0
#fix	     3 lower setforce 0.0 0.0 0.0
#fix	     4 upper setforce 0.0 NULL 0.0
#fix	     5 upper aveforce 0.0 -1.0 0.0
#fix	     6 flow addforce 0.5 0.0 0.0
#fix	     7 all enforce2d

# Run

timestep	0.003
thermo		500
thermo_modify	temp mobile

#dump		1 all atom 500 dump.flow

#dump		2 all image 100 image.*.jpg type type &
#		zoom 1.6 adiam 1.2
#dump_modify	2 pad 5

#dump		3 all movie 100 movie.mpg type type &
#		zoom 1.6 adiam 1.2
#dump_modify	3 pad 5

run		10000

EOF

mpirun -np 2 --oversubscribe lammps < in.flow
lammps < in.flow
echo "run: OK"
