#!/bin/csh ####################################################################################################################################### # # # G E N E R A T I O N D U F I L M S U R L A D Y N A M I Q U E I N T E R N E D U P R O T O N : # # # # # # Utilisation : # # # # $xrq/proton.J0$Z # # # # # # Nota : # # # # Cette version est conservee pour des # # raisons de sentimentalite, mais est # # remplacee par '$xrq/proton.J1$Z'... # # # # # # Author of '$xrq/proton.J0$Z' : # # # # Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### echo "ATTENTION : ne surtout pas se deloguer sous peine de perdre l'initialisation graphique et X-Window..." set kill_DKVP=$EXIST source $Fdisk_video_P unset kill_DKVP # Initialisations diverses avec '$xcg/kill$Z', mais a noter que ce dernier ne # # sera plus fait par la suite lors des appels a '$xci/disk_video_P$Z'. # set Disque=000000001 set Face=1 # Definition du disque sur lequel ecrire. # set Sep=$K_sepP # Definition du separateur des composantes d'un nom. # set imageO=1 # Definition du numero de la premiere image. # set imageV=$imageO # Definition de la premiere image a visualiser. # set Nimages=1024 # Definition du nombre d'images a generer. # set Ltrainees=16 # Definition de la longueur des trainees. # @ simultanees = 2 * $Ltrainees # Nombre d'images simultanees autorisees. # set positionnement="p0=$imageO pV=$imageV" set accumulation="pas=1 renormaliser=FAUX attenuation=0.847 fB=4.0" set ralentissement="np=$Nimages ralentissement=0.125 nefqv=2500 nuages=VRAI" # Definition des parametres fondamentaux. # set imageN=$imageO @ imageN = $imageN + $Nimages @ imageN = $imageN - 1 # Definition du numero de la derniere image. # source $xrq/proton.J0.1$Y # Definition du choix du directory de generation des images. # set generation="R=$images couleurs=VRAI trainees=FAUX simultanees=$simultanees synchroniser=FAUX messages=FAUX parametres=VRAI" # Definition des arguments d'entrees-sorties. # @ npA = $imageO @ npE = $npA + $Nimages @ npE = $npE - 1 @ npB = $npE / 8 @ npC = $npE / 2 @ npD = $npE * 6875 @ npD = $npD / 10000 @ npX = $npE + 1 @ npY = $npX + 1 @ npZ = $npY + 1 set luminance = "$K_VIDE" set luminance = "$luminance ""npl1=$npA l1=1.000000 dl1=00.000000" set luminance = "$luminance ""npl2=$npB l2=1.000000 dl2=00.000000" set luminance = "$luminance ""npl3=$npC l3=1.000000 dl3=00.000000" set luminance = "$luminance ""npl4=$npD l4=1.000000 dl4=00.000000" set luminance = "$luminance ""npl5=$npE l5=1.000000 dl5=00.000000" set translate = "$K_VIDE" set translate = "$translate ""npOX1=$npA OX1=0.000000 dOX1=00.000000" set translate = "$translate ""npOX2=$npB OX2=0.000000 dOX2=00.000000" set translate = "$translate ""npOX3=$npC OX3=0.000000 dOX3=00.000000" set translate = "$translate ""npOX4=$npD OX4=0.000000 dOX4=00.000000" set translate = "$translate ""npOX5=$npE OX5=0.000000 dOX5=00.000000" set translate = "$translate ""npOY1=$npA OY1=0.000000 dOY1=00.000000" set translate = "$translate ""npOY2=$npB OY2=0.000000 dOY2=00.000000" set translate = "$translate ""npOY3=$npC OY3=0.000000 dOY3=00.000000" set translate = "$translate ""npOY4=$npD OY4=0.000000 dOY4=00.000000" set translate = "$translate ""npOY5=$npE OY5=0.000000 dOY5=00.000000" set translate = "$translate ""npOZ1=$npA OZ1=0.000000 dOZ1=00.000000" set translate = "$translate ""npOZ2=$npB OZ2=0.000000 dOZ2=00.000000" set translate = "$translate ""npOZ3=$npC OZ3=0.000000 dOZ3=00.000000" set translate = "$translate ""npOZ4=$npD OZ4=0.000000 dOZ4=00.000000" set translate = "$translate ""npOZ5=$npE OZ5=0.000000 dOZ5=00.000000" set zoom = "$K_VIDE" set zoom = "$zoom ""npr1=$npA r1=1.333333 dr1=00.000000" set zoom = "$zoom ""npr2=$npC r2=1.333333 dr2=00.000000" set zoom = "$zoom ""npr3=$npD r3=1.866666 dr3=00.000000" set zoom = "$zoom ""npr4=$npE r4=1.333333 dr4=00.000000" set zoom = "$zoom ""npr5=$npX r5=1.333333 dr5=00.000000" set rot_OX = "$K_VIDE" set rot_OX = "$rot_OX ""npX1=$npA tX1=0.000000 dtX1=00.000000" set rot_OX = "$rot_OX ""npX2=$npB tX2=0.000000 dtX2=00.000000" set rot_OX = "$rot_OX ""npX3=$npC tX3=3.141592 dtX3=12.500000" set rot_OX = "$rot_OX ""npX4=$npD tX4=4.712389 dtX4=07.500000" set rot_OX = "$rot_OX ""npX5=$npE tX5=6.283185 dtX5=00.000000" set rot_OY = "$K_VIDE" set rot_OY = "$rot_OY ""npY1=$npA tY1=0.000000 dtY1=00.000000" set rot_OY = "$rot_OY ""npY2=$npB tY2=0.000000 dtY2=00.000000" set rot_OY = "$rot_OY ""npY3=$npC tY3=0.000000 dtY3=00.000000" set rot_OY = "$rot_OY ""npY4=$npD tY4=0.000000 dtY4=00.000000" set rot_OY = "$rot_OY ""npY5=$npE tY5=0.000000 dtY5=00.000000" set rot_OZ = "$K_VIDE" set rot_OZ = "$rot_OZ ""npZ1=$npA tZ1=0.000000 dtZ1=00.000000" set rot_OZ = "$rot_OZ ""npZ2=$npC tZ2=0.000000 dtZ2=00.000000" set rot_OZ = "$rot_OZ ""npZ3=$npD tZ3=0.500000 dtZ3=00.500000" set rot_OZ = "$rot_OZ ""npZ4=$npE tZ4=0.523599 dtZ4=00.000000" set rot_OZ = "$rot_OZ ""npZ5=$npX tZ5=0.000000 dtZ5=00.000000" set transformation="$luminance $translate $zoom $rot_OX $rot_OY $rot_OZ" # Definition de la suite des transformations. # Pal # Definition du format des images 'Pal'... # $DELETE_VALIDE $images* >& $nul # Et ce afin, en particulier de ne pas se tromper dans la synchronisation. # $xrq/nucleon.L0$X $ralentissement $transformation $generation $positionnement $formatI & # Le programme de simulation est lance en parallele, et se synchronise sur # # les etats d'espace disque insuffisant, quant au programme de calcul des # # trainees, il se synchronise sur l'existence de l'image (J+L-1). # set continuer=$EXIST set imageJ=$imageV # Premiere image a accumuler (J). # set imageJpL=$imageO # Derniere image a accumuler (J+L-1). # @ imageJ_JpL = $imageO + $Ltrainees @ imageJ_JpL = $imageJ_JpL - 1 # Pour savoir a partir de quand incrementer 'imageJ'. # set Tinit="Initialisation" # La premiere fois on fera une grande initialisation... # set compteur=1 # Compteur des images. # while ($continuer == $EXIST) set numero=`$xci/nombres$X p=$imageJpL d=$imageJpL` set Snumero=$Sep$numero # Numero de l'image J+L-1. # set attendre=$EXIST # Afin de pouvoir attendre l'image J+L-1. # while ($attendre == $EXIST) if ((-e "$images$ROUGE$Snumero") && (-e "$images$VERTE$Snumero") && (-e "$images$BLEUE$Snumero")) then set attendre=$NEXIST # Des que l'image J+L-1 existe, on arrete d'attendre, et ainsi, on va pouvoir # # lancer le calcul des trainees sur la sequence (J,J+1,...,J+L-1). # else sleep $TEMPORISATION # Si l'image n'existe pas, on attend un peu avant de relancer le test... # endif end set DnomT=$xT set InomT="PROTON" set RnomT=$DnomT$K_sepS$InomT set nomT=$RnomT$Snumero # Nom des images contenant l'accumulation courante, mais on notera que # # contrairement a d'habitude, on n'utilise pas '`Getmp`', car en effet, # # sinon, les noms generes sont trop longs... # if (-e "$nomT$ROUGE") then $DELETE_VALIDE $nomT$ROUGE else endif if (-e "$nomT$VERTE") then $DELETE_VALIDE $nomT$VERTE else endif if (-e "$nomT$BLEUE") then $DELETE_VALIDE $nomT$BLEUE else endif $xci/accumule.01$X A=$images$ROUGE$Sep premiere=$imageJ derniere=$imageJpL $accumulation R=$nomT$ROUGE $formatI $xci/accumule.01$X A=$images$VERTE$Sep premiere=$imageJ derniere=$imageJpL $accumulation R=$nomT$VERTE $formatI $xci/accumule.01$X A=$images$BLEUE$Sep premiere=$imageJ derniere=$imageJpL $accumulation R=$nomT$BLEUE $formatI # Calcul des trainees sur la sequence (J,J+1,...,J+L-1). # if ($compteur == 1) then set mode=$debutS_DKVP else if ($compteur < $Nimages) then set mode=$ajoutS_DKVP else set mode=$finS_DKVP endif endif Pushd $DnomT # Ainsi on se place dans le directory des images a cause de '$xci/disk_video_P$Z'. # $xci/disk_video_P$Z $InomT$Sep $numero $numero $RVB_DKVP $Disque $Face $Tinit $mode "$formatI" $Gamma_proton_JX # Enregistrement de la trainee courante (J,J+1,...,J+L-1). # Popd set Tinit="rien" # Les fois suivantes on ne fera rien ... # if (-e "$nomT$ROUGE") then $DELETE_VALIDE $nomT$ROUGE else endif if (-e "$nomT$VERTE") then $DELETE_VALIDE $nomT$VERTE else endif if (-e "$nomT$BLEUE") then $DELETE_VALIDE $nomT$BLEUE else endif if ($imageJpL >= $imageJ_JpL) then # Cas ou l'on a fait au moins 'Ltrainees' images : # $DELETE_VALIDE $images$ROUGE$Sep`$xci/nombres$X p=$imageJ d=$imageJ` $DELETE_VALIDE $images$VERTE$Sep`$xci/nombres$X p=$imageJ d=$imageJ` $DELETE_VALIDE $images$BLEUE$Sep`$xci/nombres$X p=$imageJ d=$imageJ` # Destruction de l'image (J). # @ imageJ = $imageJ + 1 # Changement de premiere image a accumuler (J). # else # Cas ou l'on a fait moins de 'Ltrainees' images : on est au debut, on ne touche # # donc ni a 'imageJ', ni a l'image (J). # endif @ imageJpL = $imageJpL + 1 # Changement de derniere image a accumuler (J+L-1). # if ($imageJpL > $imageN) then set continuer=$NEXIST # Et on a fini... # else endif $xci/feu_vert$X feu=$feu_proton_JX # Et on synchronise '$xrq/nucleon.L0$X' quelle que soit l'option 'simultanees=' # # dans '$generation'. # @ compteur = $compteur + 1 # Et comptage des images. # end $xci/feu_init$X feu=$feu_proton_JX $DELETE_VALIDE $images* >& $nul # Parce que l'on est propre... #