#######################################################################################################################################
#                                                                                                                                     #
#         G E N E R A T I O N   D E S   P A R T I C U L E S   D A N S                                                                 #
#         U N   M I L I E U   D E   P R O P A G A T I O N   C O R R E S P O N D A N T                                                 #
#         A   L A   C A R T E   D E   D E N S I T E   T R I D I M E N S I O N N E L L E                                               #
#         D E S   B R O N C H I O L E S   T E R M I N A L E S   D E S   P O U M O N S                                                 #
#         A V E C   A J U S T E M E N T   A U T O M A T I Q U E  :                                                                    #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiird/.ACIN.H.12.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois COLONNA (LACTAMME, AAAAMMJJhhmmss).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  $DELETE             $xTV/COORDONNEES$COORD_X
$Z                  $DELETE             $xTV/COORDONNEES$COORD_Y
$Z                  $DELETE             $xTV/COORDONNEES$COORD_Z

$Z                  $DELETE             $xTV/COORDONNEES_01$COORD_X
$Z                  $DELETE             $xTV/COORDONNEES_01$COORD_Y
$Z                  $DELETE             $xTV/COORDONNEES_01$COORD_Z

$Z                  setParam            _____NPointsDilate            225

$Z                  SETParam            _____DupliquerP               FAUX

$Z                  setParam            _____DupliquerPX              0.0

$Z                  setParam            _____DupliquerPY              0.0

$Z                  setParam            _____DupliquerPZ              0.0

$Z                  setParam            _____DupliquerPS              0.6

$Z                  setParam            _____DupliquerPF              1.0

$Z                  setParam            _____DupliquerPB              1.0

$Z                  setParam            _____DupliquerPFe             1.0

$Z                  setParam            _____DupliquerPFd             0.0

$Z                  setParam            _____Lignes                   VRAI

$Z                  if                  ($_____DupliquerP == FAUX) then
$Z                                      set                 ReCtAnGuLaIrE="$K_VIDE"
$Z                  else
$Z                                      set                 ReCtAnGuLaIrE="rectangulaire=FAUX grand_carre=FAUX"
$Z                                      set                 EchelleX=2
$Z                                      # Effectivement dans ce mode, il n'y a pas de changement de format...                         #
$Z                  endif

$Z                  SET                 mode=$UNDEF
$Z                                      # Pour que 'listN' fonctionne correctement...                                                 #
$Z                  mode                $xTV/COORDONNEES
$Z                  SET                 mode=$mode
$Z                                      # Pour que 'listN' fonctionne correctement...                                                 #
$Z                  if                  ($mode != $MODE_400) then
$Z                                      # Ceci a ete introduit le 20020307083901 afin de permetttre de conserver un fichier           #
$Z                                      # '$xTV/COORDONNEES' anterieur et ainsi eviter les '$xci/dilate.01$X' qui suivent et          #
$Z                                      # qui sont tres couteux en temps. La generation de '$xTV/COORDONNEES' n'est donc faite        #
$Z                                      # que si le fichier '$xTV/COORDONNEES' n'existe pas (mode '$MODE_000' ou n'est pas protege.   #

$Z                                      $DELETE             $xTV/COORDONNEES

