#!/bin/bash
export OPENBLAS_NUM_THREADS=1
export OMP_NUM_THREADS=1

export NPROC=64
export nb_phi=64
export myDir="res_Matrix_nb_phi"$nb_phi
export myFile="run_phideg_values_"$nb_phi".out"

rm -r $myDir
rm $myFile
mkdir $myDir

myfunc() {
    local mysubDir=$myDir/run$1_psi$2
    mkdir $mysubDir
    cp grating3D.geo grating3D.pro grating3D_data_halfellipsoid.geo grating3D_data.geo grating3D_materials.pro $mysubDir
    local phi=$(echo "scale=10;360/($nb_phi)*$1" | bc )
    if [ $2 -eq 0 ]; then echo $1"  "$phi >> $myDir/$myFile ; fi
    cd $mysubDir
    echo gmsh grating3D.pro -setstring test_case halfellipsoid -setnumber thetadeg 50 -setnumber phideg $phi -setnumber psideg $2 -setstring Solver.SocketName id$1$2 -
    if [ $2 -eq  0 ]; then cp res3D/rs.txt ../r_pin_sout_phi$1.out ; fi
    if [ $2 -eq  0 ]; then cp res3D/rp.txt ../r_pin_pout_phi$1.out ; fi
    if [ $2 -eq 90 ]; then cp res3D/rs.txt ../r_sin_sout_phi$1.out ; fi
    if [ $2 -eq 90 ]; then cp res3D/rp.txt ../r_sin_pout_phi$1.out ; fi
    cd ../..
}

export -f myfunc
# parallel --lb -j $NPROC myfunc ::: $(seq 1 $nb_phi) ::: 0 90
parallel -j $NPROC myfunc ::: $(seq 1 $nb_phi) ::: 0 90