diff --git a/iterative-xolotlFT-UQ/README b/iterative-xolotlFT-UQ/README index a089498..3585606 100644 --- a/iterative-xolotlFT-UQ/README +++ b/iterative-xolotlFT-UQ/README @@ -1,4 +1,4 @@ For running this test, copy the content to a folder in $SCRATCH. Otherwise there might be issues with netcdf when running GITR. The test should easily be completed in 30min (debug queue), using 2 nodes. -A.L., 03/21/2022 \ No newline at end of file +A.L., 03/21/2022 diff --git a/iterative-xolotlFT-UQ/conf.ips b/iterative-xolotlFT-UQ/conf.ips new file mode 100644 index 0000000..059ed6e --- /dev/null +++ b/iterative-xolotlFT-UQ/conf.ips @@ -0,0 +1,41 @@ +HOST = perlmutter +MPIRUN = srun #mpirun + +PORTAL_URL = http://lb.ipsportal.production.svc.spin.nersc.org + +####################################### +# resource detection method +####################################### +NODE_DETECTION = slurm_env # checkjob | qstat | pbs_env | slurm_env + +####################################### +# manual allocation description +####################################### +TOTAL_PROCS = 128 +NODES = 1 + +PROCS_PER_NODE = 128 + +####################################### +# node topology description +####################################### +CORES_PER_NODE = 128 +SOCKETS_PER_NODE = 1 + +####################################### +# framework setting for node allocation +####################################### +# THE FOLLOWING ENTRIES MUST ADHERE TO THE PLATFORM'S CAPABILITIES +# +# NODE_ALLOCATION_MODE +# * EXCLUSIVE : only one task per node +# * SHARED : multiple tasks may share a node +# For single node jobs, this can be overridden allowing multiple +# tasks per node. +# +# USE_ACCURATE_NODES +# * ON : use accurate nodes if detected properly +# * OFF : DO NOT use accurate nodes even if detected properly +NODE_ALLOCATION_MODE = EXCLUSIVE # SHARED | EXCLUSIVE +USE_ACCURATE_NODES = ON # ON | OFF +#USE_ACCURATE_NODES = OFF # ON | OFF diff --git a/iterative-xolotlFT-UQ/conf.ips.cori b/iterative-xolotlFT-UQ/conf.ips.cori index c2a0366..bb6d06c 100644 --- a/iterative-xolotlFT-UQ/conf.ips.cori +++ b/iterative-xolotlFT-UQ/conf.ips.cori @@ -1,7 +1,7 @@ HOST = cori MPIRUN = srun #mpirun -PORTAL_URL = http://lb.ipsportal.production.svc.spin.nersc.org +PORTAL_URL = #http://lb.ipsportal.production.svc.spin.nersc.org ####################################### # resource detection method @@ -11,10 +11,10 @@ NODE_DETECTION = slurm_env # checkjob | qstat | pbs_env | slurm_env ####################################### # manual allocation description ####################################### -TOTAL_PROCS = 136 -NODES = 2 +#TOTAL_PROCS = 136 +#NODES = 2 -PROCS_PER_NODE = 68 +#PROCS_PER_NODE = 68 ####################################### # node topology description diff --git a/iterative-xolotlFT-UQ/conf.ips.perlmutter b/iterative-xolotlFT-UQ/conf.ips.perlmutter index 34e5077..059ed6e 100644 --- a/iterative-xolotlFT-UQ/conf.ips.perlmutter +++ b/iterative-xolotlFT-UQ/conf.ips.perlmutter @@ -19,8 +19,8 @@ PROCS_PER_NODE = 128 ####################################### # node topology description ####################################### -CORES_PER_NODE = 64 -SOCKETS_PER_NODE = 2 +CORES_PER_NODE = 128 +SOCKETS_PER_NODE = 1 ####################################### # framework setting for node allocation diff --git a/iterative-xolotlFT-UQ/ips.ftx.config b/iterative-xolotlFT-UQ/ips.ftx.config index 2786580..248cb28 100644 --- a/iterative-xolotlFT-UQ/ips.ftx.config +++ b/iterative-xolotlFT-UQ/ips.ftx.config @@ -18,22 +18,21 @@ RUN_COMMENT = F-Tridyn-Xolotl UQ run TOKAMAK_ID = ANY SHOT_NUMBER = 12345 -SIM_NAME = ftx_Sim +SIM_NAME = {SIM_NAME} +SIM_ROOT = {SIM_ROOT} +SIM_INPUT_DIR= $SIM_ROOT/_inputs OUTPUT_PREFIX = -LOG_FILE = log.warning +LOG_FILE = $SIM_ROOT/log.warning LOG_LEVEL = INFO # DEBUG | INFO | WARN | ERROR | CRITICAL -SIM_ROOT = $PWD -SIM_INPUT_DIR= $PWD/_inputs - SIMULATION_MODE = NORMAL # NORMAL or RESTART RESTART_TIME = LATEST # Float or LATEST RESTART_ROOT = $SIM_ROOT #option of running multiple IPS simulations, each from a different directory -CASE_PATH=$PWD -INPUT_DIR=$CASE_PATH +CASE_PATH=$SIM_ROOT +INPUT_DIR=$SIM_ROOT # ====================================================================== # PLASMA STATE SECTION @@ -135,7 +134,7 @@ PLASMA_STATE_FILES = $FT_PWD_PATH #$XFT_TRANSFER_FILE $XOLOTL_INPUT_FILES $XOLOT NPROC = {NPROC} #TEST VALUE: for testing request just 32 ; for full runs change to 128 #ideally: NPROC/task_ppn = number of nodes task_ppn={task_ppn} THREADS_PER_TASK=1 #OMP_NUM_THREADS - BIN_PATH = $ATOM_CORI/xolotl/xolotl-bursting-UQ-gnu/xolotl/ + BIN_PATH = $ATOM_{MACHINE}/xolotl/xolotl-bursting-UQ-gnu/xolotl/ XOLOTL_EXE = $BIN_PATH/xolotl INPUT_DIR = #$BIN_PATH INPUT_FILES = #$INPUT_DIR/param.template @@ -153,7 +152,7 @@ PLASMA_STATE_FILES = $FT_PWD_PATH #$XFT_TRANSFER_FILE $XOLOTL_INPUT_FILES $XOLOT SUB_CLASS = NAME = ftridynWorker NPROC = 1 - BIN_PATH = $FTRIDYN_PATH/src + BIN_PATH = $ATOM_{MACHINE}/fractal-tridyn/src FTRIDYN_EXE = $BIN_PATH/shell_Ftridyn.sh INPUT_DIR = #/Users/tqd/Code/hi_input INPUT_FILES = #$INPUT_DIR/example.txt @@ -161,8 +160,8 @@ PLASMA_STATE_FILES = $FT_PWD_PATH #$XFT_TRANSFER_FILE $XOLOTL_INPUT_FILES $XOLOT PWD_PATH= $FT_PWD_PATH MODULE = ips_xolotlFT.ftridyn_comp SCRIPT = - FTMPI_EXEC = $GITR_PATH/python/runFTexec_vEdison.py - FTMPI_NODES = 2 #TEST VALUE: for testing request just 1 ; for full runs change to 4 + FTMPI_EXEC = $ATOM_{MACHINE}/GITR/python/runFTexec_vEdison.py + FTMPI_NODES = {FTMPI_NODES} #TEST VALUE: for testing request just 1 ; for full runs change to 4 FTMPI_PPN = {FTMPI_PPN} THREADS_PER_TASK=1 #OMP_NUM_THREADS STATE_FILES = $TRIDYN_DAT_FILE $SP_YIELDS_FILE $ALL_SPYIELDS_FILE $LAY_FILES $FT_PWD_PATH $LAST_TRIDYN #$PLASMA_STATE_FILES @@ -184,6 +183,7 @@ PLASMA_STATE_FILES = $FT_PWD_PATH #$XFT_TRANSFER_FILE $XOLOTL_INPUT_FILES $XOLOT LOG_FILE=$CASE_PATH/log.ftx PRINT_TEST='on' #on = print test lines (for devel / debug) ; off = print the std running output STATE_FILES = $FT_PWD_PATH $XFT_TRANSFER_FILE $XOLOTL_INPUT_FILES $XOLOTL_CURRENT_FILES $RESTART_FILES #$PLASMA_STATE_FILES + time_decimal={time_decimal} ##### FILES #### ## IEADs: @@ -353,6 +353,7 @@ PLASMA_STATE_FILES = $FT_PWD_PATH #$XFT_TRANSFER_FILE $XOLOTL_INPUT_FILES $XOLOT -ts_atol={ts_atol} -ts_rtol={ts_rtol} -tridyn='False' + -ts_adapt_clip={ts_adapt_clip} ### F-TRIDYN RELATED PARAMETERS ### [[FTRIDYN_INPUT_PARAMETERS]] diff --git a/iterative-xolotlFT-UQ/ips.ftx.config.old b/iterative-xolotlFT-UQ/ips.ftx.config.old deleted file mode 100755 index 22c2c52..0000000 --- a/iterative-xolotlFT-UQ/ips.ftx.config.old +++ /dev/null @@ -1,380 +0,0 @@ -# ====================================================================== -# PLATFORM OVERRIDE SECTION -# ====================================================================== - -# HOST = -# MPIRUN = -# PHYS_BIN_ROOT = -# DATA_TREE_ROOT = -# PORTAL_URL = -# RUNID_URL = - -# ====================================================================== -# SIMULATION INFO SECTION -# ====================================================================== - -RUN_ID = myRun -RUN_COMMENT = F this -TOKAMAK_ID = ITER -SHOT_NUMBER = 12345 - -SIM_NAME = ftx_Sim - -OUTPUT_PREFIX = -LOG_FILE = log.warning -LOG_LEVEL = INFO # DEBUG | INFO | WARN | ERROR | CRITICAL - -SIM_ROOT = $PWD -SIM_INPUT_DIR= $PWD/_inputs - -SIMULATION_MODE = NORMAL # NORMAL or RESTART -RESTART_TIME = LATEST # Float or LATEST -RESTART_ROOT = $SIM_ROOT - -#option of running multiple IPS simulations, each from a different directory -CASE_PATH=$PWD -INPUT_DIR=$CASE_PATH - -# ====================================================================== -# PLASMA STATE SECTION -# ====================================================================== - -# Where to put plasma state files as the simulation evolves -STATE_WORK_DIR = $SIM_ROOT/work/plasma_state -ARCHIVE_STATE_ON_OUTPUT = TRUE - -# Config variables defining simulation specific names for plasma state files -CURRENT_STATE = ips-state.nc -PRIOR_STATE = ips-state-prior.nc -NEXT_STATE = ips-state-next.nc -CURRENT_EQDSK = ips-eqdsk.geq -CURRENT_CQL = ips-cql.dat -CURRENT_DQL = ips-dql.nc -CURRENT_JSDSK = ips-jsdsk.jso -CURRENT_INSTATE = ips-instate -CURRENT_FASTRAN = ips-fastran.nc -CURRENT_BC = ips-bc.bc - -PLASMA_OUTPUT_STD = 'gitrOut.txt' -FTX_INPUT_STD = $PLASMA_OUTPUT_STD #'ftxInput.txt' - -#file names in same order as plasmaSpecies in PLASMAs input section!! -FT_PWD_PATH=ftridyn_pwd_path.txt -FTRIDYN_IN_FILES = He_W0001.IN W_W_0001.IN D_W_0001.IN T_W_0001.IN C_fW0001.IN #C_W_0001.IN -FTRIDYN_IN_SURFACE=1p0.surf -FTRIDYN_INPUT_FILES=$FTRIDYN_IN_FILES $FTRIDYN_IN_SURFACE -FT_ENERGY_FILES=He_W0001.ED1 W_W_0001.ED1 D_W_0001.ED1 T_W_0001.ED1 C_fW0001.ED1 #C_W_0001.ED1 -LAY_FILES= He_W0001.LAY W_W_0001.LAY D_W_0001.LAY T_W_0001.LAY C_fW0001.LAY #C_W_0001.LAY -FTRIDYN_OUT_FILES=He_WOUT.DAT W_W_OUT.DAT D_W_OUT.DAT T_W_OUT.DAT C_fWOUT.DAT #C_W_OUT.DAT -FTRIDYN_PRJ_FILES=He_WDUMPPRJ.DAT W_W_DUMPPRJ.DAT D_W_DUMPPRJ.DAT T_W_DUMPPRJ.DAT C_fWDUMPPRJ.DAT #C_W_DUMPPRJ.DAT -#FTRIDYN_OUTPUT_FILES = FTRIDYN.zip $FTRIDYN_OUT_FILES $FTRIDYN_PRJ_FILES - -XOL_NETWORK_FILE=networkFile.h5 -XOLOTL_INPUT_FILES=paramXolotl_1D.txt paramXolotl_2D.txt -XOL_EXIT_STATUS=solverStatus.txt -XOL_RETENTION_FILE=retentionOut.txt -XOL_RETENTION_FINAL=allRetentionOut.txt -XOL_SURFACE_FILE=surface.txt -XOL_SURFACE_FINAL=allSurface.txt -XOL_TRIDYN_FILES = last_TRIDYN_toBin.h5 last_TRIDYN.dat -XOLOTL_CURRENT_FILES = params.txt xolotlStop.h5 $XOL_RETENTION_FILE $XOL_SURFACE_FILE $XOL_TRIDYN_FILES -XOLOTL_FINAL_FILES = $XOL_RETENTION_FINAL $XOL_SURFACE_FINAL -RESTART_FILES=last_TRIDYN.dat $XOL_NETWORK_FILE #params.txt tridyn.dat - -SP_YIELDS_FILE=spYields.txt -ALL_SPYIELDS_FILE=allSpYields.out -TRIDYN_DAT_FILE=tridyn.dat -ALL_TRIDYNDAT_FILE=allTridyn.dat -XFT_TRANSFER_FILE = $TRIDYN_DAT_FILE $SP_YIELDS_FILE $ALL_SPYIELDS_FILE $XOL_EXIT_STATUS $LAY_FILES #LL_TRIDYNDAT_FILE -# List of files that constitute the plasma state -PLASMA_STATE_FILES = $FT_PWD_PATH $XFT_TRANSFER_FILE $XOLOTL_INPUT_FILES $XOLOTL_CURRENT_FILES $XOLOTL_FINAL_FILES $RESTART_FILES $FTX_INPUT_STD $PLASMA_OUTPUT_STD -# $FTRIDYN_OUTPUT_FILES $FTRIDYN_INPUT_FILES - -# ====================================================================== -# PORTS SECTION -# ====================================================================== - -[PORTS] - - #The order here is the order in which they are run. - -# NAMES = DRIVER INIT CODE_INIT WORKER XWORKER - NAMES = DRIVER WORKER XWORKER - # INIT will be run before driver is launched - # Required ports - DRIVER and INIT - - [[DRIVER]] - IMPLEMENTATION = xolotl-ftridyn_driver - - #[[INIT]] - # IMPLEMENTATION = - - #[[CODE_INIT]] - # IMPLEMENTATION = ftridyn_init - - [[WORKER]] - IMPLEMENTATION = ftridyn_comp - - [[XWORKER]] - IMPLEMENTATION = xolotl_comp - - # Monitor ports - - [[MONITOR]] - IMPLEMENTATION = monitor_comp - -# ====================================================================== -# COMPONENT CONFIGURATION SECTION -# ====================================================================== - -[xolotl_comp] - CLASS = workers - SUB_CLASS = - NAME = xolotlWorker - NPROC = {NPROC} #TEST VALUE: for testing request just 32 ; for full runs change to 128 #ideally: NPROC/task_ppn = number of nodes - task_ppn={task_ppn} - THREADS_PER_TASK=1 #OMP_NUM_THREADS - BIN_PATH = $ATOM_CORI/xolotl/xolotl-bursting-UQ-gnu/xolotl/ - XOLOTL_EXE = $BIN_PATH/xolotl - INPUT_DIR = #$BIN_PATH - INPUT_FILES = #$INPUT_DIR/param.template - OUTPUT_FILES = - MODULE = ips_xolotlFT.xolotl_comp - SCRIPT = - EXIT_STATUS=$XOL_EXIT_STATUS #same as exit_status file in driver - RET_FILE=$XOL_RETENTION_FILE - SURFACE_FILE=$XOL_SURFACE_FILE - NETWORK_FILE=$XOL_NETWORK_FILE - STATE_FILES = $PLASMA_STATE_FILES - -[ftridyn_comp] - CLASS = workers - SUB_CLASS = - NAME = ftridynWorker - NPROC = 1 - BIN_PATH = $FTRIDYN_PATH/src - FTRIDYN_EXE = $BIN_PATH/shell_Ftridyn.sh - INPUT_DIR = #/Users/tqd/Code/hi_input - INPUT_FILES = #$INPUT_DIR/example.txt - OUTPUT_FILES = output.txt - PWD_PATH= $FT_PWD_PATH - MODULE = ips_xolotlFT.ftridyn_comp - SCRIPT = - FTMPI_EXEC = $GITR_PATH/python/runFTexec_vEdison.py - FTMPI_NODES = 2 #TEST VALUE: for testing request just 1 ; for full runs change to 4 - FTMPI_PPN = {FTMPI_PPN} - THREADS_PER_TASK=1 #OMP_NUM_THREADS - STATE_FILES = $PLASMA_STATE_FILES - -[xolotl-ftridyn_driver] - CLASS = driver - SUB_CLASS = - NAME = xolotlFtridynDriver - NPROC = 1 - BIN_PATH = - INPUT_DIR = $CASE_PATH #consistent with INPUT_DIR above? - INPUT_FILES = $XOLOTL_INPUT_FILES - NETWORK_FILE=$XOL_NETWORK_FILE - OUTPUT_FILES = - MODULE = ips_xolotlFT.xolotl-ftridyn_driver - SCRIPT = - SUBMIT_DIR=$SLURM_SUBMIT_DIR - FT_OUTPUT_PWD_PATH = $FT_PWD_PATH - LOG_FILE=$CASE_PATH/log.ftx - PRINT_TEST='on' #on = print test lines (for devel / debug) ; off = print the std running output - STATE_FILES = $PLASMA_STATE_FILES - - ##### FILES #### - ## IEADs: - #PLASMA_ANGLE_FILE = gitrFluxA.dat - #PLASMA_AWEIGHT_FILE = gitrFluxAweight.dat - #PLASMA_EADIST_FILE = dist, .dat ##if using energy distributions, give pattern: filename, extension ; e.g., dist, .dat -- default ['dist','dat'] - #PLASMA_OUTPUT_FILE= $GITR_OUTPUT #same as GITR_OUTPUT_FILE in driver - - TIME_FILE=timeParameters.txt - PLASMA_OUTPUT_FILE = $FTX_INPUT_STD #ftxIn.txt - PLASMA_OUTPUT_ORIG = $PLASMA_OUTPUT_STD #solpsOut.txt - FTX_SPUT_YIELDS_FILE_FINAL = $ALL_SPYIELDS_FILE - FTX_SPUT_YIELDS_FILE_TEMP = $SP_YIELDS_FILE - FT_OUTPUT_FOLDER=FTRIDYN - FT_INPUT_FILE = $FTRIDYN_IN_FILES #'A_B_0001.IN' - FT_ENERGY_INPUT_FILE = $FT_ENERGY_FILES #'A_B_0001.ED1' - FT_OUTPUT_PRJ_FILE = $FTRIDYN_PRJ_FILES #'A_B_DUMPPRJ.dat' - FT_OUTPUT_FILE = $FTRIDYN_OUT_FILES #'A_B_OUT.DAT' - FTX_LAY_FILE = $LAY_FILES # 'A_B_0001.LAY' - FT_OUTPUT_PROFILE_TEMP=$TRIDYN_DAT_FILE - FT_OUTPUT_PROFILE_FINAL = $ALL_TRIDYNDAT_FILE #driver adds projectile name at the end - FT_SURFACE_FILE = $FTRIDYN_IN_SURFACE - XOLOTL_RETENTION_TEMP=$XOL_RETENTION_FILE - XOLOTL_RETENTION_FINAL=$XOL_RETENTION_FINAL - XOLOTL_SURFACE_TEMP = $XOL_SURFACE_FILE - XOLOTL_SURFACE_FINAL = $XOL_SURFACE_FINAL - XOLOTL_EXIT_STATUS=$XOL_EXIT_STATUS - XOLOTL_NETWORK_FILE=$XOL_NETWORK_FILE - XOLOTL_PARAM_TEMPLATE_PATH=$INPUT_DIR - -### DRIVER PARAMETERS ### - - [[DRIVER_INPUT_PARAMETERS]] - - ### F-TRIDYN and XOLOTL RELATED PARAMETERS NEEDED IN DRIVER ### - - ZIP_FTRIDYN_OUTPUT=True #compress F-TRIDYN's time-folder output (True) or leave as folder (False) -- done in driver - ZIP_XOLOTL_OUTPUT=False #compress (True) or delete (False) Xolotl's heConc_*.dat [TRIDYN_*.dat files not generated anymore] - #FTX_COUPLING=True #True: ouput TRIDYN_*.dat files in Xolotl, needed by FTX -- not generated anymore - - MAX_COLLAPSE_LOOPS = 3 #max number of tries to complete Xolotl successfully - XOLOTL_MAXTS_FACTOR=2 #FACTOR = 1 to not change MAXTS - XOLOTL_MAXTS_NLOOPS=1 #else, multiply MAXTS by FACTOR every NLOOPS - XOLOTL_MAX_TS={XOLOTL_MAX_TS} #limit on how much to increase Xolotl's max time step - XOLOTL_HE_CONC=False #Print He concentration files: True, False or Last (last loop) - XOLOTL_NUM_TRIES={XOLOTL_NUM_TRIES} #Number of times to try running xolotl before giving up - - xolotl_v=2 # choose xolotl version: - # 1: original ; e.g., master - # 2: new ; e.g., tempGrid - - # as of April 2022, xolotl version affects the following parameters: - # see Xolotl's wiki for the latest changes: - # https://github.com/ORNL-Fusion/xolotl/wiki - - # tridyn.dat - # choose format of tridyn.dat needed for your Xolotl executable (replace by xolotl_v) - #tridynDat_model=2 ## optional ; use if its different from xolotl_v - # 1=original, header: (1-reflection) for all species (He W D T) - # 2=new (2021), header: species cluster_size (1-reflection) only for species present in plasma - # header is followed by 15-param fit + max_depth - - # grid: - # v1: grid only - # v2: gridType (nonuniform...) + gridParam - - # temperature model: - # v1: one line: heat, startTemp - # v2: tempHandler (heat, constant...) + tempParam - - # material: - # this is handled in the config file - # to read the implantation from file (tridyn.dat) - # v1: material = TRIDYN - # for non W001 surfaces, need to recompile - # v2: material = W001... - # additional parameter: fluxDepthProfile = tridyn.dat - - # netParam / grouping file: - # v1: net file contains netParams, grouping and concentrations - # --> never need these params in restart - # v2: net file only contains concentrations, not netParams of grouping - # --> always need netParam & grouping as input paramters - # in both cases, need line networkFile = ... in: - # restarts (automatically added) - # start simulation loading net file -- not creating network (comment-out line networkFile = ... below) - - - [[TIME_PARAMETERS]] - - #start from the beginning (INIT) or from a previous run (RESTART) - #RESTART mode requires providing a list of input files, located in the 'restart_files directory: - #substrate composition (last_TRIDYN.dat) and Xolotl network (networkFile.h5) files - - START_MODE={START_MODE} #'INIT' or 'RESTART' - - INIT_TIME={INIT_TIME} - END_TIME={END_TIME} #TEST VALUE: short loops for these tests; otherwirse end time 10, loop time step 0.5 (start stop~0.01) - LOOP_TIME_STEP={LOOP_TIME_STEP} - LOOP_N={LOOP_N} #loop_N>0 if restarting from t>0 - - LOOP_TS_FACTOR={LOOP_TS_FACTOR} #FACTOR = 1 to not change LOOPS_TIME_STEP - LOOP_TS_NLOOPS={LOOP_TS_NLOOPS} #multiply TIME_STEP by FACTOR every NLOOPS - - #OVERWITE DEFAULT XOLOTL PARAMETERS - [[XOLOTL_INPUT_PARAMETERS]] - #all processes (bursting, attenuation...) ON by detault; specify to switch OFF (processName=False) - #Further changes with bursting: True (ON) -> maxVsize ~50(He) ~10(He+D) & PhaseCut='false' ; & grouping ON (He only) - # False (OFF) -> maxVsize ~250 & PhaseCut='true' ; & grouping OFF: groupHeV > MaxVSize - - #netParam and grouping - needed to create network in init for xolotl v1 & in all cases for xolotl v2 - netParam=8 0 0 {network_size} 6 #netParam = nHe nD nT maxVSize nInterstitials phaseCut ; - # e.g., 8 0 0 50 6 false for ITER-He ; 8 0 0 250 6 false for PISCES - grouping=31 4 1 #grouping = groupHeV groupHe groupV ; grouping ON: groupHeV < MaxVSize ; - # e.g., 31 4 4 for ITER-He network 50 ; 31 4 1 for PISCES or ITER network 250 - networkFile='networkFile.h5' # comment out this line if loading network file from INIT (not create) - # the driver adds this line if in restart mode - - dimensions=1 - voidPortion={voidPortion} - boundary=1 1 - perfHandler=os #std - lattice={lattice} - impurityRadius={impurityRadius} - biasFactor={biasFactor} - initialV={initialV} - migration={He1} {He2} {He3} {He4} {He5} {He6} {He7} {V1} - - #options for xolotl v1 executables (e.g., master) - grid=366 0.5 - #startTemp=500.0 #startTemp, or heat - #material=TRIDYN - - #options for xolotl v2 executables (e.g., tempGrid) - tempHandler='constant' # tempHandler signals to the driver to use the 2-line temperature model - tempParam={tempParam} - # tempParam=... # value of heat usually given by plasma input - gridType=nonuniform # new instead of just grid - gridParam={gridParam} 0.5 # new instead of just grid - material=W100 - fluxDepthProfileFilePath=tridyn.dat #option to have depth profile being read from file (tridyn.dat) - - # options for the new bubble bursting model - # The equation for the bursting rate k_b is - # - # k_b = (R / d) * f' * min (1, e^-(d-tau_d)/(2 tau_d)) - # - # where - # R = radius of the cluster - # d = distance from the surface - # f' = bursting factor (default 2.0e8) - # tau_d = bursting depth (default 10 nm) - # The default values for f' and tau_d were obtained from matching a MD simulation at a flux of 5e27 He m-2 s-1. - # Proposed ranges are tau_d [1, 20] nm, f' [1e2, 1e9] on a log10 base - burstingFactor={burstingFactor} - burstingDepth={burstingDepth} - - #by default, all processes are ON in Xolotl: reaction advec modifiedTM diff movingSurface attenuation bursting - #to remove a process, set processName=false: - [[XOLOTL_INPUT_PROCESSES]] - #e.g.: bursting=false - - - [[XOLOTL_INPUT_PETSCARGS]] - -start_stop={start_stop} #initial start_stop value ~LOOP_TIME_STEP/10.0; then scaled as LOOP_TIME_STEP - -ts_adapt_dt_max={ts_adapt_dt_max} #initial value of max ts in Xolotl; ~1e-5 at t=0.0; then it can be increased by MAXTS_FACTOR - -ts_atol={ts_atol} - -ts_rtol={ts_rtol} - -tridyn='False' - - ### F-TRIDYN RELATED PARAMETERS ### - [[FTRIDYN_INPUT_PARAMETERS]] - totalDepth=0.0 #total substrate depth in [A]; set to 0.0 to use what Xolotl passes to ftridyn (as deep as He exists) - #use TotalDepth=0.0 if startMode is RESTART -- check if a fixed totalDepth works on the 1st loop - initialTotalDepth=300.0 #if TotalDepth=0.0, choose an appropriate depth for the irradiation energy in the 1st loop - nImpacts={nImpacts} #number of impacts (NH in generateInput) - SBV_W={SBV_W} - EF_W={EF_W} - EF_He={EF_He} - E0_He={E0_He} - ALPHA0_He={ALPHA0_He} - - #order as in plasmaSpecies of GITR/PLASMA - #if spYield < 0 OR reflYield<0 -> use calculated value; else, use fixed value, usually [0,1) - inputSpYield=-1.0 -1.0 -1.0 -1.0 -1.0 - inputRYield=-1.0 -1.0 -1.0 -1.0 -1.0 - - #PURPOSE: add parameters if keys don't exist in PLASMA's output - [[PLASMA_INPUT_PARAMETERS]] - #plasmaSpecies=He W D T #1st: main substrate species (even if no redep); then gases - #fluxFraction=0.1 0.00034 0.9 0.0 #wrt total plasma flux (specified in Xolotl): sum of all plasma species' fractions = 1.0 - #flux=1.5e4 #total plasma flux (e.g., as measured experimentally), for now in ions/nm2 [Xolotl units] - #E or A < 0 -> use distribution(s) ; E or A > 0 -> use given values - inputEnergy={inputEnergy_He} {inputAngle_W} 0.0 0.0 0.0 #impact energy (energy in generateInput, [eV]) - inputAngle={inputAngle_He} {inputAngle_W} 0.0 0.0 0.0 #angle wrt surface normal diff --git a/iterative-xolotlFT-UQ/ips.ftx.config.working b/iterative-xolotlFT-UQ/ips.ftx.config.working deleted file mode 100644 index a50c5fc..0000000 --- a/iterative-xolotlFT-UQ/ips.ftx.config.working +++ /dev/null @@ -1,358 +0,0 @@ -# ====================================================================== -# PLATFORM OVERRIDE SECTION -# ====================================================================== - -# HOST = -# MPIRUN = -# PHYS_BIN_ROOT = -# DATA_TREE_ROOT = -# PORTAL_URL = -# RUNID_URL = - -# ====================================================================== -# SIMULATION INFO SECTION -# ====================================================================== - -RUN_ID = myRun -RUN_COMMENT = F this -TOKAMAK_ID = ITER -SHOT_NUMBER = 12345 - -SIM_NAME = ftx_Sim - -OUTPUT_PREFIX = -LOG_FILE = log.warning -LOG_LEVEL = INFO # DEBUG | INFO | WARN | ERROR | CRITICAL - -SIM_ROOT = $PWD -SIM_INPUT_DIR= $PWD/_inputs - -SIMULATION_MODE = NORMAL # NORMAL or RESTART -RESTART_TIME = LATEST # Float or LATEST -RESTART_ROOT = $SIM_ROOT - -#option of running multiple IPS simulations, each from a different directory -CASE_PATH=$PWD -INPUT_DIR=$CASE_PATH - -# ====================================================================== -# PLASMA STATE SECTION -# ====================================================================== - -# Where to put plasma state files as the simulation evolves -STATE_WORK_DIR = $SIM_ROOT/work/plasma_state -ARCHIVE_STATE_ON_OUTPUT = TRUE - -# Config variables defining simulation specific names for plasma state files -CURRENT_STATE = ips-state.nc -PRIOR_STATE = ips-state-prior.nc -NEXT_STATE = ips-state-next.nc -CURRENT_EQDSK = ips-eqdsk.geq -CURRENT_CQL = ips-cql.dat -CURRENT_DQL = ips-dql.nc -CURRENT_JSDSK = ips-jsdsk.jso -CURRENT_INSTATE = ips-instate -CURRENT_FASTRAN = ips-fastran.nc -CURRENT_BC = ips-bc.bc - -PLASMA_OUTPUT_STD = 'gitrOut.txt' -FTX_INPUT_STD = $PLASMA_OUTPUT_STD #'ftxInput.txt' - -#file names in same order as plasmaSpecies in PLASMAs input section!! -FT_PWD_PATH=ftridyn_pwd_path.txt -FTRIDYN_IN_FILES = He_W0001.IN W_W_0001.IN D_W_0001.IN T_W_0001.IN C_fW0001.IN #C_W_0001.IN -FTRIDYN_IN_SURFACE=1p0.surf -FTRIDYN_INPUT_FILES=$FTRIDYN_IN_FILES $FTRIDYN_IN_SURFACE -FT_ENERGY_FILES=He_W0001.ED1 W_W_0001.ED1 D_W_0001.ED1 T_W_0001.ED1 C_fW0001.ED1 #C_W_0001.ED1 -LAY_FILES= He_W0001.LAY W_W_0001.LAY D_W_0001.LAY T_W_0001.LAY C_fW0001.LAY #C_W_0001.LAY -FTRIDYN_OUT_FILES=He_WOUT.DAT W_W_OUT.DAT D_W_OUT.DAT T_W_OUT.DAT C_fWOUT.DAT #C_W_OUT.DAT -FTRIDYN_PRJ_FILES=He_WDUMPPRJ.DAT W_W_DUMPPRJ.DAT D_W_DUMPPRJ.DAT T_W_DUMPPRJ.DAT C_fWDUMPPRJ.DAT #C_W_DUMPPRJ.DAT -#FTRIDYN_OUTPUT_FILES = FTRIDYN.zip $FTRIDYN_OUT_FILES $FTRIDYN_PRJ_FILES - -XOL_NETWORK_FILE=networkFile.h5 -XOLOTL_INPUT_FILES=paramXolotl_1D.txt paramXolotl_2D.txt -XOL_EXIT_STATUS=solverStatus.txt -XOL_RETENTION_FILE=retentionOut.txt -XOL_RETENTION_FINAL=allRetentionOut.txt -XOL_SURFACE_FILE=surface.txt -XOL_SURFACE_FINAL=allSurface.txt -XOL_TRIDYN_FILES = last_TRIDYN_toBin.h5 last_TRIDYN.dat -XOLOTL_CURRENT_FILES = params.txt xolotlStop.h5 $XOL_RETENTION_FILE $XOL_SURFACE_FILE $XOL_TRIDYN_FILES -XOLOTL_FINAL_FILES = $XOL_RETENTION_FINAL $XOL_SURFACE_FINAL -RESTART_FILES=last_TRIDYN.dat $XOL_NETWORK_FILE #params.txt tridyn.dat - -SP_YIELDS_FILE=spYields.txt -ALL_SPYIELDS_FILE=allSpYields.out -TRIDYN_DAT_FILE=tridyn.dat -ALL_TRIDYNDAT_FILE=allTridyn.dat -XFT_TRANSFER_FILE = $TRIDYN_DAT_FILE $SP_YIELDS_FILE $ALL_SPYIELDS_FILE $XOL_EXIT_STATUS $LAY_FILES #LL_TRIDYNDAT_FILE -# List of files that constitute the plasma state -PLASMA_STATE_FILES = $FT_PWD_PATH $XFT_TRANSFER_FILE $XOLOTL_INPUT_FILES $XOLOTL_CURRENT_FILES $XOLOTL_FINAL_FILES $RESTART_FILES $FTX_INPUT_STD $PLASMA_OUTPUT_STD -# $FTRIDYN_OUTPUT_FILES $FTRIDYN_INPUT_FILES - -# ====================================================================== -# PORTS SECTION -# ====================================================================== - -[PORTS] - - #The order here is the order in which they are run. - -# NAMES = DRIVER INIT CODE_INIT WORKER XWORKER - NAMES = DRIVER WORKER XWORKER - # INIT will be run before driver is launched - # Required ports - DRIVER and INIT - - [[DRIVER]] - IMPLEMENTATION = xolotl-ftridyn_driver - - #[[INIT]] - # IMPLEMENTATION = - - #[[CODE_INIT]] - # IMPLEMENTATION = ftridyn_init - - [[WORKER]] - IMPLEMENTATION = ftridyn_comp - - [[XWORKER]] - IMPLEMENTATION = xolotl_comp - - # Monitor ports - - [[MONITOR]] - IMPLEMENTATION = monitor_comp - -# ====================================================================== -# COMPONENT CONFIGURATION SECTION -# ====================================================================== - -[xolotl_comp] - CLASS = workers - SUB_CLASS = - NAME = xolotlWorker - NPROC = 64 #TEST VALUE: for testing request just 32 ; for full runs change to 128 #ideally: NPROC/task_ppn = number of nodes - task_ppn=32 - THREADS_PER_TASK=1 #OMP_NUM_THREADS - #BIN_PATH = $ATOM_CORI/xolotl/xolotl-tempGrid-build/xolotl - BIN_PATH = $ATOM_CORI/xolotl/xolotl-bursting-UQ-gnu/xolotl/ - #$ATOM_CORI/xolotl/xolotl-pulsed-build/ #xolotl-111-build/ #xolotl-master-build/ #xolotl-fork-build/ - #/project/projectdirs/atom/users/elwasif/xolotl/xolotl-git/build #CHANGED FOR MPIRUN $XOLOTL_PATH - XOLOTL_EXE = $BIN_PATH/xolotl - INPUT_DIR = #$BIN_PATH - INPUT_FILES = #$INPUT_DIR/param.template - OUTPUT_FILES = - MODULE = ips_xolotlFT.xolotl_comp - SCRIPT = - EXIT_STATUS=$XOL_EXIT_STATUS #same as exit_status file in driver - RET_FILE=$XOL_RETENTION_FILE - SURFACE_FILE=$XOL_SURFACE_FILE - NETWORK_FILE=$XOL_NETWORK_FILE - STATE_FILES = $PLASMA_STATE_FILES - -[ftridyn_comp] - CLASS = workers - SUB_CLASS = - NAME = ftridynWorker - NPROC = 1 - BIN_PATH = $FTRIDYN_PATH/src - FTRIDYN_EXE = $BIN_PATH/shell_Ftridyn.sh - INPUT_DIR = #/Users/tqd/Code/hi_input - INPUT_FILES = #$INPUT_DIR/example.txt - OUTPUT_FILES = output.txt - PWD_PATH= $FT_PWD_PATH - MODULE = ips_xolotlFT.ftridyn_comp - SCRIPT = - FTMPI_EXEC = $GITR_PATH/python/runFTexec_vEdison.py - FTMPI_NODES = 2 #TEST VALUE: for testing request just 1 ; for full runs change to 4 - FTMPI_PPN = 32 - THREADS_PER_TASK=1 #OMP_NUM_THREADS - STATE_FILES = $PLASMA_STATE_FILES - -[xolotl-ftridyn_driver] - CLASS = driver - SUB_CLASS = - NAME = xolotlFtridynDriver - NPROC = 1 - BIN_PATH = - INPUT_DIR = $CASE_PATH #consistent with INPUT_DIR above? - INPUT_FILES = $XOLOTL_INPUT_FILES - NETWORK_FILE=$XOL_NETWORK_FILE - OUTPUT_FILES = - MODULE = ips_xolotlFT.xolotl-ftridyn_driver - SCRIPT = - SUBMIT_DIR=$SLURM_SUBMIT_DIR - FT_OUTPUT_PWD_PATH = $FT_PWD_PATH - LOG_FILE=$CASE_PATH/log.ftx - PRINT_TEST='on' #on = print test lines (for devel / debug) ; off = print the std running output - STATE_FILES = $PLASMA_STATE_FILES - - ##### FILES #### - ## IEADs: - #PLASMA_ANGLE_FILE = gitrFluxA.dat - #PLASMA_AWEIGHT_FILE = gitrFluxAweight.dat - #PLASMA_EADIST_FILE = dist, .dat ##if using energy distributions, give pattern: filename, extension ; e.g., dist, .dat -- default ['dist','dat'] - #PLASMA_OUTPUT_FILE= $GITR_OUTPUT #same as GITR_OUTPUT_FILE in driver - - TIME_FILE=timeParameters.txt - PLASMA_OUTPUT_FILE = $FTX_INPUT_STD #ftxIn.txt - PLASMA_OUTPUT_ORIG = $PLASMA_OUTPUT_STD #solpsOut.txt - FTX_SPUT_YIELDS_FILE_FINAL = $ALL_SPYIELDS_FILE - FTX_SPUT_YIELDS_FILE_TEMP = $SP_YIELDS_FILE - FT_OUTPUT_FOLDER=FTRIDYN - FT_INPUT_FILE = $FTRIDYN_IN_FILES #'A_B_0001.IN' - FT_ENERGY_INPUT_FILE = $FT_ENERGY_FILES #'A_B_0001.ED1' - FT_OUTPUT_PRJ_FILE = $FTRIDYN_PRJ_FILES #'A_B_DUMPPRJ.dat' - FT_OUTPUT_FILE = $FTRIDYN_OUT_FILES #'A_B_OUT.DAT' - FTX_LAY_FILE = $LAY_FILES # 'A_B_0001.LAY' - FT_OUTPUT_PROFILE_TEMP=$TRIDYN_DAT_FILE - FT_OUTPUT_PROFILE_FINAL = $ALL_TRIDYNDAT_FILE #driver adds projectile name at the end - FT_SURFACE_FILE = $FTRIDYN_IN_SURFACE - XOLOTL_RETENTION_TEMP=$XOL_RETENTION_FILE - XOLOTL_RETENTION_FINAL=$XOL_RETENTION_FINAL - XOLOTL_SURFACE_TEMP = $XOL_SURFACE_FILE - XOLOTL_SURFACE_FINAL = $XOL_SURFACE_FINAL - XOLOTL_EXIT_STATUS=$XOL_EXIT_STATUS - XOLOTL_NETWORK_FILE=$XOL_NETWORK_FILE - XOLOTL_PARAM_TEMPLATE_PATH=$INPUT_DIR - -### DRIVER PARAMETERS ### - - [[DRIVER_INPUT_PARAMETERS]] - - ### F-TRIDYN and XOLOTL RELATED PARAMETERS NEEDED IN DRIVER ### - - ZIP_FTRIDYN_OUTPUT=True #compress F-TRIDYN's time-folder output (True) or leave as folder (False) -- done in driver - ZIP_XOLOTL_OUTPUT=False #compress (True) or delete (False) Xolotl's heConc_*.dat [TRIDYN_*.dat files not generated anymore] - #FTX_COUPLING=True #True: ouput TRIDYN_*.dat files in Xolotl, needed by FTX -- not generated anymore - - MAX_COLLAPSE_LOOPS = 3 #max number of tries to complete Xolotl successfully - XOLOTL_MAXTS_FACTOR=1 #FACTOR = 1 to not change MAXTS - XOLOTL_MAXTS_NLOOPS=1 #else, multiply MAXTS by FACTOR every NLOOPS - XOLOTL_MAX_TS=0.001 #limit on how much to increase Xolotl's max time step - XOLOTL_HE_CONC=False #Print He concentration files: True, False or Last (last loop) - - xolotl_v=2 # choose xolotl version: - # 1: original ; e.g., master - # 2: new ; e.g., tempGrid - XOLOTL_NUM_TRIES = 1 - - # as of April 2022, xolotl version affects the following parameters: - # see Xolotl's wiki for the latest changes: - # https://github.com/ORNL-Fusion/xolotl/wiki - - # tridyn.dat - # choose format of tridyn.dat needed for your Xolotl executable (replace by xolotl_v) - #tridynDat_model=2 ## optional ; use if its different from xolotl_v - # 1=original, header: (1-reflection) for all species (He W D T) - # 2=new (2021), header: species cluster_size (1-reflection) only for species present in plasma - # header is followed by 15-param fit + max_depth - - # grid: - # v1: grid only - # v2: gridType (nonuniform...) + gridParam - - # temperature model: - # v1: one line: heat, startTemp - # v2: tempHandler (heat, constant...) + tempParam - - # material: - # this is handled in the config file - # to read the implantation from file (tridyn.dat) - # v1: material = TRIDYN - # for non W001 surfaces, need to recompile - # v2: material = W001... - # additional parameter: fluxDepthProfile = tridyn.dat - - # netParam / grouping file: - # v1: net file contains netParams, grouping and concentrations - # --> never need these params in restart - # v2: net file only contains concentrations, not netParams of grouping - # --> always need netParam & grouping as input paramters - # in both cases, need line networkFile = ... in: - # restarts (automatically added) - # start simulation loading net file -- not creating network (comment-out line networkFile = ... below) - - - [[TIME_PARAMETERS]] - - #start from the beginning (INIT) or from a previous run (RESTART) - #RESTART mode requires providing a list of input files, located in the 'restart_files directory: - #substrate composition (last_TRIDYN.dat) and Xolotl network (networkFile.h5) files - - START_MODE=INIT #'INIT' or 'RESTART' - - INIT_TIME=0.0 - END_TIME=2.0e-4 #TEST VALUE: short loops for these tests; otherwirse end time 10, loop time step 0.5 (start stop~0.01) - LOOP_TIME_STEP=1.0e-4 - LOOP_N=0 #loop_N>0 if restarting from t>0 - - LOOP_TS_FACTOR=1 #FACTOR = 1 to not change LOOPS_TIME_STEP - LOOP_TS_NLOOPS=1 #multiply TIME_STEP by FACTOR every NLOOPS - - #OVERWITE DEFAULT XOLOTL PARAMETERS - [[XOLOTL_INPUT_PARAMETERS]] - #all processes (bursting, attenuation...) ON by detault; specify to switch OFF (processName=False) - #Further changes with bursting: True (ON) -> maxVsize ~50(He) ~10(He+D) & PhaseCut='false' ; & grouping ON (He only) - # False (OFF) -> maxVsize ~250 & PhaseCut='true' ; & grouping OFF: groupHeV > MaxVSize - - #netParam and grouping - needed to create network in init for xolotl v1 & in all cases for xolotl v2 - netParam=8 1 0 100 6 #netParam = nHe nD nT maxVSize nInterstitials phaseCut ; - # e.g., 8 0 0 50 6 false for ITER-He ; 8 0 0 250 6 false for PISCES - grouping=11 2 2 #grouping = groupHeV groupHe groupV ; grouping ON: groupHeV < MaxVSize ; - # e.g., 31 4 4 for ITER-He network 50 ; 31 4 1 for PISCES or ITER network 250 - networkFile='networkFile.h5' # comment out this line if loading network file from INIT (not create) - # the driver adds this line if in restart mode - - dimensions=1 - burstingDepth=10 - voidPortion=47.81 - boundary=1 1 - perfHandler=os #std - - #options for xolotl v1 executables (e.g., master) - grid=366 0.5 - #startTemp=500.0 #startTemp, or heat - #material=TRIDYN - - #options for xolotl v2 executables (e.g., tempGrid) - tempHandler='heat' # tempHanndler signals to the driver to use the 2-line temperature model - # tempParam=... # value of heat usually given by plasma input - gridType=nonuniform # new instead of just grid - gridParam=366 0.5 # new instead of just grid - material=W100 - fluxDepthProfileFilePath=tridyn.dat #option to have depth profile being read from file (tridyn.dat) - - #by default, all processes are ON in Xolotl: reaction advec modifiedTM diff movingSurface attenuation bursting - #to remove a process, set processName=false: - [[XOLOTL_INPUT_PROCESSES]] - #e.g.: bursting=false - - - [[XOLOTL_INPUT_PETSCARGS]] - -start_stop=1.0e-5 #initial start_stop value ~LOOP_TIME_STEP/10.0; then scaled as LOOP_TIME_STEP - -ts_adapt_dt_max=1.0e-5 #initial value of max ts in Xolotl; ~1e-5 at t=0.0; then it can be increased by MAXTS_FACTOR - -ts_atol=1.0e-5 - -ts_rtol=1.0e-5 - -tridyn='False' - - ### F-TRIDYN RELATED PARAMETERS ### - [[FTRIDYN_INPUT_PARAMETERS]] - totalDepth=0.0 #total substrate depth in [A]; set to 0.0 to use what Xolotl passes to ftridyn (as deep as He exists) - #use TotalDepth=0.0 if startMode is RESTART -- check if a fixed totalDepth works on the 1st loop - initialTotalDepth=300.0 #if TotalDepth=0.0, choose an appropriate depth for the irradiation energy in the 1st loop - nImpacts=1.0e5 #number of impacts (NH in generateInput) - - #order as in plasmaSpecies of GITR/PLASMA - #if spYield < 0 OR reflYield<0 -> use calculated value; else, use fixed value, usually [0,1) - inputSpYield=-1.0 -1.0 -1.0 -1.0 -1.0 - inputRYield=-1.0 -1.0 -1.0 -1.0 -1.0 - - #PURPOSE: add parameters if keys don't exist in PLASMA's output - [[PLASMA_INPUT_PARAMETERS]] - #plasmaSpecies=He W D T #1st: main substrate species (even if no redep); then gases - #fluxFraction=0.1 0.00034 0.9 0.0 #wrt total plasma flux (specified in Xolotl): sum of all plasma species' fractions = 1.0 - #flux=1.5e4 #total plasma flux (e.g., as measured experimentally), for now in ions/nm2 [Xolotl units] - #E or A < 0 -> use distribution(s) ; E or A > 0 -> use given values - inputEnergy=0.0 0.0 0.0 0.0 0.0 #impact energy (energy in generateInput, [eV]) - inputAngle=0.0 0.0 0.0 0.0 0.0 #angle wrt surface normal diff --git a/iterative-xolotlFT-UQ/ips.ftx.config.working.2 b/iterative-xolotlFT-UQ/ips.ftx.config.working.2 deleted file mode 100644 index 7adb019..0000000 --- a/iterative-xolotlFT-UQ/ips.ftx.config.working.2 +++ /dev/null @@ -1,358 +0,0 @@ -# ====================================================================== -# PLATFORM OVERRIDE SECTION -# ====================================================================== - -# HOST = -# MPIRUN = -# PHYS_BIN_ROOT = -# DATA_TREE_ROOT = -# PORTAL_URL = -# RUNID_URL = - -# ====================================================================== -# SIMULATION INFO SECTION -# ====================================================================== - -RUN_ID = myRun -RUN_COMMENT = F this -TOKAMAK_ID = ITER -SHOT_NUMBER = 12345 - -SIM_NAME = ftx_Sim - -OUTPUT_PREFIX = -LOG_FILE = log.warning -LOG_LEVEL = INFO # DEBUG | INFO | WARN | ERROR | CRITICAL - -SIM_ROOT = $PWD -SIM_INPUT_DIR= $PWD/_inputs - -SIMULATION_MODE = NORMAL # NORMAL or RESTART -RESTART_TIME = LATEST # Float or LATEST -RESTART_ROOT = $SIM_ROOT - -#option of running multiple IPS simulations, each from a different directory -CASE_PATH=$PWD -INPUT_DIR=$CASE_PATH - -# ====================================================================== -# PLASMA STATE SECTION -# ====================================================================== - -# Where to put plasma state files as the simulation evolves -STATE_WORK_DIR = $SIM_ROOT/work/plasma_state -ARCHIVE_STATE_ON_OUTPUT = TRUE - -# Config variables defining simulation specific names for plasma state files -CURRENT_STATE = ips-state.nc -PRIOR_STATE = ips-state-prior.nc -NEXT_STATE = ips-state-next.nc -CURRENT_EQDSK = ips-eqdsk.geq -CURRENT_CQL = ips-cql.dat -CURRENT_DQL = ips-dql.nc -CURRENT_JSDSK = ips-jsdsk.jso -CURRENT_INSTATE = ips-instate -CURRENT_FASTRAN = ips-fastran.nc -CURRENT_BC = ips-bc.bc - -PLASMA_OUTPUT_STD = 'gitrOut.txt' -FTX_INPUT_STD = $PLASMA_OUTPUT_STD #'ftxInput.txt' - -#file names in same order as plasmaSpecies in PLASMAs input section!! -FT_PWD_PATH=ftridyn_pwd_path.txt -FTRIDYN_IN_FILES = He_W0001.IN W_W_0001.IN D_W_0001.IN T_W_0001.IN C_fW0001.IN #C_W_0001.IN -FTRIDYN_IN_SURFACE=1p0.surf -FTRIDYN_INPUT_FILES=$FTRIDYN_IN_FILES $FTRIDYN_IN_SURFACE -FT_ENERGY_FILES=He_W0001.ED1 W_W_0001.ED1 D_W_0001.ED1 T_W_0001.ED1 C_fW0001.ED1 #C_W_0001.ED1 -LAY_FILES= He_W0001.LAY W_W_0001.LAY D_W_0001.LAY T_W_0001.LAY C_fW0001.LAY #C_W_0001.LAY -FTRIDYN_OUT_FILES=He_WOUT.DAT W_W_OUT.DAT D_W_OUT.DAT T_W_OUT.DAT C_fWOUT.DAT #C_W_OUT.DAT -FTRIDYN_PRJ_FILES=He_WDUMPPRJ.DAT W_W_DUMPPRJ.DAT D_W_DUMPPRJ.DAT T_W_DUMPPRJ.DAT C_fWDUMPPRJ.DAT #C_W_DUMPPRJ.DAT -#FTRIDYN_OUTPUT_FILES = FTRIDYN.zip $FTRIDYN_OUT_FILES $FTRIDYN_PRJ_FILES - -XOL_NETWORK_FILE=networkFile.h5 -XOLOTL_INPUT_FILES=paramXolotl_1D.txt paramXolotl_2D.txt -XOL_EXIT_STATUS=solverStatus.txt -XOL_RETENTION_FILE=retentionOut.txt -XOL_RETENTION_FINAL=allRetentionOut.txt -XOL_SURFACE_FILE=surface.txt -XOL_SURFACE_FINAL=allSurface.txt -XOL_TRIDYN_FILES = last_TRIDYN_toBin.h5 last_TRIDYN.dat -XOLOTL_CURRENT_FILES = params.txt xolotlStop.h5 $XOL_RETENTION_FILE $XOL_SURFACE_FILE $XOL_TRIDYN_FILES -XOLOTL_FINAL_FILES = $XOL_RETENTION_FINAL $XOL_SURFACE_FINAL -RESTART_FILES=last_TRIDYN.dat $XOL_NETWORK_FILE #params.txt tridyn.dat - -SP_YIELDS_FILE=spYields.txt -ALL_SPYIELDS_FILE=allSpYields.out -TRIDYN_DAT_FILE=tridyn.dat -ALL_TRIDYNDAT_FILE=allTridyn.dat -XFT_TRANSFER_FILE = $TRIDYN_DAT_FILE $SP_YIELDS_FILE $ALL_SPYIELDS_FILE $XOL_EXIT_STATUS $LAY_FILES #LL_TRIDYNDAT_FILE -# List of files that constitute the plasma state -PLASMA_STATE_FILES = $FT_PWD_PATH $XFT_TRANSFER_FILE $XOLOTL_INPUT_FILES $XOLOTL_CURRENT_FILES $XOLOTL_FINAL_FILES $RESTART_FILES $FTX_INPUT_STD $PLASMA_OUTPUT_STD -# $FTRIDYN_OUTPUT_FILES $FTRIDYN_INPUT_FILES - -# ====================================================================== -# PORTS SECTION -# ====================================================================== - -[PORTS] - - #The order here is the order in which they are run. - -# NAMES = DRIVER INIT CODE_INIT WORKER XWORKER - NAMES = DRIVER WORKER XWORKER - # INIT will be run before driver is launched - # Required ports - DRIVER and INIT - - [[DRIVER]] - IMPLEMENTATION = xolotl-ftridyn_driver - - #[[INIT]] - # IMPLEMENTATION = - - #[[CODE_INIT]] - # IMPLEMENTATION = ftridyn_init - - [[WORKER]] - IMPLEMENTATION = ftridyn_comp - - [[XWORKER]] - IMPLEMENTATION = xolotl_comp - - # Monitor ports - - [[MONITOR]] - IMPLEMENTATION = monitor_comp - -# ====================================================================== -# COMPONENT CONFIGURATION SECTION -# ====================================================================== - -[xolotl_comp] - CLASS = workers - SUB_CLASS = - NAME = xolotlWorker - NPROC = 128 #TEST VALUE: for testing request just 32 ; for full runs change to 128 #ideally: NPROC/task_ppn = number of nodes - task_ppn=64 - THREADS_PER_TASK=1 #OMP_NUM_THREADS - #BIN_PATH = $ATOM_CORI/xolotl/xolotl-tempGrid-build/xolotl - BIN_PATH = $ATOM_CORI/xolotl/xolotl-bursting-UQ-gnu/xolotl/ - #$ATOM_CORI/xolotl/xolotl-pulsed-build/ #xolotl-111-build/ #xolotl-master-build/ #xolotl-fork-build/ - #/project/projectdirs/atom/users/elwasif/xolotl/xolotl-git/build #CHANGED FOR MPIRUN $XOLOTL_PATH - XOLOTL_EXE = $BIN_PATH/xolotl - INPUT_DIR = #$BIN_PATH - INPUT_FILES = #$INPUT_DIR/param.template - OUTPUT_FILES = - MODULE = ips_xolotlFT.xolotl_comp - SCRIPT = - EXIT_STATUS=$XOL_EXIT_STATUS #same as exit_status file in driver - RET_FILE=$XOL_RETENTION_FILE - SURFACE_FILE=$XOL_SURFACE_FILE - NETWORK_FILE=$XOL_NETWORK_FILE - STATE_FILES = $PLASMA_STATE_FILES - -[ftridyn_comp] - CLASS = workers - SUB_CLASS = - NAME = ftridynWorker - NPROC = 1 - BIN_PATH = $FTRIDYN_PATH/src - FTRIDYN_EXE = $BIN_PATH/shell_Ftridyn.sh - INPUT_DIR = #/Users/tqd/Code/hi_input - INPUT_FILES = #$INPUT_DIR/example.txt - OUTPUT_FILES = output.txt - PWD_PATH= $FT_PWD_PATH - MODULE = ips_xolotlFT.ftridyn_comp - SCRIPT = - FTMPI_EXEC = $GITR_PATH/python/runFTexec_vEdison.py - FTMPI_NODES = 2 #TEST VALUE: for testing request just 1 ; for full runs change to 4 - FTMPI_PPN = 128 - THREADS_PER_TASK=1 #OMP_NUM_THREADS - STATE_FILES = $PLASMA_STATE_FILES - -[xolotl-ftridyn_driver] - CLASS = driver - SUB_CLASS = - NAME = xolotlFtridynDriver - NPROC = 1 - BIN_PATH = - INPUT_DIR = $CASE_PATH #consistent with INPUT_DIR above? - INPUT_FILES = $XOLOTL_INPUT_FILES - NETWORK_FILE=$XOL_NETWORK_FILE - OUTPUT_FILES = - MODULE = ips_xolotlFT.xolotl-ftridyn_driver - SCRIPT = - SUBMIT_DIR=$SLURM_SUBMIT_DIR - FT_OUTPUT_PWD_PATH = $FT_PWD_PATH - LOG_FILE=$CASE_PATH/log.ftx - PRINT_TEST='on' #on = print test lines (for devel / debug) ; off = print the std running output - STATE_FILES = $PLASMA_STATE_FILES - - ##### FILES #### - ## IEADs: - #PLASMA_ANGLE_FILE = gitrFluxA.dat - #PLASMA_AWEIGHT_FILE = gitrFluxAweight.dat - #PLASMA_EADIST_FILE = dist, .dat ##if using energy distributions, give pattern: filename, extension ; e.g., dist, .dat -- default ['dist','dat'] - #PLASMA_OUTPUT_FILE= $GITR_OUTPUT #same as GITR_OUTPUT_FILE in driver - - TIME_FILE=timeParameters.txt - PLASMA_OUTPUT_FILE = $FTX_INPUT_STD #ftxIn.txt - PLASMA_OUTPUT_ORIG = $PLASMA_OUTPUT_STD #solpsOut.txt - FTX_SPUT_YIELDS_FILE_FINAL = $ALL_SPYIELDS_FILE - FTX_SPUT_YIELDS_FILE_TEMP = $SP_YIELDS_FILE - FT_OUTPUT_FOLDER=FTRIDYN - FT_INPUT_FILE = $FTRIDYN_IN_FILES #'A_B_0001.IN' - FT_ENERGY_INPUT_FILE = $FT_ENERGY_FILES #'A_B_0001.ED1' - FT_OUTPUT_PRJ_FILE = $FTRIDYN_PRJ_FILES #'A_B_DUMPPRJ.dat' - FT_OUTPUT_FILE = $FTRIDYN_OUT_FILES #'A_B_OUT.DAT' - FTX_LAY_FILE = $LAY_FILES # 'A_B_0001.LAY' - FT_OUTPUT_PROFILE_TEMP=$TRIDYN_DAT_FILE - FT_OUTPUT_PROFILE_FINAL = $ALL_TRIDYNDAT_FILE #driver adds projectile name at the end - FT_SURFACE_FILE = $FTRIDYN_IN_SURFACE - XOLOTL_RETENTION_TEMP=$XOL_RETENTION_FILE - XOLOTL_RETENTION_FINAL=$XOL_RETENTION_FINAL - XOLOTL_SURFACE_TEMP = $XOL_SURFACE_FILE - XOLOTL_SURFACE_FINAL = $XOL_SURFACE_FINAL - XOLOTL_EXIT_STATUS=$XOL_EXIT_STATUS - XOLOTL_NETWORK_FILE=$XOL_NETWORK_FILE - XOLOTL_PARAM_TEMPLATE_PATH=$INPUT_DIR - -### DRIVER PARAMETERS ### - - [[DRIVER_INPUT_PARAMETERS]] - - ### F-TRIDYN and XOLOTL RELATED PARAMETERS NEEDED IN DRIVER ### - - ZIP_FTRIDYN_OUTPUT=True #compress F-TRIDYN's time-folder output (True) or leave as folder (False) -- done in driver - ZIP_XOLOTL_OUTPUT=False #compress (True) or delete (False) Xolotl's heConc_*.dat [TRIDYN_*.dat files not generated anymore] - #FTX_COUPLING=True #True: ouput TRIDYN_*.dat files in Xolotl, needed by FTX -- not generated anymore - - MAX_COLLAPSE_LOOPS = 3 #max number of tries to complete Xolotl successfully - XOLOTL_MAXTS_FACTOR=1 #FACTOR = 1 to not change MAXTS - XOLOTL_MAXTS_NLOOPS=1 #else, multiply MAXTS by FACTOR every NLOOPS - XOLOTL_MAX_TS=0.001 #limit on how much to increase Xolotl's max time step - XOLOTL_HE_CONC=False #Print He concentration files: True, False or Last (last loop) - - xolotl_v=2 # choose xolotl version: - # 1: original ; e.g., master - # 2: new ; e.g., tempGrid - XOLOTL_NUM_TRIES = 1 - - # as of April 2022, xolotl version affects the following parameters: - # see Xolotl's wiki for the latest changes: - # https://github.com/ORNL-Fusion/xolotl/wiki - - # tridyn.dat - # choose format of tridyn.dat needed for your Xolotl executable (replace by xolotl_v) - #tridynDat_model=2 ## optional ; use if its different from xolotl_v - # 1=original, header: (1-reflection) for all species (He W D T) - # 2=new (2021), header: species cluster_size (1-reflection) only for species present in plasma - # header is followed by 15-param fit + max_depth - - # grid: - # v1: grid only - # v2: gridType (nonuniform...) + gridParam - - # temperature model: - # v1: one line: heat, startTemp - # v2: tempHandler (heat, constant...) + tempParam - - # material: - # this is handled in the config file - # to read the implantation from file (tridyn.dat) - # v1: material = TRIDYN - # for non W001 surfaces, need to recompile - # v2: material = W001... - # additional parameter: fluxDepthProfile = tridyn.dat - - # netParam / grouping file: - # v1: net file contains netParams, grouping and concentrations - # --> never need these params in restart - # v2: net file only contains concentrations, not netParams of grouping - # --> always need netParam & grouping as input paramters - # in both cases, need line networkFile = ... in: - # restarts (automatically added) - # start simulation loading net file -- not creating network (comment-out line networkFile = ... below) - - - [[TIME_PARAMETERS]] - - #start from the beginning (INIT) or from a previous run (RESTART) - #RESTART mode requires providing a list of input files, located in the 'restart_files directory: - #substrate composition (last_TRIDYN.dat) and Xolotl network (networkFile.h5) files - - START_MODE=INIT #'INIT' or 'RESTART' - - INIT_TIME=0.0 - END_TIME=2.0e-4 #TEST VALUE: short loops for these tests; otherwirse end time 10, loop time step 0.5 (start stop~0.01) - LOOP_TIME_STEP=1.0e-4 - LOOP_N=0 #loop_N>0 if restarting from t>0 - - LOOP_TS_FACTOR=1 #FACTOR = 1 to not change LOOPS_TIME_STEP - LOOP_TS_NLOOPS=1 #multiply TIME_STEP by FACTOR every NLOOPS - - #OVERWITE DEFAULT XOLOTL PARAMETERS - [[XOLOTL_INPUT_PARAMETERS]] - #all processes (bursting, attenuation...) ON by detault; specify to switch OFF (processName=False) - #Further changes with bursting: True (ON) -> maxVsize ~50(He) ~10(He+D) & PhaseCut='false' ; & grouping ON (He only) - # False (OFF) -> maxVsize ~250 & PhaseCut='true' ; & grouping OFF: groupHeV > MaxVSize - - #netParam and grouping - needed to create network in init for xolotl v1 & in all cases for xolotl v2 - netParam=8 1 0 100 6 #netParam = nHe nD nT maxVSize nInterstitials phaseCut ; - # e.g., 8 0 0 50 6 false for ITER-He ; 8 0 0 250 6 false for PISCES - grouping=11 2 2 #grouping = groupHeV groupHe groupV ; grouping ON: groupHeV < MaxVSize ; - # e.g., 31 4 4 for ITER-He network 50 ; 31 4 1 for PISCES or ITER network 250 - networkFile='networkFile.h5' # comment out this line if loading network file from INIT (not create) - # the driver adds this line if in restart mode - - dimensions=1 - burstingDepth=10 - voidPortion=47.81 - boundary=1 1 - perfHandler=os #std - - #options for xolotl v1 executables (e.g., master) - grid=366 0.5 - #startTemp=500.0 #startTemp, or heat - #material=TRIDYN - - #options for xolotl v2 executables (e.g., tempGrid) - tempHandler='heat' # tempHanndler signals to the driver to use the 2-line temperature model - # tempParam=... # value of heat usually given by plasma input - gridType=nonuniform # new instead of just grid - gridParam=366 0.5 # new instead of just grid - material=W100 - fluxDepthProfileFilePath=tridyn.dat #option to have depth profile being read from file (tridyn.dat) - - #by default, all processes are ON in Xolotl: reaction advec modifiedTM diff movingSurface attenuation bursting - #to remove a process, set processName=false: - [[XOLOTL_INPUT_PROCESSES]] - #e.g.: bursting=false - - - [[XOLOTL_INPUT_PETSCARGS]] - -start_stop=1.0e-5 #initial start_stop value ~LOOP_TIME_STEP/10.0; then scaled as LOOP_TIME_STEP - -ts_adapt_dt_max=1.0e-5 #initial value of max ts in Xolotl; ~1e-5 at t=0.0; then it can be increased by MAXTS_FACTOR - -ts_atol=1.0e-5 - -ts_rtol=1.0e-5 - -tridyn='False' - - ### F-TRIDYN RELATED PARAMETERS ### - [[FTRIDYN_INPUT_PARAMETERS]] - totalDepth=0.0 #total substrate depth in [A]; set to 0.0 to use what Xolotl passes to ftridyn (as deep as He exists) - #use TotalDepth=0.0 if startMode is RESTART -- check if a fixed totalDepth works on the 1st loop - initialTotalDepth=300.0 #if TotalDepth=0.0, choose an appropriate depth for the irradiation energy in the 1st loop - nImpacts=1.0e5 #number of impacts (NH in generateInput) - - #order as in plasmaSpecies of GITR/PLASMA - #if spYield < 0 OR reflYield<0 -> use calculated value; else, use fixed value, usually [0,1) - inputSpYield=-1.0 -1.0 -1.0 -1.0 -1.0 - inputRYield=-1.0 -1.0 -1.0 -1.0 -1.0 - - #PURPOSE: add parameters if keys don't exist in PLASMA's output - [[PLASMA_INPUT_PARAMETERS]] - #plasmaSpecies=He W D T #1st: main substrate species (even if no redep); then gases - #fluxFraction=0.1 0.00034 0.9 0.0 #wrt total plasma flux (specified in Xolotl): sum of all plasma species' fractions = 1.0 - #flux=1.5e4 #total plasma flux (e.g., as measured experimentally), for now in ions/nm2 [Xolotl units] - #E or A < 0 -> use distribution(s) ; E or A > 0 -> use given values - inputEnergy=0.0 0.0 0.0 0.0 0.0 #impact energy (energy in generateInput, [eV]) - inputAngle=0.0 0.0 0.0 0.0 0.0 #angle wrt surface normal diff --git a/iterative-xolotlFT-UQ/paramXolotl_1D.txt b/iterative-xolotlFT-UQ/paramXolotl_1D.txt index 44b7a64..f9e3e12 100644 --- a/iterative-xolotlFT-UQ/paramXolotl_1D.txt +++ b/iterative-xolotlFT-UQ/paramXolotl_1D.txt @@ -6,8 +6,7 @@ perfHandler=dummy material=TRIDYN startTemp=773.000000 flux=4.000000e+04 -petscArgs=-start_stop 0.00050 -ts_adapt_dt_max 1.000000e-05 -fieldsplit_1_pc_type redundant -fieldsplit_0_pc_type sor -ts_max_steps 1000000 -pc_type fieldsplit -pc_fieldsplit_detect_coupling -ts_exact_final_time matchstep -ts_adapt_wnormtype INFINITY -ts_final_time 0.00100 -ts_max_snes_failures -1 -ts_monitor -ts_dt 1.0e-10 -ts_atol 1.0e-4 -ts_rtol 1.0e-4 -snes_force_iteration -helium_retention -check_collapse 1.000000e-15 -voidPortion=40.000000 +petscArgs=-start_stop 0.0005 -ts_adapt_dt_max 1.000000e-05 -fieldsplit_1_pc_type redundant -fieldsplit_0_pc_type sor -ts_max_steps 1000000 -pc_type fieldsplit -pc_fieldsplit_detect_coupling -ts_exact_final_time matchstep -ts_adapt_wnormtype INFINITY -ts_final_time 0.00100 -ts_max_snes_failures -1 -ts_monitor -ts_dt 1.0e-10 -ts_atol 1.0e-4 -ts_rtol 1.0e-4 -snes_force_iteration -helium_retention -check_collapse 1.000000e-15 -ts_adapt_clip 0.1,10 sputtering=0.000936 initialV=1e-18 boundary=1 0