#!/bin/sh
##
##

if [ ! -e apnoxx ] || [ ! -e apn3xx ] || [ ! -e interf ]; then
   echo "ERREUR : Executables manquant pour la creation du maillage!"
   echo "         il faut: apnoxx, apn3xx et interf"
   exit 1
fi

if [ ! -e fichier3d.data ] || [ ! -e fichier2d.data ]; then
   echo "ERREUR : Les fichiers de base fichier2d.data ou fichier3d.data sont manquants"
   exit 1
fi

##
## La syntaxe de la commande:
##
if [[ ( $# != 25 ) && ( $# != 2 || ( $1 != "-maggy" &&  $1 != "-pierre" ) ) && ( $# != 1 ||  $1 == "-h" ||  $1 == "-help" ) ]]; then
    echo ""
    echo "     usage: $0 [-maggy] [-pierre] [P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11] prefixe_du_maillage_amdba"
    echo ""
    echo " PARAMETRES DEFINISSANT LES DIMENSIONS DE LA PORTE D'ARMOIRE "
    echo ""
    echo " maggy = un ensemble de dimensions prétablies basées sur les données fournies par Maggy"
    echo " pierre = un ensemble de dimensions prétablies basées sur les données fournies par Pierre"
    echo ""
    echo ' P0=largeur du cadre '
    echo " P1=epaisseur de la partie supérieure de l'embout (groove) "
    echo " P2=epaisseur de la partie centrale de l'embout (groove) "
    echo " P3=epaisseur de la partie inférieure de l'embout (groove) "
    echo ' P4=epaisseur de la couche de colle '
    echo " P5=profondeur de la partie femelle de l'embout (groove) "
    echo ' P6=longueur de la piece femelle (support de la colle) '
    echo ' P7=longueur de la piece male sur la couche du dessus '
    echo ' P8=debut de la zone "plate" du panneau central '
    echo ' P9=epaisseur de la zone "plate" du panneau central '
    echo ' P10=epaisseur initiale de la zone de "transition" du panneau central '
    echo ' P11=debut de la zone de "transition" du panneau central '
    echo ""
    echo ' N0=nombre de sommets dans la couche du dessus du cadre '
    echo ' N1=nombre de sommets dans la couche du milieu du cadre '
    echo ' N2=nombre de sommets dans la couche du dessous du cadre '
    echo " N3=nombre de sommets dans l'epaisseur de colle "
    echo ' N4=nombre de sommets dans la profondeur de la partie femelle '
    echo ' N5=nombre de sommets dans la partie "pleine" du cadre '
    echo ' N6=nombre de sommets sur la longueur de la piece male sur la couche du dessus '
    echo " N7=nombre de sommets dans la largeur de l'embout de la partie male "
    echo " N8=nombre de sommets dans la largeur du panneau centrale "
    echo " N9=nombre de sommets dans la zone de transition du panneau central "
    echo " N10=nombre de sommets dans l'epaisseur de la zone plate du panneau central "
    echo " N11=nombre de sommets entre le cadre etr la zone de transition du panneau central "
    echo
    echo " prefixe_du_maillage_amdba: ben... le nom qui sera allongé avec l'extension amdba"
    echo
    echo ' Si on appel le script avec seulement un prefixe alors "-maggy" est applique.'
    echo ""
    exit 1
fi

if [ $# == 1 ]; then
   if [ $1 == "-maggy" ] || [ $1 == "-pierre"  ]; then
      echo
      echo Nom de fichier invalide: $1
      exit 1
   fi
fi

if [[ ( $# == 1 ) || (( $# == 2 )  && ( $1 == "-maggy")) ]]; then
   P0=0.046
   P1=0.008
   P2=0.006
   P3=0.004
   P4=0.0001
   P5=0.01
   P6=0.076
   P7=0.056
   P8=0.028
   P9=0.01
   P10=0.001
   P11=0.01
   N0=5
   N1=7
   N2=3
   N3=2
   N4=2
   N5=5
   N6=6
   N7=4
   N8=5
   N9=3
   N10=2
   N11=2
   if [ $1 == "-maggy"  ]; then
      FICHIERAMDBA=$2.amdba
   else 
      FICHIERAMDBA=$1.amdba
   fi
   if [ -e $FICHIERAMDBA ]; then
      echo "ERREUR : Le fichier $FICHIERAMDBA existe deja, pas de destruction"
      exit 1
   fi
   echo
   echo "Creation du maillage amdba "$FICHIERAMDBA" avec les valeurs de défauts"
fi

if [ $# == 2 ] && [ $1 == "-pierre"  ]; then
   P0=0.058
   P1=0.01
   P2=0.005
   P3=0.005
   P4=0.0001
   P5=0.016
   P6=0.18
   P7=0.095
   P8=0.033
   P9=0.01
   P10=0.001
   P11=0.02
   N0=5
   N1=7
   N2=3
   N3=2
   N4=2
   N5=5
   N6=6
   N7=4
   N8=5
   N9=3
   N10=2
   N11=2
   FICHIERAMDBA=$2.amdba
   if [ -e $FICHIERAMDBA ]; then
      echo "ERREUR : Le fichier $FICHIERAMDBA existe deja, pas de destruction"
      exit 1
   fi
   echo
   echo "Creation du maillage amdba "$FICHIERAMDBA" avec les valeurs de défauts"
fi

if [ $# == 25 ]; then
   if [ -e ${25}.amdba ]; then
      echo "ERREUR : Le fichier ${25}.amdba existe deja, pas de destruction"
      exit 1
   fi

   P0=$1      
   P1=$2
   P2=$3
   P3=$4
   P4=$5 
   P5=$6
   P6=$7
   P7=$8
   P8=$9
   P9=${10}
   P10=${11}
   P11=${12}
   N0=${13}
   N1=${14}
   N2=${15}
   N3=${16}
   N4=${17}
   N5=${18}
   N6=${19}
   N7=${20}
   N8=${21}
   N9=${22}
   N10=${23}
   N11=${24}

   FICHIERAMDBA=${25}.amdba

   echo "Creation du maillage amdba "$FICHIERAMDBA", ATTENTION je ne controle pas la validité des données fournies!!!!!"

fi
  
echo
echo "Valeurs choisies des parametres:"
echo
echo P0=$P0  P1=$P1  P2=$P2  P3=$P3  P4=$P4   P5=$P5 
echo P6=$P6  P7=$P7  P8=$P8  P9=$P9  P10=$P10 P11=$P11
echo
echo N0=$N0  N1=$N1  N2=$N2  N3=$N3  N4=$N4   N5=$N5 
echo N6=$N6  N7=$N7  N8=$N8  N9=$N9  N10=$N10 N11=$N11
echo

rm -f mail2d.data mail3d.data run_apnoxx run_apn3xx run_interf run_trnoxx tempo
if [ -e dessus_dessous.nopo ] || [ -e milieu.nopo ] || [ -e pano3.nopo ] || [ -e pano4.nopo ] || [ -e pano5.nopo ] || [ -e pano.nopo ] || [ -e partie1.nopo ] || [ -e armoire.nopo ]; then
   echo Je vais détruire les fichiers:
   echo "  -dessus_dessous.nopo"  
   echo "  -milieu.nopo"  
   echo "  -pano3.nopo"  
   echo "  -pano4.nopo"  
   echo "  -pano5.nopo"  
   echo "  -pano.nopo"  
   echo "  -partie1.nopo" 
   echo "  -armoire.nopo"
   echo -n "o/n ? "
   read PROCEED
   if [[ $PROCEED != "o" ]]; then
    exit 1
   fi
   rm -f dessus_dessous.nopo  milieu.nopo  pano3.nopo  pano4.nopo  pano5.nopo  pano.nopo  partie1.nopo armoire.nopo
fi
EXP0=P0-P5
EXP1=P6-EXP0
EXP2=P6
EXP3=P2+P3
EXP4=P3
EXN0=$(($N7-1))
EXN1=$(($N8-1))
EXN2=$(($N0-1))
EXN3=$(($N1-1))
EXN4=$(($N2-1))
EXN5=$(($N10-1))
NEXT0=EXP0/EXN0
NEXT1=EXP1/EXN1
NEXT2=P1/EXN2
NEXT3=P2/EXN3
NEXT4=P3/EXN4
NEXT5=P9/EXN5
echo '$ '> mail2d.data
echo '$ PARAMETRES DEFINISSANT LES DIMENSIONS '>> mail2d.data
echo '$ P0=largeur du cadre '>> mail2d.data
echo "$ P1=epaisseur de la partie supérieure de l'embout (groove) ">> mail2d.data
echo "$ P2=epaisseur de la partie centrale de l'embout (groove) ">> mail2d.data
echo "$ P3=epaisseur de la partie inférieure de l'embout (groove) ">> mail2d.data
echo '$ P4=epaisseur de la couche de colle '>> mail2d.data
echo "$ P5=profondeur de la partie femelle de l'embout (groove) ">> mail2d.data
echo '$ P6=longueur de la piece femelle (support de la colle) '>> mail2d.data
echo '$ P7=longueur de la piece male sur la couche du dessus '>> mail2d.data
echo '$ P8=debut de la zone "plate" du panneau central'>> mail2d.data
echo '$ P9=epaisseur de la zone "plate" du panneau central'>> mail2d.data
echo '$ P10=epaisseur initiale de la zone de "transition" du panneau central'>> mail2d.data
echo '$ P11=debut de la zone de "transition" du panneau central'>> mail2d.data
echo '$ '>> mail2d.data
echo '!P0='$P0 >> mail2d.data
echo '!P1='$P1 >> mail2d.data
echo '!P2='$P2 >> mail2d.data
echo '!P3='$P3 >> mail2d.data
echo '!P4='$P4 >> mail2d.data
echo '!P5='$P5 >> mail2d.data
echo '!P6='$P6 >> mail2d.data
echo '!P7='$P7 >> mail2d.data
echo '!P8='$P8 >> mail2d.data
echo '!P9='$P9 >> mail2d.data
echo '!P10='$P10 >> mail2d.data
echo '!P11='$P11 >> mail2d.data
echo '$ '>> mail2d.data
echo '$ NOMBRE DE SOMMETS SUR LES ARETES  '>> mail2d.data
echo '$ '>> mail2d.data
echo '$ N0=nombre de sommets dans la couche du dessus du cadre '>> mail2d.data
echo '$ N1=nombre de sommets dans la couche du milieu du cadre '>> mail2d.data
echo '$ N2=nombre de sommets dans la couche du dessous du cadre '>> mail2d.data
echo "$ N3=nombre de sommets dans l'epaisseur de colle ">> mail2d.data
echo '$ N4=nombre de sommets dans la profondeur de la partie femelle '>> mail2d.data
echo '$ N5=nombre de sommets dans la partie "pleine" du cadre '>> mail2d.data
echo "$ NTB1=nombre total de sommets du bord jusqu'a l'embout ">> mail2d.data
echo '$ N6=nombre de sommets sur la longueur de la piece male sur la couche du dessus '>> mail2d.data
echo "$ N7=nombre de sommets dans la largeur de l'embout de la partie male ">> mail2d.data
echo "$ N8=nombre de sommets dans la largeur du panneau centrale ">> mail2d.data
echo "$ N9=nombre de sommets dans la zone de transition du panneau central">> mail2d.data
echo "$ N10=nombre de sommets dans l'epaisseur de la zone plate du panneau central">> mail2d.data
echo "$ N11=nombre de sommets entre le cadre etr la zone de transition du panneau central (2 sommets)">> mail2d.data
echo '$ '>> mail2d.data
echo '!N0='$N0 >> mail2d.data
echo '!N1='$N1 >> mail2d.data
echo '!N2='$N2 >> mail2d.data
echo '!N3='$N3 >> mail2d.data
echo '!N4='$N4 >> mail2d.data
echo '!N5='$N5 >> mail2d.data
echo '!NTB1=N5+N3+N4-2 '>> mail2d.data
echo '!N6='$N6 >> mail2d.data
echo '!N7='$N7 >> mail2d.data
echo '!N8='$N8 >> mail2d.data
echo '!N9='$N9 >> mail2d.data
echo '!N10='$N10 >> mail2d.data
echo '!N11='$N11 >> mail2d.data
cat fichier2d.data >> mail2d.data
if [ $P5 == $P11 ]; then
   sed -e s/\$\ P5eqP11// mail2d.data > tempo
   grep -v P5neP11 tempo > mail2d.data
else
   sed -e s/\$\ P5neP11// mail2d.data > tempo
   grep -v P5eqP11 tempo > mail2d.data
fi
echo '!P0='$P0 > mail3d.data
echo '!P1='$P1 >> mail3d.data
echo '!P2='$P2 >> mail3d.data
echo '!P3='$P3 >> mail3d.data
echo '!P5='$P5 >> mail3d.data
echo '!P6='$P6 >> mail3d.data
echo '!P8='$P8 >> mail3d.data
echo '!P9='$P9 >> mail3d.data
echo '!P10='$P10 >> mail3d.data
echo '!P11='$P11 >> mail3d.data
echo '!EXP0='$EXP0 >> mail3d.data
echo '!EXP1='$EXP1 >> mail3d.data
echo '!EXP2='$EXP2 >> mail3d.data
echo '!EXP3='$EXP3 >> mail3d.data
echo '!EXP4='$EXP4 >> mail3d.data
echo '!EXN0='$EXN0 >> mail3d.data
echo '!EXN1='$EXN1 >> mail3d.data
echo '!EXN2='$EXN2 >> mail3d.data
echo '!EXN3='$EXN3 >> mail3d.data
echo '!EXN4='$EXN4 >> mail3d.data
echo '!EXN5='$EXN5 >> mail3d.data
echo '!NEXT0='$NEXT0 >> mail3d.data
echo '!NEXT1='$NEXT1 >> mail3d.data
echo '!NEXT2='$NEXT2 >> mail3d.data
echo '!NEXT3='$NEXT3 >> mail3d.data
echo '!NEXT4='$NEXT4 >> mail3d.data
echo '!NEXT5='$NEXT5 >> mail3d.data
cat fichier3d.data >> mail3d.data

echo "e" > run_apnoxx
echo "mail2d.data" >> run_apnoxx
echo "F" >> run_apnoxx
./apnoxx < run_apnoxx > /dev/null
if [ -e dessus_dessous.nopo ] && [ -e milieu.nopo ] && [ -e pano3.nopo ] && [ -e pano4.nopo ] && [ -e pano5.nopo ] && [ -e pano.nopo ] && [ -e partie1.nopo  ]; then
  echo "e" > run_apn3xx
  echo "mail3d.data" >> run_apn3xx
  echo "F" >> run_apn3xx
  ./apn3xx < run_apn3xx > /dev/null
else
  echo "ERREUR : Probleme lors de la creation des composantes 2D"
  if [ ! -e dessus_dessous.nopo ]; then 
     echo dessus_dessous.nopo" "
  fi
  if [ ! -e milieu.nopo ]; then
     echo -n milieu.nopo" "
  fi
  if [ ! -e pano3.nopo ]; then 
     echo -n pano3.nopo" "
  fi
  if [ ! -e pano4.nopo ]; then 
     echo -n pano4.nopo" "
  fi
  if [ ! -e pano5.nop ]; then  
     echo -n pano5.nopo" "
  fi
  if [ ! -e pano.nopo ]; then
     echo -n pano.nopo" "
  fi
  if [ ! -e partie1.nopo  ]; then
     echo -n partie1.nopo" "
  fi
  echo "manquant(s)"
  exit 1
fi
if [ -e armoire.nopo ]; then
  echo "armoire.nopo" > run_interf
  echo "$FICHIERAMDBA" >> run_interf
  interf < run_interf > /dev/null
else
  echo "ERREUR : Probleme lors de la creation des composantes 3D"
  exit 1
fi

if [ -e dessus_dessous.nopo ] || [ -e milieu.nopo ] || [ -e pano3.nopo ] || [ -e pano4.nopo ] || [ -e pano5.nop ] || [ -e pano.nopo ] || [ -e partie1.nopo ] || [ -e armoire.nopo ]; then
  echo -n "Conserver les nopo pour visualisation avec trnoxx? (o/n) "
   read PROCEED
   if [[ $PROCEED == "n" ]]; then
     rm -f dessus_dessous.nopo  milieu.nopo  pano3.nopo  pano4.nopo  pano5.nopo  pano.nopo  partie1.nopo armoire.nopo
  fi
fi

rm mail2d.data mail3d.data run_apnoxx run_apn3xx run_interf tempo

if [ -e $FICHIERAMDBA  ]; then
   echo "Tout est OK fichier $FICHIERAMDBA cree"
else
   echo "ERREUR : Probleme lors de la creation de $FICHIERAMDBA"
fi
