application=buoyantBoussinesqPimpleFoam
parallelrun=mpirun -np 4

### targets 
plot_objs=res.eps corwpc.eps

### suffix rules
.SUFFIXES : .gp .eps

.gp.eps:
	gnuplot $<

### entry

all:
	@echo "Type: make (init|mesh|init|fgrun|bgrun|de|pfgrun|pbgrun|re|plot|clean|cleanrun)"

mesh:
	 ./makeMesh | tee log.makeMesh

init:
	 ./makeInit | tee log.makeInit

de:
	decomposePar | tee log.decomposePar

re:	
	reconstructPar -latestTime | tee log.reconstructPar

fgrun:
	${application}   | tee log.${application}

pfgrun:
	${parallelrun} ${application} -parallel | tee log.${application}

bgrun:
	${application}   > log.${application} 2>&1 &

pbgrun:
	${parallelrun} ${application} -parallel > log.${application} 2>&1 &

plot:	${plot_objs}

view:
	paraFoam

cleanrun:
	rm -fr [1-9]*

clean:  cleanrun
	rm -f  log.* *.eps
	rm -fr 0 constant/polyMesh sets/ surfaces/ logs/ processor*/

res.eps: log.foamLog

log.foamLog: log.${application}
	foamLog log.${application} | tee $@

log.sample: log.${application} system/sampleDict log.wpcRAS
	sample  -latestTime | tee $@

log.wpcRAS: log.${application} system/wpcRASDict
	wpcRAS -latestTime | tee $@

corwpc.eps: log.setsLatestTime

log.setsLatestTime: log.sample
	(cd sets;rm -f latestTime;ln -s `ls -d [0-9]* |sort -n | tail -n 1` latestTime) | tee $@
