#/bin/bash

HERE=$PWD
SOFA_DIR=~/Sofa

PROF_TIME=150

cd $SOFA_DIR
. config.sh

export SOFA_TIMER_ALL=$(($PROF_TIME-10))


#############DIRECT SOLVER

export OMP_NUM_THREADS=1

echo "pardiso1" > $HERE/results_pardiso1
runSofa -l SofaCUDA -l SofaCUDASolvers -l SofaAsyncSolvers -g batch -n $PROF_TIME $HERE/pardiso.scn  | egrep 'MBKBuild|PCG iterations|MBKSolve|TOTAL' | grep -v "*" | grep -v "MEAN" >> $HERE/results_pardiso1

export OMP_NUM_THREADS=2

echo "pardiso2" > $HERE/results_pardiso2
runSofa -l SofaCUDA -l SofaCUDASolvers -l SofaAsyncSolvers -g batch -n $PROF_TIME $HERE/pardiso.scn  | egrep 'MBKBuild|PCG iterations|MBKSolve|TOTAL' | grep -v "*" | grep -v "MEAN" >> $HERE/results_pardiso2

export OMP_NUM_THREADS=4

echo "pardiso4" > $HERE/results_pardiso4
runSofa -l SofaCUDA -l SofaCUDASolvers -l SofaAsyncSolvers -g batch -n $PROF_TIME $HERE/pardiso.scn  | egrep 'MBKBuild|PCG iterations|MBKSolve|TOTAL' | grep -v "*" | grep -v "MEAN" >> $HERE/results_pardiso4

export OMP_NUM_THREADS=8

echo "pardiso8" > $HERE/results_pardiso8
runSofa -l SofaCUDA -l SofaCUDASolvers -l SofaAsyncSolvers -g batch -n $PROF_TIME $HERE/pardiso.scn  | egrep 'MBKBuild|PCG iterations|MBKSolve|TOTAL' | grep -v "*" | grep -v "MEAN" >> $HERE/results_pardiso8



#############ITERATIVE SOLVER

echo "CG" > $HERE/results_CG
runSofa -l SofaCUDA -l SofaCUDASolvers -l SofaAsyncSolvers -g batch -n $PROF_TIME $HERE/CG.scn | egrep 'MBKBuild|PCG iterations|MBKSolve|TOTAL' | grep -v "*" | grep -v "MEAN" >> $HERE/results_CG

echo "jacobi" > $HERE/results_jacobi
runSofa -l SofaCUDA -l SofaCUDASolvers -l SofaAsyncSolvers -g batch -n $PROF_TIME $HERE/jacobi.scn | egrep 'MBKBuild|PCG iterations|MBKSolve|TOTAL' | grep -v "*" | grep -v "MEAN" >> $HERE/results_jacobi

echo "ldl0" > $HERE/results_ldl0
runSofa -l SofaCUDA -l SofaCUDASolvers -l SofaAsyncSolvers -g batch -n $PROF_TIME $HERE/ldl0.scn | egrep 'MBKBuild|PCG iterations|MBKSolve|TOTAL' | grep -v "*" | grep -v "MEAN" >> $HERE/results_ldl0

echo "ldl0w" > $HERE/results_ldl0w
runSofa -l SofaCUDA -l SofaCUDASolvers -l SofaAsyncSolvers -g batch -n $PROF_TIME $HERE/ldl0w.scn | egrep 'MBKBuild|PCG iterations|MBKSolve|TOTAL' | grep -v "*" | grep -v "MEAN" >> $HERE/results_ldl0w

echo "ldla" > $HERE/results_ldla
runSofa -l SofaCUDA -l SofaCUDASolvers -l SofaAsyncSolvers -g batch -n $PROF_TIME $HERE/ldla.scn | egrep 'MBKBuild|PCG iterations|MBKSolve|TOTAL' | grep -v "*" | grep -v "MEAN" >> $HERE/results_ldla

echo "ldlaw" > $HERE/results_ldlaw
runSofa -l SofaCUDA -l SofaCUDASolvers -l SofaAsyncSolvers -g batch -n $PROF_TIME $HERE/ldlaw.scn  | egrep 'MBKBuild|PCG iterations|MBKSolve|TOTAL' | grep -v "*" | grep -v "MEAN" >> $HERE/results_ldlaw


head -n 5 $HERE/results_pardiso1
head -n 5 $HERE/results_pardiso2
head -n 5 $HERE/results_pardiso4
head -n 5 $HERE/results_pardiso8

head -n 5 $HERE/results_CG
head -n 5 $HERE/results_jacobi
head -n 5 $HERE/results_ldl0
head -n 5 $HERE/results_ldl0w
head -n 5 $HERE/results_ldla
head -n 5 $HERE/results_ldlaw

