summaryrefslogtreecommitdiff
path: root/Donjon/data/Test_SPH_void_newton.x2m
blob: baa19739c9a12da1a25a96249cbf33878bd4fc15 (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
*----
*  Name          : TEST Test_SPH_void_newton.x2m
*  Author        : Alain Hebert (2018)
*
*  17 X 17 PWR VOIDED ASSEMBLY WITH NEWTONIAN SPH EQUIVALENCE
*  Apply SPH correction on albedo factors
*----
*  Define STRUCTURES and MODULES used
*----
LINKED_LIST
  SPHGEOM MTRACK MACRO MACRO2 SYS OPTIM OUT CALC ;
MODULE
  GEO: MAC: TRIVAT: TRIVAA: FLUD: DELETE: UTL: GREP: END: ;
DOUBLE Fobj ;
SEQ_ASCII _OUTV :: FILE './_OUTV' ;
PROCEDURE SPH_Newton ;
PROCEDURE assertS ;
INTEGER IterEmax := 20 ;
*----
* TRANSPORT-DIFFUSION NEWTONIAN SPH EQUIVALENCE
*----
OUT := _OUTV ;
SPHGEOM := GEO: :: CAR2D 9 9
  X- DIAG X+ ALBE 1 Y- SYME Y+ DIAG
  MIX   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
  MESHX 0.0 1.26471996 2.52943993 3.79415989 5.05887985
        6.32359982 7.58831978 8.85303974 10.1177597 11.4324799
  MESHY 0.0 1.26471996 2.52943993 3.79415989 5.05887985
        6.32359982 7.58831978 8.85303974 10.1177597 11.4324799
;
MTRACK := TRIVAT: SPHGEOM :: DUAL (*IELEM=*) 1 (*ICOL=*) 1
                  SPN 3 SCAT 1 ;
MACRO := OUT :: STEP UP 'REF-CASE0001' STEP UP 'MACROLIB' ;
*----
* Set physical albedos
*----
MACRO := MAC: MACRO :: ALBP 1 0.0 0.0 ;
*----
* Perform Newtonian SPH equivalence
*----
MACRO2 OPTIM := SPH_Newton MACRO SPHGEOM MTRACK
   :: 0.0 10.0 1.0E-3 <<IterEmax>> ;
ECHO "control variables at convergence" ;
UTL: OPTIM :: IMPR 'VAR-VALUE' * ;

GREP: OPTIM :: GETVAL 'FOBJ-CST-VAL' 1 >>Fobj<< ;
ECHO "optimal objective function=" Fobj ;
*----
* Verification calculation
*----
SYS := TRIVAA: MACRO2 MTRACK ;
CALC := FLUD: SYS MTRACK :: EDIT 2 ADI 5 ACCE 5 3 ;
assertS CALC :: K-EFFECTIVE 1 0.4551608 ;

ECHO "test Test_SPH_void_newton completed" ;
END: ; 
QUIT "LIST" .