# 2d LJ obstacle flow

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 40 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

# Poiselle 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 -0.5 0.0
fix		6 flow addforce 1.0 0.0 0.0

# 2 obstacles

region		void1 sphere 10 4 0 3
delete_atoms	region void1
region		void2 sphere 20 7 0 3
delete_atoms	region void2

fix		7 flow indent 100 sphere 10 4 0 4
fix		8 flow indent 100 sphere 20 7 0 4
fix		9 all enforce2d

# Run

timestep	0.003
thermo		1000
thermo_modify	temp mobile

dump		1 all atom 100 tmp.dump
#dump		1 all custom 100 dump.custom id type x y z vx vy 

restart		5000 tmp.restart.*.%

run		25000
