summaryrefslogtreecommitdiff
path: root/PyGan/data/Equivalence_SPH_APEX_proc/SPH_SN_Proc.c2m
blob: 967a0c7f0fd017c9ddfeabf0db138c9509873417 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
****************************************************************
*                                                              *
* Procedure : SPH_SN_Proc.c2m                                  *
* Purpose   : Perform a transport-diffusion SPH equivalence    *
* Author    : A. Hebert                                        *
*                                                              *
* CALL      :                                                  *
*  SPH_SN_Proc Geom ;                                          *
*                                                              *
*  Input objects:                                              *
*    Geom      : macro-geometry LCM object                     *
*    ApexName  : Apex file name                                *
*    ncals     : number of calculations in the Apex file       *
*                                                              *
****************************************************************
PARAMETER  Geom ::
  ::: LINKED_LIST Geom ; ;
STRING ApexName ;
  ::  >>ApexName<< ;
INTEGER ncals ;
  ::  >>ncals<< ;
MODULE SPH: SNT: ASM: FLU: UTL: GREP: DELETE: END: ;
LINKED_LIST TRACK MACRO2 MACRO OPTIM SYSTEM FLUX ;
HDF5_FILE APEX_FILE :: FILE <<ApexName>> ;
INTEGER IterEmax := 1000 ;
REAL K_EFF_REF ;
PROCEDURE SPHPicardSN assertS ;
*
ECHO "SPH_SN_Proc: ApexName=" ApexName "ncals=" ncals ;
TRACK := SNT: Geom :: EDIT 1 SN 4 SCAT 1 QUAD 1 ;

*----
* Perform fixed point SPH equivalence for each branch calculation
*----
INTEGER ical := 0 ;
REPEAT

  EVALUATE ical := ical 1 + ;
  ECHO "process branch=" ical "/" ncals ;
  MACRO2 := SPH: APEX_FILE :: EDIT 1 STEP AT <<ical>> MACRO OFF LEAK ;
  GREP: MACRO2 :: GETVAL 'K-EFFECTIVE' 1 >>K_EFF_REF<< ;
  ECHO "ical=" ical "reference k-effective=" K_EFF_REF ;

  MACRO OPTIM := SPHPicardSN MACRO2 Geom TRACK
   :: 0.0 10.0 1.0E-6 <<IterEmax>> ;
  ECHO "control variables at convergence for ical=" ical ;
  UTL: OPTIM :: IMPR 'VAR-VALUE' * ;
  MACRO2 := DELETE: MACRO2 ;

*----
* Write SPH factors on APEX file
*----
  APEX_FILE := SPH: APEX_FILE OPTIM :: EDIT 1 STEP AT <<ical>>
     IDEM SPOP EQUI 'EQV_DIFF_S3' ;
  OPTIM := DELETE: OPTIM ;

*----
* Verification calculation
*----
  SYSTEM := ASM: MACRO TRACK :: EDIT 0 ARM ;
  FLUX := FLU: MACRO TRACK SYSTEM :: EDIT 1 TYPE K B0 SIGS ;
  assertS FLUX :: 'K-EFFECTIVE' 1 <<K_EFF_REF>> ;
  
  MACRO SYSTEM FLUX := DELETE: MACRO SYSTEM FLUX ;
UNTIL ical ncals = ;

ECHO "Equivalence_SPH_SN_Proc completed" ;
END: ;