#!/bin/csh
#######################################################################################################################################
# #
# G E N E R A T I O N D ' U N E S E Q U E N C E D ' I M A G E S #
# S U R L A D Y N A M I Q U E I N T E R N E D U N U C L E O N : #
# #
# #
# Utilisation : #
# #
# $xrq/nucleon.L43$Z #
# #
# #
# Author of '$xrq/nucleon.L43$Z' : #
# #
# Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). #
# #
#######################################################################################################################################
source $xrq/nucleon.L4.2$Y
source $xrq/nucleon.L4.3$Y
# Quelques parametres... #
set imageV=$imageO
# Definition de la premiere image a visualiser. #
set Nimages=128
# Definition du nombre d'images a generer. #
set simultanees=$Nimages
# Nombre d'images simultanees autorisees (autrefois, je prenais '32', mais depuis #
# l'introduction de l'option 'Pal', je suis passe a '8'...). En fait, ce parametre n'a plus #
# d'importance (voir 'Fstore_fichier_non_formatte(...)' dans 'v $xig/fonct$vv$FON'). #
set positionnement="p0=$imageO pV=$imageV"
set convolution="noyau_variable=FAUX cNOIR=FAUX convolution=1 facteur=0.100"
set accumulation="trainees=VRAI renormaliser=VRAI attenuation_des_trainees=0.85 attenuation_des_images=1.00 mode=1"
set evenements="graine=2001"
set evenements="$evenements ""ralentissement=0.1100 particules=1800"
set evenements="$evenements ""auto_reguler=VRAI Eregulation=1 Cregulation=40.0"
set evenements="$evenements ""injection=VRAI injectionI=FAUX injectionS=VRAI neq=22000 neaq=22000 neg=44000 nefqv=2400"
set evenements="$evenements ""caracteristique=FAUX"
# Definition des parametres fondamentaux. #
set imageN = $imageO
@ imageN = $imageN + $Nimages
@ imageN = $imageN - 1
# Definition du numero de la derniere image. #
set stereo0="0.00"
set stereoD="0.04"
set stereoG="-0.04"
set stereo=$stereo0
set Stereo="stereo=$stereo"
# Choix du mode stereoscopique. #
# #
# 'stereo0' --> absent, #
# 'stereoD' --> DROITE, #
# 'stereoG' --> GAUCHE. #
set InomT="NUCL.3"
# On choisit un nom court afin de ne pas avoir de problemes avec la #
# constante 'LONGUEUR_MAXIMALE_D_UN_NOM_RELATIF_DE_FICHIER'. #
switch ("$stereo")
# Definition du nom relatif des images. #
case "$stereo0":
breaksw
case "$stereoD":
set InomT="$InomT$DROITE"
breaksw
case "$stereoG":
set InomT="$InomT$GAUCHE"
breaksw
default:
EROR "Mode stereoscopique non reconnu."
breaksw
endsw
source $xrq/proton.K2.1$Y
# Definition du choix du directory de generation des images. #
source $xrq/nucleon.L2.3$Y
# Pour fixer ou modifier des parametres de derniere minute... #
set images="$DnomT$InomT"
set generation="R=$images queue=VRAI"
set generation="$generation ""simultanees=$simultanees synchroniser=FAUX"
set generation="$generation ""trace=FAUX messages=FAUX parametres=FAUX chronometrer=FAUX"
set generation="$generation ""randomiser=FAUX interieur=1.0 exterieur=1.0 seuil=0.9 vqR=VRAI"
set generation="$generation ""rqR=0.0320e-15 rqV=0.0320e-15 rg=0.0120e-15 nnsG=4 npsG=4 dvG=0.4"
# Definition des arguments d'entrees-sorties ; plusieurs possibilites : #
# #
# nnsG=16 npsG=16 dvG=0.1 : bien esthetiquement, mais tres lent, #
# nnsG=8 npsG=8 dvG=0.2 #
# nnsG=4 npsG=4 dvG=0.4 : quatre fois plus rapide, et degradation acceptable... #
# #
@ npA = $imageO
# Definition de 'npA' (numero de la premiere periode), #
@ npX = $imageN
# Definition de 'npX' (numero de la derniere periode). #
@ npB = $npX * 8
@ npB = $npB / 100
@ npC = $npX * 20
@ npC = $npC / 100
@ npD = $npX * 50
@ npD = $npD / 100
@ npE = $npX * 60
@ npE = $npE / 100
@ npF = $npX * 80
@ npF = $npF / 100
@ npG = $npX * 90
@ npG = $npG / 100
@ npH = $npX * 95
@ npH = $npH / 100
@ npI = $npX * 100
@ npI = $npI / 100
if ($npB <= $npA) then
@ npB = $npA + 1
else
endif
if ($npC <= $npB) then
@ npC = $npB + 1
else
endif
if ($npD <= $npC) then
@ npD = $npC + 1
else
endif
if ($npE <= $npD) then
@ npE = $npD + 1
else
endif
if ($npF <= $npE) then
@ npF = $npE + 1
else
endif
if ($npG <= $npF) then
@ npG = $npF + 1
else
endif
if ($npH <= $npG) then
@ npH = $npG + 1
else
endif
if ($npI <= $npH) then
@ npI = $npH + 1
else
endif
alias valeurs 'set valD=(\!:1) ; set valA=(\!:2) ; set Fval="\!:3" ; \\
set D1=1 ; set D2=`expr $D1 + 1` ; set D3=`expr $D2 + 1` ; set SvalD=FAUX ; \\
set A1=$D1 ; set A2=$D2 ; set A3=$D3 ; if (-e $Fval) set SvalD=VRAI ; \\
set Depart = "D=$valD[$D1] vD=$valD[$D2] dD=$valD[$D3] Cunique=$SvalD Cnumero=$valD[$D1]" ; \\
set Arrivee = "A=$valA[$A1] vA=$valA[$A2] dA=$valA[$A3]" ; \\
$xci/valeurs_inte$X $Depart $Arrivee cubique=VRAI >>! $Fval ; \\
unset valD valA Fval D1 D2 D3 A1 A2 A3 SvalD Depart Arrivee'
# Generation incrementale des fichiers des transformations par interpolation cubique. #
set luminance = "$K_VIDE"
set luminance = "$luminance ""$K_VIDE"
set translate = "$K_VIDE"
set translate = "$translate ""$K_VIDE"
FileTmpB Fzoom
set zoom1 = ($npA 0.700000 00.000000)
set zoom2 = ($npC 1.000000 00.000000)
set zoom3 = ($npD 2.000000 00.000000)
set zoom4 = ($npG 2.000000 00.000000)
set zoom5 = ($npI 0.500000 00.000000)
valeurs $zoom1 $zoom2 $Fzoom
valeurs $zoom2 $zoom3 $Fzoom
valeurs $zoom3 $zoom4 $Fzoom
valeurs $zoom4 $zoom5 $Fzoom
set zoom = "$K_VIDE"
set zoom = "$zoom ""ZOOM=$Fzoom"
FileTmpB Frot_OX
set rot_OX1 = ($npA 00.000000 00.000000)
set rot_OX2 = ($npB 00.000000 00.000000)
set rot_OX3 = ($npD 04.712389 18.000000)
set rot_OX4 = ($npF 06.283185 22.000000)
set rot_OX5 = ($npI 06.283185 00.000000)
valeurs $rot_OX1 $rot_OX2 $Frot_OX
valeurs $rot_OX2 $rot_OX3 $Frot_OX
valeurs $rot_OX3 $rot_OX4 $Frot_OX
valeurs $rot_OX4 $rot_OX5 $Frot_OX
set rot_OX = "$K_VIDE"
set rot_OX = "$rot_OX ""ROTATION_OX=$Frot_OX"
set rot_OY = "$K_VIDE"
set rot_OY = "$rot_OY ""$K_VIDE"
FileTmpB Frot_OZ
set rot_OZ1 = ($npA 00.000000 00.000000)
set rot_OZ2 = ($npF 00.000000 00.000000)
set rot_OZ3 = ($npI 12.566370 22.000000)
valeurs $rot_OZ1 $rot_OZ2 $Frot_OZ
valeurs $rot_OZ2 $rot_OZ3 $Frot_OZ
set rot_OZ = "$K_VIDE"
set rot_OZ = "$rot_OZ ""ROTATION_OZ=$Frot_OZ"
set Lumiere = "$K_VIDE"
set Lumiere = "$Lumiere ""Lx=1.000000e-15"
set Lumiere = "$Lumiere ""Ly=1.000000e-15"
set Lumiere = "$Lumiere ""Lz=4.000000e-15"
# Definition de la source lumineuse, telle que pratiquement toutes les particules soient #
# derriere elle par rapport a l'observateur... #
set transformation="$luminance $translate $zoom $rot_OX $rot_OY $rot_OZ"
# Definition de la suite des transformations. #
set visualisation="$K_VIDE"
set visualisation="$visualisation ""siR=$GRIS_4 ssR=$BLANC"
set visualisation="$visualisation ""siV=$GRIS_4 ssV=$BLANC"
set visualisation="$visualisation ""siB=$GRIS_4 ssB=$BLANC"
set visualisation="$visualisation ""ZminimumT=0.75 ZmaximumT=1.00"
# Definition des conditions de visualiation... #
Pal
# Definition du format des images 'Pal'... #
$DELETE_VALIDE $images* >& $nul
# Et ce afin, en particulier de ne pas se tromper dans la synchronisation. #
nohup $xrq/nucleon.L0$X np=$Nimages $evenements $transformation $convolution $accumulation $positionnement $Lumiere \
$visualisation $Stereo $generation $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). #
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 Fzoom
FileTmpE Frot_OX
FileTmpE Frot_OZ
# 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.