From bd7171d346ad4f079aa89b2d9fdd6a56aa0a3b1c Mon Sep 17 00:00:00 2001 From: HEBERT Alain Date: Tue, 23 Dec 2025 11:34:01 -0500 Subject: Resolve "Depreciate use of Version 4 and 5.0 Draglibs" --- Dragon/data/tdraglib_proc/SPH_FixedPt.c2m | 105 ++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 Dragon/data/tdraglib_proc/SPH_FixedPt.c2m (limited to 'Dragon/data/tdraglib_proc/SPH_FixedPt.c2m') diff --git a/Dragon/data/tdraglib_proc/SPH_FixedPt.c2m b/Dragon/data/tdraglib_proc/SPH_FixedPt.c2m new file mode 100644 index 0000000..83d9996 --- /dev/null +++ b/Dragon/data/tdraglib_proc/SPH_FixedPt.c2m @@ -0,0 +1,105 @@ +**************************************************************** +* * +* Procedure : SPH_FixedPt.c2m * +* Purpose : Compute SPH factors using a fixed point approach * +* Author : A. Hebert * +* * +* CALL : * +* Macro2 Optim := SPH_FixedPt Macro1 Macrogeom Track * +* :: (data) ; * +* * +* Output object: * +* Macro2 : Corrected macrolib * +* Optim : L_OPTIMIZE object * +* * +* Input objects: * +* Macro1 : Reference macrolib for the macro-geometry * +* Macrogeom : Macro-geometry * +* Track : Tracking of the macro-geometry * +* * +* Input data: * +* fmin : minimum acceptable correction factor * +* fmax : maximum acceptable correction factor * +* epsout : convergence criterion for outer iterations * +* IterEmax : maximum number of iterations * +* * +**************************************************************** +PARAMETER MACRO2 OPTIM MACRO1 MACROGEOM TRACK :: + ::: LINKED_LIST MACRO2 OPTIM MACRO1 MACROGEOM TRACK ; ; +MODULE BIVACA: FLUD: GREP: OUT: FPSPH: MAC: ERROR: DELETE: END: ; +LINKED_LIST SYSTEM CALC EDIT ; +LOGICAL Conv ; +REAL Keff fmin fmax epsout ; +DOUBLE rmsval ; +INTEGER IterE IterEmax ; + :: >>fmin<< >>fmax<< >>epsout<< >>IterEmax<< ; + +!**************************************** +!**************************************** +!********** SPH ITERATIONS ********** +!**************************************** +!**************************************** + +MACRO2 := MACRO1 ; + +EVALUATE IterE := 0 ; +REPEAT + + EVALUATE IterE := IterE 1 + ; + ECHO "#------------------------------" ; + IF IterE 10 < THEN + ECHO "#-------------" IterE "--------------" ; + ELSE + ECHO "#------------" IterE "--------------" ; + ENDIF ; + ECHO "#------------------------------" ; + + SYSTEM := BIVACA: MACRO2 TRACK :: EDIT 0 ; + IF IterE 1 = THEN + CALC := FLUD: SYSTEM TRACK :: + EDIT 0 ADI 5 EXTE 50 1.0E-6 ACCE 5 3 ; + ELSE + CALC := FLUD: CALC SYSTEM TRACK :: + EDIT 0 ADI 5 EXTE 50 1.0E-6 ACCE 5 3 ; + ENDIF ; + SYSTEM := DELETE: SYSTEM ; + + GREP: CALC :: GETVAL 'K-EFFECTIVE ' 1 >>Keff<< ; + + EDIT := OUT: CALC MACROGEOM MACRO2 TRACK :: + EDIT 0 INTG MIX ; + IF IterE 1 = THEN + ECHO "Error statistics before correction" ; + ERROR: MACRO1 EDIT :: HREA 'NFTOT' ; + ENDIF ; + IF IterE 1 = THEN + OPTIM := FPSPH: EDIT MACRO1 :: EDIT 2 SPH PN + VAR-VAL-MIN <> + VAR-VAL-MAX <> + OUT-STEP-EPS <> OUT-CONV-TST >>Conv<< >>rmsval<< ; + ELSE + OPTIM := FPSPH: OPTIM EDIT MACRO1 :: EDIT 1 + VAR-VAL-MIN <> + VAR-VAL-MAX <> + OUT-CONV-TST >>Conv<< >>rmsval<< ; + ENDIF ; + ECHO "outer iteration=" IterE "rmsval=" rmsval D_TO_R "Keff=" Keff "Conv=" Conv ; + EDIT := DELETE: EDIT ; + MACRO2 := MACRO2 MACRO1 ; + MACRO2 := MAC: MACRO2 OPTIM ; + +UNTIL Conv IterE IterEmax > + ; +CALC := DELETE: CALC ; +*---- +* VERIFICATION CALCULATION +*---- +SYSTEM := BIVACA: MACRO2 TRACK :: EDIT 0 ; +CALC := FLUD: SYSTEM TRACK :: + EDIT 0 ADI 5 EXTE 50 1.0E-6 ACCE 5 3 ; + +EDIT := OUT: CALC MACROGEOM MACRO2 TRACK :: + EDIT 0 INTG MIX ; + +ECHO "Error statistics after correction" ; +ERROR: MACRO1 EDIT :: HREA 'NFTOT' ; +END: ; -- cgit v1.2.3