summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHEBERT Alain <alain.hebert@polymtl.ca>2025-10-26 06:09:46 -0400
committerHEBERT Alain <alain.hebert@polymtl.ca>2025-10-26 06:09:46 -0400
commitbb19a602772d4fe89f5fa2e534b93237330fd89f (patch)
tree7e0c68faf0ab9c65ec1ec4e8115325e314864a3f
parent5321198af9510e29be2b6a5a3245314e1b5c27cb (diff)
parente2cfb58950594a3ad6f9ee3f66f97ac3ce11711e (diff)
Merge branch '8-correct-sfr-geometry-issues-in-module-salt' into 'main'
Resolve "Correct SFR geometry issues in module SALT:" See merge request dragon/5.1!17
-rw-r--r--Dragon/data/salmacro_proc/TDCM69.c2m32
-rw-r--r--Dragon/data/salmacro_proc/irena_tiso_s30.dat4
-rw-r--r--Dragon/src/MUSACG.f902
-rw-r--r--Dragon/src/g2s_g2mc.f9017
-rw-r--r--Dragon/src/g2s_g2s.f9017
-rw-r--r--Dragon/src/g2s_nodes.f907
-rw-r--r--Dragon/src/g2s_segArc.f9026
-rw-r--r--doc/IGE335/Section3.90_g2s.tex4
8 files changed, 70 insertions, 39 deletions
diff --git a/Dragon/data/salmacro_proc/TDCM69.c2m b/Dragon/data/salmacro_proc/TDCM69.c2m
index 590d461..0443dbc 100644
--- a/Dragon/data/salmacro_proc/TDCM69.c2m
+++ b/Dragon/data/salmacro_proc/TDCM69.c2m
@@ -7,8 +7,9 @@
*-------------------------------------------------------------------------------------------------
SEQ_ASCII TDT_LAT_DAT :: FILE './irena_tiso_s30.dat' ;
SEQ_ASCII TDT_LAT_PS :: FILE './irena_tiso_s30.eps' ;
+SEQ_ASCII TDT_LAT_M :: FILE './irena_tiso_s30.m' ;
MODULE
- G2S: MAC: SALT: ASM: FLU: EDI: END: ;
+ G2S: MAC: SALT: TLM: ASM: FLU: EDI: DELETE: END: ;
LINKED_LIST
MACRO4G_0 MACRO4G TRACK CP FLUX OUT ;
SEQ_BINARY
@@ -86,17 +87,41 @@ TDT_LAT_PS := G2S: TDT_LAT_DAT :: DRAWMIX ;
TRACK TRACK_f := SALT: TDT_LAT_DAT ::
TITL 'TDCM69 imported'
- EDIT 6
+ EDIT 1
ANIS 1
TISO 8 10.0
REND LONG
IC EPSJ 1.0E-4
;
*-------------------------------------------------------------------------------------------------
-* Flux calculation
+* Flux calculation IC
*-------------------------------------------------------------------------------------------------
CP := ASM: MACRO4G TRACK TRACK_f :: PIJ ;
FLUX := FLU: MACRO4G CP TRACK TRACK_f :: TYPE K ;
+assertS FLUX :: 'K-EFFECTIVE' 1 1.008920 ;
+
+TRACK TRACK_f CP FLUX := DELETE: TRACK TRACK_f CP FLUX ;
+
+TRACK TRACK_f := SALT: TDT_LAT_DAT ::
+ TITL 'TDCM69 imported TISO'
+ EDIT 1
+ ANIS 1
+ TISO 8 10.0
+ REND LONG
+ NOIC
+ ;
+
+TDT_LAT_M := TLM: TRACK TRACK_f ::
+ EDIT 1
+ NTPO 1
+ DIRECTIONS NoPause DIR 0
+ ;
+*-------------------------------------------------------------------------------------------------
+* Flux calculation TISO
+*-------------------------------------------------------------------------------------------------
+CP := ASM: MACRO4G TRACK TRACK_f :: PIJ ;
+FLUX := FLU: MACRO4G CP TRACK TRACK_f :: TYPE K ;
+assertS FLUX :: 'K-EFFECTIVE' 1 1.008918 ;
*-------------------------------------------------------------------------------------------------
* Editing
@@ -107,7 +132,6 @@ OUT := EDI: MACRO4G TRACK FLUX ::
COND
;
-assertS FLUX :: 'K-EFFECTIVE' 1 1.007306 ;
ECHO "test TDCM69 completed" ;
END: ;
QUIT "LIST" .
diff --git a/Dragon/data/salmacro_proc/irena_tiso_s30.dat b/Dragon/data/salmacro_proc/irena_tiso_s30.dat
index df17691..141190f 100644
--- a/Dragon/data/salmacro_proc/irena_tiso_s30.dat
+++ b/Dragon/data/salmacro_proc/irena_tiso_s30.dat
@@ -1981,7 +1981,7 @@
* boundaries conditions: defaul nbbcda allsur
0, 3, 0
* albedo
- 0.0
+ 1.0
* type number of elements
4, 74
* elements
@@ -2413,7 +2413,7 @@
6
7
8
- 9
+ 1
1
1
1
diff --git a/Dragon/src/MUSACG.f90 b/Dragon/src/MUSACG.f90
index 3d560e4..95d6a3a 100644
--- a/Dragon/src/MUSACG.f90
+++ b/Dragon/src/MUSACG.f90
@@ -427,7 +427,7 @@ SUBROUTINE MUSACG(ITRACK,IFTRK,IPRINT,IMACRO,NBSLIN,RCUTOF,GG,LGINF,NBNODE_MACRO
& GG_MAC%IDATA_BC2)
ITBC=0
IF(GG_MAC%NBBCDA>0)THEN
- DO I=1,GG%NBBCDA
+ DO I=1,GG_MAC%NBBCDA
ITBC=ITBC+1
TYPE=GG_MAC%BCDATAREAD(I)%SALTYPE
IF(TYPE.NE.0) CALL XABORT('MUSACG: TYPE=0 EXPECTED.')
diff --git a/Dragon/src/g2s_g2mc.f90 b/Dragon/src/g2s_g2mc.f90
index 4bfddfa..2b016e7 100644
--- a/Dragon/src/g2s_g2mc.f90
+++ b/Dragon/src/g2s_g2mc.f90
@@ -53,14 +53,14 @@ subroutine G2MC(NENTRY,HENTRY,IENTRY,JENTRY,KENTRY)
type(c_ptr) :: ipGeo,ipGeo_1
integer :: ipMC,ipSal,ipPs,sizeB,sizeP,sizeSA,nbNode,nbCLP,nbFlux,indic, &
- & nitma,impx
+ & nitma,impx,drawMix
real :: flott
double precision :: dflott
integer :: lgMaxGig=0
integer,dimension(10) :: datain
integer,allocatable,dimension(:) :: merg,imacro
character(len=12) :: text12
- logical :: drawNod,drawMix,lmacro
+ logical :: lmacro
real,dimension(2) :: zoomx,zoomy
ipGeo_1=c_null_ptr ! no geometry read
@@ -110,8 +110,7 @@ subroutine G2MC(NENTRY,HENTRY,IENTRY,JENTRY,KENTRY)
end if
!
impx=1
- drawNod = .false.
- drawMix = .false.
+ drawMix = 0
zoomx = (/ 0.0, 1.0 /)
zoomy = (/ 0.0, 1.0 /)
typgeo=0
@@ -124,11 +123,11 @@ subroutine G2MC(NENTRY,HENTRY,IENTRY,JENTRY,KENTRY)
call REDGET(indic,impx,flott,text12,dflott)
if (indic /= 1) call XABORT('G2MC: integer data expected.')
else if (text12 == 'DRAWNOD') then
- drawNod=.true.
- drawmix=.true.
+ drawMix=1
else if (text12 == 'DRAWMIX') then
- drawNod=.true.
- drawmix=.false.
+ drawMix=2
+ else if (text12 == 'DRAWELEM') then
+ drawMix=3
else if (text12 == 'ZOOMX') then
call REDGET(indic,nitma,zoomx(1),text12,dflott)
if (indic /= 2) call XABORT('G2S: real data expected(1).')
@@ -206,7 +205,7 @@ subroutine G2MC(NENTRY,HENTRY,IENTRY,JENTRY,KENTRY)
deallocate(merg)
!impression des segArc charges
- if (ipPs /= -1) call drawSegArc(ipPs,sizeSA,drawMix,drawNod,zoomx,zoomy)
+ if (ipPs /= -1) call drawSegArc(ipPs,sizeSA,drawMix,zoomx,zoomy)
!creation du fichier de commande Monte-Carlo
if (index(HENTRY(1),'.tp')/=0) then
diff --git a/Dragon/src/g2s_g2s.f90 b/Dragon/src/g2s_g2s.f90
index 19494f3..f64dba9 100644
--- a/Dragon/src/g2s_g2s.f90
+++ b/Dragon/src/g2s_g2s.f90
@@ -53,9 +53,9 @@ subroutine G2S(NENTRY,HENTRY,IENTRY,JENTRY,KENTRY)
type(c_ptr) :: ipGeo,ipGeo_1
integer :: sizeB,sizeP,sizeSA,nbNode,nbCLP,nbFlux,nbMacro,ipSal,ipPs,ipAl, &
- ipZa,indic,nitma,impx
+ ipZa,indic,nitma,impx,drawMix
character(len=12) :: text12
- logical :: drawNod,drawMix,lmacro
+ logical :: lmacro
real,dimension(2) :: zoomx,zoomy
integer,allocatable,dimension(:) :: gig,merg,imacro
integer,dimension(10) :: datain
@@ -133,8 +133,7 @@ subroutine G2S(NENTRY,HENTRY,IENTRY,JENTRY,KENTRY)
end if
impx=1
- drawNod = .false.
- drawMix = .false.
+ drawMix = 0
zoomx = (/ 0.0, 1.0 /)
zoomy = (/ 0.0, 1.0 /)
typgeo=0
@@ -147,11 +146,11 @@ subroutine G2S(NENTRY,HENTRY,IENTRY,JENTRY,KENTRY)
call REDGET(indic,impx,flott,text12,dflott)
if (indic /= 1) call XABORT('G2S: integer data expected(1).')
else if (text12 == 'DRAWNOD') then
- drawNod=.true.
- drawmix=.true.
+ drawMix=1
else if (text12 == 'DRAWMIX') then
- drawNod=.true.
- drawmix=.false.
+ drawMix=2
+ else if (text12 == 'DRAWELEM') then
+ drawMix=3
else if (text12 == 'ZOOMX') then
call REDGET(indic,nitma,zoomx(1),text12,dflott)
if (indic /= 2) call XABORT('G2S: real data expected(1).')
@@ -248,7 +247,7 @@ subroutine G2S(NENTRY,HENTRY,IENTRY,JENTRY,KENTRY)
endif
!impression des segArc charges
- if (ipPs /= -1) call drawSegArc(ipPs,sizeSA,drawMix,drawNod,zoomx,zoomy)
+ if (ipPs /= -1) call drawSegArc(ipPs,sizeSA,drawMix,zoomx,zoomy)
if (c_associated(ipGeo_1)) then
!creation du fichier de commande SAL
diff --git a/Dragon/src/g2s_nodes.f90 b/Dragon/src/g2s_nodes.f90
index 4d3bb19..17111b1 100644
--- a/Dragon/src/g2s_nodes.f90
+++ b/Dragon/src/g2s_nodes.f90
@@ -405,7 +405,6 @@ contains
! correction of plain CAR2D bug by Alain Hebert (May 2016)
integer :: nbFile
logical :: isOpen
- logical,parameter :: drawMix = .true.
real,parameter,dimension(2) :: zoomx = (/ 0.0, 1.0 /) ! no x zoom on postscript plot
real,parameter,dimension(2) :: zoomy = (/ 0.0, 1.0 /) ! no y zoom on postscript plot
@@ -425,14 +424,14 @@ contains
nbFile = nbFile + 1
inquire(nbFile,opened=isOpen)
if(isOpen) cycle
- open(nbFile,file='errorMix.ps')
+ open(nbFile,file='errorMix.eps')
exit
enddo
- call drawSegArc(nbFile,szSA,.false.,drawMix,zoomx,zoomy)
+ call drawSegArc(nbFile,szSA,2,zoomx,zoomy)
close(nbFile)
write(*,*) 'i,j,mixAv,mixAp : ',i,j,mixAv,mixAp
call XABORT("G2S: internal problem for mix values. See the file &
- &errorMix.ps")
+ &errorMix.eps")
endif
! CS-IV : fin de la mise en commentaires de Alain
indNodeAv=getNodeAv(i,j) ; indNodeAp=getNodeAp(i,j)
diff --git a/Dragon/src/g2s_segArc.f90 b/Dragon/src/g2s_segArc.f90
index f323f6a..8748695 100644
--- a/Dragon/src/g2s_segArc.f90
+++ b/Dragon/src/g2s_segArc.f90
@@ -1216,9 +1216,8 @@ contains
.or.(isEqualConst(cx,ex).and.isEqualConst(cy,ey)) )
end function giveExtremalsAngles
- subroutine drawSegArc(fileNbr,szSA,withNodes,drawMix,zoomx,zoomy)
- integer,intent(in) :: fileNbr,szSA
- logical,intent(in) :: withNodes,drawMix
+ subroutine drawSegArc(fileNbr,szSA,drawMix,zoomx,zoomy)
+ integer,intent(in) :: fileNbr,szSA,drawMix
real,intent(in) :: zoomx(2),zoomy(2)
type(t_segArc) :: sa
@@ -1269,23 +1268,29 @@ contains
call line(sa%x,sa%y,sa%dx,sa%dy)
cx=real((sa%dx+sa%x)*0.5d0) ; cy=real((sa%dy+sa%y)*0.5d0)
angl = real(calculeAngle(sa%x,sa%y,sa%dx,sa%dy)*rad2deg-90.d0)
- if (withNodes .and. drawMix) then
+ if (drawMix==1) then
call keknum(cx,cy,tailleNbr,real(sa%nodeg),angl,-1,2)
call keknum(cx,cy,tailleNbr,real(sa%noded),angl,-1,0)
- else if (drawMix) then
+ else if (drawMix==2) then
call keknum(cx,cy,tailleNbr,real(sa%neutronicMixg),angl,-1,2)
call keknum(cx,cy,tailleNbr,real(sa%neutronicMixd),angl,-1,0)
+ else if (drawMix==3) then
+ call keknum(cx,cy,tailleNbr,real(i),angl,-1,2)
+ call keknum(cx,cy,tailleNbr,real(i),angl,-1,0)
end if
else if (sa%typ==tcer) then
call arc(sa%x,sa%y,sa%r,0.d0,180.d0)
call arc(sa%x,sa%y,sa%r,180.d0,360.d0)
cx=real(sa%x+sa%r) ; cy=real(sa%y)
- if (withNodes .and. drawMix) then
+ if (drawMix==1) then
call keknum(cx,cy,tailleNbr,real(sa%nodeg),0.,-1,2)
call keknum(cx,cy,tailleNbr,real(sa%noded),0.,-1,0)
- else if (drawMix) then
+ else if (drawMix==2) then
call keknum(cx,cy,tailleNbr,real(sa%neutronicMixg),0.,-1,2)
call keknum(cx,cy,tailleNbr,real(sa%neutronicMixd),0.,-1,0)
+ else if (drawMix==3) then
+ call keknum(cx,cy,tailleNbr,real(i),0.,-1,2)
+ call keknum(cx,cy,tailleNbr,real(i),0.,-1,0)
end if
else
call arc(sa%x,sa%y,sa%r,sa%a*rad2deg,sa%b*rad2deg)
@@ -1296,12 +1301,15 @@ contains
end if
cx=real(sa%x+cos(angl)*sa%r) ; cy=real(sa%y+sin(angl)*sa%r)
angl=real(angl*rad2deg)
- if (withNodes .and. drawMix) then
+ if (drawMix==1) then
call keknum(cx,cy,tailleNbr,real(sa%nodeg),angl,-1,2)
call keknum(cx,cy,tailleNbr,real(sa%noded),angl,-1,0)
- else if (drawMix) then
+ else if (drawMix==2) then
call keknum(cx,cy,tailleNbr,real(sa%neutronicMixg),angl,-1,2)
call keknum(cx,cy,tailleNbr,real(sa%neutronicMixd),angl,-1,0)
+ else if (drawMix==3) then
+ call keknum(cx,cy,tailleNbr,real(i),angl,-1,2)
+ call keknum(cx,cy,tailleNbr,real(i),angl,-1,0)
end if
end if
end do
diff --git a/doc/IGE335/Section3.90_g2s.tex b/doc/IGE335/Section3.90_g2s.tex
index d9d39fd..42d5ff6 100644
--- a/doc/IGE335/Section3.90_g2s.tex
+++ b/doc/IGE335/Section3.90_g2s.tex
@@ -45,7 +45,7 @@ in the ALAMOS surfacic file.
$[$~\moc{EDIT} \dusa{iprint}~$]$ \\
$[$~\moc{ALAMOS} \dusa{typgeo}~$]$ \\
$[$~\moc{MACRO} $]$ \\
-$[~\{$~\moc{DRAWNOD} $|$ \moc{DRAWMIX} $\}~]~[$ \moc{ZOOMX} \dusa{facx1} \dusa{facx2} $]~[$ \moc{ZOOMY} \dusa{facy1} \dusa{facy2} $]$ \\
+$[~\{$~\moc{DRAWNOD} $|$ \moc{DRAWMIX} $|$ \moc{DRAWELEM} $\}~]~[$ \moc{ZOOMX} \dusa{facx1} \dusa{facx2} $]~[$ \moc{ZOOMY} \dusa{facy1} \dusa{facy2} $]$ \\
\moc{;}
\end{DataStructure}
@@ -90,6 +90,8 @@ or {\tt HEXCEL} subgeometries. Macro-geometry information is not used by module
\item[\moc{DRAWMIX}] keyword used to print the material mixture indices on the LHS postscript plot \dusa{PSFIL}. By default, no indices are printed.
+\item[\moc{DRAWELEM}] keyword used to print the surfacic element indices on the LHS postscript plot \dusa{PSFIL}. By default, no indices are printed.
+
\item[\moc{ZOOMX}] keyword used to plot a fraction of the $X$--domain. By default, all the $X$--domain is plotted.
\item[\dusa{facx1}] left factor set in interval $0.0 \le$ \dusa{facx1} $< 1.0$ with 0.0 corresponding to the left boundary and 1.0 corresponding to the right boundary.