$c                                      #include  <stdio.h>
$c
$c                                      #define   NA0       PremiereM
$c                                      #define   NA        DerniereM
$c                                      /* Nombre de couches a traiter...                                                            */
$c
#20160307081539____:$c                                      #define   Zmin      ZminM                                                 #
#20160307081539____:$c                                      #define   Zmax      ZmaxM                                                 #
$c                                      /* Extrema du 'Z'.                                                                           */
$c
$c                                      int       main()
$c                                                {
$c                                                int       n;
$c                                                int       z=Zmin;
$c
$c                                                for       (n=(NA0-NA0) ; n<=(NA-NA0) ; n++)
$c                                      /* On notera les '-NA0' destines a assurer la compatibilite avec le numerotage des images    */
$c                                      /* '$xTV/BOITE.2.????' tel qu'il est defini dans 'v $xiird/.ACIN.H.11.$U n-NA0'.             */
$c                                                          {

$c                                                          printf("if        (`expr %d %% $_____DistanceZ` == 0) then\n"
$c                                                                ,z
$c                                                                 );
$c                                      /* Apres quelques difficultes, je comprends le 20160308090844 le role de ce test. En fait    */
$c                                      /* il s'agit d'un sous-echantillonnage de l'axe 'OZ' : on ne prend qu'un plan {OX,OY}        */
$c                                      /* sur '$_____DistanceZ', de la meme facon que le plan {OX,OY} est lui-meme echantillonne    */
$c                                      /* grace a '$_____DistanceX' et a '$_____DistanceY'...                                       */
$c                                                          printf("     set  NoMbRe=`$xci/liste_points$X
$c                                                                                              A=$xTV/BOITE.2.%04d
$c                                                                                              eX=FAUX eY=FAUX eZ=FAUX
$c                                                                                              eNIVEAU=FAUX
$c                                                                                              points=VRAI
$c                                                                                              en_tete=FAUX
$c                                                                                              $formatI`\n"
$c                                                                ,n
$c                                                                 );
$c                                      /* Comptage des points non NOIRs...                                                          */
$c                                                          printf("     if   ($NoMbRe > 0) then\n");
$c                                      /* Ainsi, on ne traite ci-apres que les tranches non vides du milieu...                      */
$c                                                          printf("          $xci/dilate.01$X
$c                                                                                      A=$xTV/BOITE.2.%04d
$c                                                                                      dilater=FAUX
$c                                                                                      points=$_____NPointsDilate
$c                                                                                      $formatI                                  |
$c                                                                            $xci/and$X
$c                                                                                      A2=$xTV/BOITE.B
$c                                                                                      $formatI                                  |
$c                                                                            $xci/liste_points$X
$c                                                                                      lignes=$_____Lignes
$c                                                                                      $ReCtAnGuLaIrE
$c                                                                                      dupliquer=$_____DupliquerP
$c                                                                                      Xc=$_____DupliquerPX
$c                                                                                      Yc=$_____DupliquerPY
$c                                                                                      Zc=$_____DupliquerPZ
$c                                                                                      seuil=$_____DupliquerPS
$c                                                                                      Fexponentielle=$_____DupliquerPF
$c                                                                                      base=$_____DupliquerPB
$c                                                                                      Fexposant=$_____DupliquerPFe
$c                                                                                      Fdistance=$_____DupliquerPFd
$c                                                                                      eZ=VRAI Z=%d
$c                                                                                      $formatI $_____ZminZmax
$c                                                                                                >>! $xTV/COORDONNEES\n"
$c                                                                ,n
$c                                                                ,z
$c                                                                 );
$c                                      /* Rappelons que '$xTV/BOITE.B' contient un ensemble de points situes aux noeuds d'un        */
$c                                      /* reseau carre. Avec le '$xci/and$X' on procede donc a un echantillonnage du milieu...      */
$c                                                          printf("     else\n");
$c                                                          printf("     endif\n");
$c                                                          printf("else\n");
$c                                                          printf("endif\n");
$c
$c                                                          z++;
$c                                      /* Generation du milieu. On notera le "dilater=FAUX" destine a generer des points dans le    */
$c                                      /* milieu qui ne soient pas trop proches du bord (pour eviter qu'ils s'echappent...).        */
$c                                                          }
$c                                                }

$Z                  else
$Z                                      $CA       $xo/ATTENTION$T
$Z                                      saut
$Z                                      saut
$Z                                      echo      "Le fichier anterieur '"'$xTV/COORDONNEES'"' a ete conserve et va etre reutilise."
$Z                                      saut
$Z                                      saut
$Z                  endif

$Z                  $CA                 $xTV/COORDONNEES                                                                                \
$Z                                      | $GRE    "^[Xx]="                                                                              \
$Z                                      | $SE     -e "s/^[Xx]=//"                                                                       \
$Z                                                                                                  >   $xTV/COORDONNEES_01$COORD_X
$Z                  $CA                 $xTV/COORDONNEES                                                                                \
$Z                                      | $GRE    "^[Yy]="                                                                              \
$Z                                      | $SE     -e "s/^[Yy]=//"                                                                       \
$Z                                                                                                  >   $xTV/COORDONNEES_01$COORD_Y
$Z                  $CA                 $xTV/COORDONNEES                                                                                \
$Z                                      | $GRE    "^[Zz]="                                                                              \
$Z                                      | $SE     -e "s/^[Zz]=//"                                                                       \
$Z                                                                                                  >   $xTV/COORDONNEES_01$COORD_Z

$Z                  set                 PartNX=`$WC $xTV/COORDONNEES_01$COORD_X`
$Z                  set                 PartNX=$PartNX[$WC1]
$Z                  set                 PartNY=`$WC $xTV/COORDONNEES_01$COORD_Y`
$Z                  set                 PartNY=$PartNY[$WC1]
$Z                  set                 PartNZ=`$WC $xTV/COORDONNEES_01$COORD_Z`
$Z                  set                 PartNZ=$PartNZ[$WC1]

#20220615102355____:$Z                  set                 PartN=`$xcg/MAX3.01$X x=$PartNX y=$PartNY z=$PartNZ signe="$K_VIDE"`      #
$Z                  set                 PartN=`$xcg/MIN3.01$X x=$PartNX y=$PartNY z=$PartNZ signe="$K_VIDE"`

$Z                  $xrv/AXPB.01$X                                                                                                      \
$Z                                      CAL1=FAUX                                                                                       \
$Z                                      ne=$PartN                                                                                       \
$Z                                      fichier=$xTV/COORDONNEES_01$COORD_X                                                             \
$Z                                      homothetie=$EchelleX translation=$TranslationX                                                  \
$Z                                                                                                  >   $xTV/COORDONNEES$COORD_X
$Z                  $xrv/AXPB.01$X                                                                                                      \
$Z                                      CAL1=FAUX                                                                                       \
$Z                                      ne=$PartN                                                                                       \
$Z                                      fichier=$xTV/COORDONNEES_01$COORD_Y                                                             \
$Z                                      homothetie=$EchelleY translation=$TranslationY                                                  \
$Z                                                                                                  >   $xTV/COORDONNEES$COORD_Y
$Z                  $xrv/AXPB.01$X                                                                                                      \
$Z                                      CAL1=FAUX                                                                                       \
$Z                                      ne=$PartN                                                                                       \
$Z                                      fichier=$xTV/COORDONNEES_01$COORD_Z                                                             \
$Z                                      homothetie=$EchelleZ translation=$TranslationZ                                                  \
$Z                                                                                                  >   $xTV/COORDONNEES$COORD_Z

$Z                  $DELETE             $xTV/COORDONNEES_01$COORD_X
$Z                  $DELETE             $xTV/COORDONNEES_01$COORD_Y
$Z                  $DELETE             $xTV/COORDONNEES_01$COORD_Z



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.