#!/bin/csh
#######################################################################################################################################
# #
# G E N E R A T I O N D ' U N C O U P L E S T E R E O S C O P I Q U E #
# O U L E S Q U A R K S D E V A L E N C E D E C R I V E N T D E S #
# O R B I T E S C I R C U L A I R E S O R T H O G O N A L E S : #
# #
# #
# Utilisation : #
# #
# $xrq/nucleon.L8$Z #
# #
# #
# Author of '$xrq/nucleon.L8$Z' : #
# #
# Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). #
# #
#######################################################################################################################################
source $Fdivers
# Pour definir les alias 'droite' et 'gauche'... #
set PROTON="NUCL"
source $xrq/proton.J9.1$Y
# Definition du choix du directory de generation des images. #
#######################################################################################################################################
# #
# P A R A M E T R E S D E L A S I M U L A T I O N : #
# #
#######################################################################################################################################
source $xrq/nucleon.L4.3$Y
# Quelques parametres... #
set Nimages=32
# Definition du nombre d'images a integrer. #
set imageV=$imageO
# Definition de la premiere image, #
set imageN=$imageO
@ imageN = $imageN + $Nimages
@ imageN = $imageN - 1
# Definition de la derniere image. #
@ npA = $imageO
# Definition de 'npA' (numero de la premiere periode), #
@ npX = $imageN
# Definition de 'npX' (numero de la derniere periode). #
@ npB = $npX * 1000
@ npB = $npB / 1000
if ($npB <= $npA) then
@ npB = $npA + 1
else
endif
set luminance = "$K_VIDE"
set luminance = "$luminance ""$K_VIDE"
set translate = "$K_VIDE"
set translate = "$translate ""$K_VIDE"
set zoom = "$K_VIDE"
set zoom = "$zoom ""$K_VIDE"
set rot_OX = "$K_VIDE"
set rot_OX = "$rot_OX ""$K_VIDE"
set rot_OY = "$K_VIDE"
set rot_OY = "$rot_OY ""$K_VIDE"
set rot_OZ = "$K_VIDE"
set rot_OZ = "$rot_OZ ""$K_VIDE"
alias valeurs 'set pD=\!:1 ; set rayD=(\!:2) ; set angD=(\!:3) ; set pA=\!:4 ; set rayA=(\!:5) ; set angA=(\!:6) ; \\
set Alpha=\!:7 ; set Beta=\!:8 ; set Fval="\!:9" ; \\
set D1=1 ; set D2=`expr $D1 + 1` ; set A1=$D1 ; set A2=$D2 ; \\
set Depart = "D=$pD rD=$rayD[$D1] drD=$rayD[$D2] aD=$angD[$D1] daD=$angD[$D2]" ; \\
set Arrivee = "A=$pA rA=$rayA[$A1] drA=$rayA[$A2] aA=$angA[$A1] daA=$angA[$A2]" ; \\
$xci/valeurs_trig$X $Depart $Arrivee alpha=$Alpha beta=$Beta gamma=0.0 cubique=FAUX >>! $Fval ; \\
unset pD rayD angD pA rayA angA Fval Alpha Beta gamma D1 D2 A1 A2 Depart Arrivee'
# Generation incrementale des fichiers des transformations par interpolation lineaire. #
set rayon1 = (1.000000 00.000000)
set rayon2 = (1.000000 00.000000)
set theta1 = (0.000000 00.000000)
set theta2 = (6.283185 00.000000)
FileTmpB FXqRR
valeurs $npA $rayon1 $theta1 $npB $rayon2 $theta2 1.0 0.0 $FXqRR
set XqRR = "$K_VIDE"
set XqRR = "$XqRR ""X_quark_REEL_ROUGE=$FXqRR"
FileTmpB FYqRR
valeurs $npA $rayon1 $theta1 $npB $rayon2 $theta2 0.0 1.0 $FYqRR
set YqRR = "$K_VIDE"
set YqRR = "$YqRR ""Y_quark_REEL_ROUGE=$FYqRR"
FileTmpB FZqRR
valeurs $npA $rayon1 $theta1 $npB $rayon2 $theta2 0.0 0.0 $FZqRR
set ZqRR = "$K_VIDE"
set ZqRR = "$ZqRR ""Z_quark_REEL_ROUGE=$FZqRR"
FileTmpB FXqRV
valeurs $npA $rayon1 $theta1 $npB $rayon2 $theta2 1.0 0.0 $FXqRV
set XqRV = "$K_VIDE"
set XqRV = "$XqRV ""X_quark_REEL_VERTE=$FXqRV"
FileTmpB FYqRV
valeurs $npA $rayon1 $theta1 $npB $rayon2 $theta2 0.0 0.0 $FYqRV
set YqRV = "$K_VIDE"
set YqRV = "$YqRV ""Y_quark_REEL_VERTE=$FYqRV"
FileTmpB FZqRV
valeurs $npA $rayon1 $theta1 $npB $rayon2 $theta2 0.0 1.0 $FZqRV
set ZqRV = "$K_VIDE"
set ZqRV = "$ZqRV ""Z_quark_REEL_VERTE=$FZqRV"
FileTmpB FXqRB
valeurs $npA $rayon1 $theta1 $npB $rayon2 $theta2 0.0 0.0 $FXqRB
set XqRB = "$K_VIDE"
set XqRB = "$XqRB ""X_quark_REEL_BLEUE=$FXqRB"
FileTmpB FYqRB
valeurs $npA $rayon1 $theta1 $npB $rayon2 $theta2 1.0 0.0 $FYqRB
set YqRB = "$K_VIDE"
set YqRB = "$YqRB ""Y_quark_REEL_BLEUE=$FYqRB"
FileTmpB FZqRB
valeurs $npA $rayon1 $theta1 $npB $rayon2 $theta2 0.0 1.0 $FZqRB
set ZqRB = "$K_VIDE"
set ZqRB = "$ZqRB ""Z_quark_REEL_BLEUE=$FZqRB"
set transformation="$luminance $translate $zoom $rot_OX $rot_OY $rot_OZ $XqRR $YqRR $ZqRR $XqRV $YqRV $ZqRV $XqRB $YqRB $ZqRB"
# Definition des differentes transformations geometriques. #
set Lumiere = "$K_VIDE"
set Lumiere = "$Lumiere ""Lx=1.000000e-15"
set Lumiere = "$Lumiere ""Ly=1.000000e-15"
set Lumiere = "$Lumiere ""Lz=1.000000e-15"
# Definition de la source lumineuse, telle que pratiquement toutes les particules soient #
# derriere elle par rapport a l'observateur... #
set convolutionP=9
set convolutionC=25
set convolution="noyau_variable=FAUX cNOIR=VRAI convolution=$convolutionP facteur=0.100"
# Definition des operations de convolution. #
set stereo="0.04"
# Definition de la valeur absolue du demi-decalage des yeux... #
set vie="1.000e-25"
set simulation="$K_VIDE"
set simulation="$simulation ""graine=1789"
set simulation="$simulation ""rapide=FAUX"
set simulation="$simulation ""p0=$imageO pV=$imageV"
set simulation="$simulation ""ralentissement=1.00"
set simulation="$simulation ""particules=200"
set simulation="$simulation ""auto_reguler=FAUX"
set simulation="$simulation ""injection=VRAI injectionI=VRAI injectionS=VRAI"
set simulation="$simulation ""nefqv=400"
set simulation="$simulation ""neq=20000"
set simulation="$simulation ""neaq=20000"
set simulation="$simulation ""neg=40000"
set simulation="$simulation ""1voisinage2=0.0160e-15"
set simulation="$simulation ""2voisinage2=0.2500e-15"
set simulation="$simulation ""p_Q___QxG=0.2"
set simulation="$simulation ""p_AQ___AQxG=0.2"
set simulation="$simulation ""i_Q___QxG=VRAI"
set simulation="$simulation ""i_AQ___AQxG=VRAI"
set simulation="$simulation ""p_QxG___Q=1.0"
set simulation="$simulation ""p_AQxG___AQ=1.0"
set simulation="$simulation ""position=0.0100e-15"
set simulation="$simulation ""dvmqr=$vie"
set simulation="$simulation ""dvmaqr=$vie"
set simulation="$simulation ""dvmqv=$vie"
set simulation="$simulation ""dvmaqv=$vie"
set simulation="$simulation ""dvmgr=$vie"
set simulation="$simulation ""dvmgv=$vie"
set simulation="$simulation ""vol=50.0"
set simulation="$simulation ""fadv=20.0"
set simulation="$simulation ""exageration=0.5"
set simulation="$simulation ""majorer=FAUX"
set simulation="$simulation ""maximum=1.5"
set simulation="$simulation ""trainees=FAUX"
set simulation="$simulation ""randomiser=FAUX"
set simulation="$simulation ""interieur=1.0"
set simulation="$simulation ""exterieur=1.0"
set simulation="$simulation ""seuil=0.9"
set simulation="$simulation ""vqR=VRAI"
set simulation="$simulation ""rqR=0.0400e-15"
set simulation="$simulation ""rqV=0.0400e-15"
set simulation="$simulation ""rg=0.0100e-15"
set simulation="$simulation ""nnsG=12"
set simulation="$simulation ""npsG=12"
set simulation="$simulation ""caracteristique=FAUX"
set simulation="$simulation ""trace=FAUX"
set simulation="$simulation ""messages=FAUX"
set simulation="$simulation ""parametres=FAUX"
set simulation="$simulation ""chronometrer=FAUX"
set simulation="$simulation ""simultanees=$Nimages"
set accumulation="$K_VIDE"
set accumulation="$accumulation ""premiere=$imageO derniere=$imageN pas=1"
set accumulation="$accumulation ""renormaliser=FAUX"
set accumulation="$accumulation ""attenuation=0.92"
# Definition de l'attenuation pour le calcul des trainees ; cette valeur nulle permet de #
# calculer automatiquement le facteur d'attenuation, et ceci en fonction du nombre d'images #
# et de facon a ce que la dynamique des niveaux de gris soit exploitee au mieux (auparavant #
# la valeur utilisee etait 0.84). Je reviens (provisoirement) a une valeur imposee afin de #
# conserver bien visibles les images les plus anciennes... #
set accumulation="$accumulation ""maximum=VRAI"
# ATTENTION, il y avait autrefois ici : #
# #
# Pal #
# #
# mais il en fait plus general de choisir le format des images avant l'appel de cette #
# commande, puisque ce dernier lui est tranmis via l'environnement... #
alias Detruit 'set Ar1="\!:1" ; set Ar2="\!:2" ; \\
$DELETE_VALIDE $Directory/$PROTON$Ar1$Ar2.* >& $nul ; \\
unset Ar1 Ar2'
alias Simule 'set Ar1="\!:1" ; set Ar2="\!:2" ; \\
$xrq/nucleon.L0$X np=$Nimages \\
$transformation $Lumiere \\
$convolution \\
$simulation stereo=$Ar1 \\
R=$Directory/$PROTON$Ar2 \\
$formatI ; \\
unset Ar1 Ar2'
alias Accumule 'set Ar1="\!:1" ; set Ar2="\!:2" ; \\
$xci/accumule.01$X A=$Directory/$PROTON$Ar1$Ar2. $accumulation R=$Directory/$PROTON$Ar1$Ar2 \\
$formatI ; \\
unset Ar1 Ar2'
alias Convolue 'set Ag1="\!:1" ; set Ag2="\!:2" ; \\
$xci/convol.01$X A=$Directory/$PROTON$Ag1$Ag2 points=$convolutionC R=$Directory/$PROTON$Ag1$Ag2 \\
$formatI ; \\
unset Ag1 Ag2'
alias Droite 'set Ar1="\!:1" ; \\
droite $Directory/$PROTON$DROITE$Ar1 $Directory/$PROTON$DROITE$Ar1 ; \\
unset Ar1'
alias Gauche 'set Ar1="\!:1" ; \\
gauche $Directory/$PROTON$GAUCHE$Ar1 $Directory/$PROTON$GAUCHE$Ar1 ; \\
unset Ar1'
unalias Droite
unalias Gauche
alias Droite 'set Ar1="\!:1" ; \\
unset Ar1'
alias Gauche 'set Ar1="\!:1" ; \\
unset Ar1'
# Pour ne pas titrer... #
#######################################################################################################################################
# #
# N E T T O Y A G E P R E L I M I N A I R E : #
# #
#######################################################################################################################################
Detruit $DROITE $ROUGE
Detruit $DROITE $VERTE
Detruit $DROITE $BLEUE
Detruit $GAUCHE $ROUGE
Detruit $GAUCHE $VERTE
Detruit $GAUCHE $BLEUE
#######################################################################################################################################
# #
# V U E " O E I L D R O I T " : #
# #
#######################################################################################################################################
Simule $stereo $DROITE
Accumule $DROITE $ROUGE
Accumule $DROITE $VERTE
Accumule $DROITE $BLEUE
if ($convolutionC > 1) then
Convolue $DROITE $ROUGE
Convolue $DROITE $VERTE
Convolue $DROITE $BLEUE
else
endif
Droite $ROUGE
Droite $VERTE
Droite $BLEUE
Detruit $DROITE $ROUGE
Detruit $DROITE $VERTE
Detruit $DROITE $BLEUE
#######################################################################################################################################
# #
# V U E " O E I L G A U C H E " : #
# #
#######################################################################################################################################
Simule -$stereo $GAUCHE
Accumule $GAUCHE $ROUGE
Accumule $GAUCHE $VERTE
Accumule $GAUCHE $BLEUE
if ($convolutionC > 1) then
Convolue $GAUCHE $ROUGE
Convolue $GAUCHE $VERTE
Convolue $GAUCHE $BLEUE
else
endif
Gauche $ROUGE
Gauche $VERTE
Gauche $BLEUE
Detruit $GAUCHE $ROUGE
Detruit $GAUCHE $VERTE
Detruit $GAUCHE $BLEUE
sleep $MINUTE
sleep $MINUTE
# Cette attente avant la destruction est mise en place afin que dans le cas ou : #
# #
# set Simulateur=$NEXIST #
# #
# le programme de simulation ait le temps de lire les fichiers en cause... #
FileTmpE FXqRR
FileTmpE FYqRR
FileTmpE FZqRR
FileTmpE FXqRV
FileTmpE FYqRV
FileTmpE FZqRV
FileTmpE FXqRB
FileTmpE FYqRB
FileTmpE FZqRB
# Et elimination des fichiers des transformations... #
Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.