From fc8eaa0c5cfa235f0d6ea6f416309ec3b2552143 Mon Sep 17 00:00:00 2001
From: Guillaume Demesy <guillaume.demesy@fresnel.fr>
Date: Tue, 14 Feb 2023 17:19:00 +0100
Subject: [PATCH] loop over theta

---
 .../grating3D_parallel_Mmatrix_theta.sh       | 50 +++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 DiffractionGratings/grating3D_parallel_Mmatrix_theta.sh

diff --git a/DiffractionGratings/grating3D_parallel_Mmatrix_theta.sh b/DiffractionGratings/grating3D_parallel_Mmatrix_theta.sh
new file mode 100644
index 0000000..aeb9802
--- /dev/null
+++ b/DiffractionGratings/grating3D_parallel_Mmatrix_theta.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+export OPENBLAS_NUM_THREADS=1
+export OMP_NUM_THREADS=1
+export NPROC=1
+export nb_lam=1
+export nb_theta=1
+
+export lambda_min=400
+export lambda_max=1200
+export FLAG_TOTAL=0
+export GRATING_CASE="half_ellipsoid"
+export myDir="res_Matrix_nb_lam"$nb_lam"_nb_theta"$nb_theta"_total"$FLAG_TOTAL
+
+rm -r $myDir
+mkdir $myDir
+gmsh grating3D.geo -setstring test_case $GRATING_CASE -3 -o grating3D.msh
+
+myfunc() {
+    local mysubDir=$myDir/run_lam$1_theta$2_psi$3
+    mkdir $mysubDir
+    cp grating3D.msh grating3D.pro grating3D_data_$GRATING_CASE.geo grating3D_data.geo grating3D_materials.pro $mysubDir
+    if (( $nb_lam == 1 ))
+    then
+        local lam=$(echo "scale=10;$lambda_min" | bc )
+    else
+        local lam=$(echo "scale=10;$lambda_min+($lambda_max-$lambda_min)/($nb_lam-1)*$1" | bc )
+    fi
+    local theta=$(echo "scale=10;50/($nb_theta-1)*$2" | bc )
+    local psi=$(echo "scale=10;90*$3" | bc )
+    cd $mysubDir
+    getdp grating3D.pro -pre helmholtz_vector -msh grating3D.msh -cal -pos postop_helmholtz_vector -petsc_prealloc 200 -setstring test_case $GRATING_CASE -setnumber lambda0 $lam -setnumber thetadeg $theta -setnumber phideg 90 -setnumber psideg $psi -setnumber FLAG_TOTAL $FLAG_TOTAL
+    if [ $3 -eq 0 ]; then cp res3D/rs.txt ../r_pin_sout_lam$1_theta$2.out ; fi
+    if [ $3 -eq 0 ]; then cp res3D/rp.txt ../r_pin_pout_lam$1_theta$2.out ; fi
+    if [ $3 -eq 1 ]; then cp res3D/rs.txt ../r_sin_sout_lam$1_theta$2.out ; fi
+    if [ $3 -eq 1 ]; then cp res3D/rp.txt ../r_sin_pout_lam$1_theta$2.out ; fi
+    if [ $3 -eq 0 ]; then cp res3D/ts.txt ../t_pin_sout_lam$1_theta$2.out ; fi
+    if [ $3 -eq 0 ]; then cp res3D/tp.txt ../t_pin_pout_lam$1_theta$2.out ; fi
+    if [ $3 -eq 1 ]; then cp res3D/ts.txt ../t_sin_sout_lam$1_theta$2.out ; fi
+    if [ $3 -eq 1 ]; then cp res3D/tp.txt ../t_sin_pout_lam$1_theta$2.out ; fi
+    cp res3D/eff_t1.txt ../eff_t1_lam$1_theta$2_psi$3.out
+    cp res3D/eff_r1.txt ../eff_r1_lam$1_theta$2_psi$3.out
+    cp res3D/eff_t2.txt ../eff_t2_lam$1_theta$2_psi$3.out
+    cp res3D/eff_r2.txt ../eff_r2_lam$1_theta$2_psi$3.out
+    cp res3D/temp-Q_scat.txt ../Q_scat_lam$1_theta$2_psi$3.out
+    cd ../..
+    rm -r $mysubDir
+}
+
+export -f myfunc
+parallel -j $NPROC myfunc ::: $(seq 0 $(($nb_lam-1))) ::: $(seq 0 $(($nb_theta-1))) ::: 0 1
-- 
GitLab