.. _pyfun-json-runcontrol:

**********************************
Options for ``RunControl`` Section
**********************************
The options below are the available options in the ``RunControl`` Section of the ``pyfun.json`` control file


*WarmStart*: {``False``} | :class:`bool` | :class:`bool_`
    whether to warm start a case



*KeepRestarts*: {``False``} | :class:`bool` | :class:`bool_`
    whether or not to keep restart files



*DualPhase*: {``True``} | :class:`bool` | :class:`bool_`
    whether or not to run phase in dual mode



*nodet*: {``None``} | :class:`object`
    value of option "nodet"



*intersect*: {``None``} | :class:`object`
    value of option "intersect"



*dual*: {``None``} | :class:`object`
    value of option "dual"



*ulimit*: {``None``} | :class:`object`
    value of option "ulimit"



*nProc*: {``None``} | :class:`int` | :class:`int32` | :class:`int64`
    number of cores/threads to run



*MPI*: {``False``} | :class:`bool` | :class:`bool_`
    whether or not to run MPI in phase



*Environ*: {``None``} | :class:`object`
    value of option "Environ"



*nIterAdjoint*: {``200``} | :class:`int` | :class:`int32` | :class:`int64`
    number of iterations for adjoint solver



*slurm*: {``False``} | :class:`bool` | :class:`bool_`
    wheter or not to submit jobs with Slurm



*mpicmd*: {``'mpiexec'``} | ``'mpirun'``
    MPI executable name



*WarmStartProject*: {``None``} | :class:`str`
    project name in WarmStart source folder



*Adaptive*: {``False``} | :class:`bool` | :class:`bool_`
    whether or not to run adaptively



*Continue*: {``True``} | :class:`bool` | :class:`bool_`
    whether restarts of same phase can use same job



*PhaseSequence*: {``None``} | :class:`int` | :class:`int32` | :class:`int64`
    list of phase indices to run



*PhaseIters*: {``None``} | :class:`int` | :class:`int32` | :class:`int64`
    check-point iterations for phase *j*



*verify*: {``None``} | :class:`object`
    value of option "verify"



*WarmStartFolder*: {``None``} | :class:`object`
    folder from which to get warm-start file



*AdaptPhase*: {``True``} | :class:`bool` | :class:`bool_`
    whether or not to adapt mesh at end of phase



*Dual*: {``False``} | :class:`bool` | :class:`bool_`
    whether or not to run all adaptations with adjoint



*Verbose*: {``False``} | :class:`bool` | :class:`bool_`
    "RunControl" verbosity flag



*Archive*: {``None``} | :class:`object`
    value of option "Archive"



*Resubmit*: {``False``} | :class:`bool` | :class:`bool_`
    whether or not to submit new job at end of phase *j*



*qsub*: {``True``} | :class:`bool` | :class:`bool_`
    wheter or not to submit jobs with PBS



*aflr3*: {``None``} | :class:`object`
    value of option "aflr3"



*PreMesh*: {``False``} | :class:`bool` | :class:`bool_`
    whether or not to generate volume mesh before submitting



*nIter*: {``None``} | :class:`int` | :class:`int32` | :class:`int64`
    number of iterations to run in phase *j*


Archive Options
---------------

*ArchiveTemplate*: {``'full'``} | :class:`str`
    template for default archive settings



*PreTarDirs*: {``[]``} | :class:`object`
    folders to tar before archiving



*PostDeleteFiles*: {``[]``} | :class:`object`
    list of files to delete after archiving



*ArchiveAction*: ``''`` | {``'archive'``} | ``'rm'`` | ``'skeleton'``
    action to take after finishing a case



*ArchiveExtension*: {``'tar'``} | ``'tgz'`` | ``'bz2'`` | ``'zip'``
    archive file extension



*ArchiveFiles*: {``[]``} | :class:`object`
    files to copy to archive



*ProgressTarGroups*: {``[]``} | :class:`object`
    list of file groups to tar while running



*PostDeleteDirs*: {``[]``} | :class:`object`
    list of folders to delete after archiving



*ArchiveFolder*: {``''``} | :class:`str`
    path to the archive root



*SkeletonTailFiles*: {``[]``} | :class:`object`
    files to tail before deletion during skeleton



*ProgressDeleteFiles*: {``[]``} | :class:`object`
    files to delete while still running



*ArchiveFormat*: ``''`` | {``'tar'``} | ``'tgz'`` | ``'bz2'`` | ``'zip'``
    format for case archives



*PostTarDirs*: {``[]``} | :class:`object`
    folders to tar after archiving



*PreDeleteDirs*: {``[]``} | :class:`object`
    folders to delete **before** archiving



*SkeletonDirs*: {``None``} | :class:`object`
    folders to **keep** during skeleton action



*ProgressUpdateFiles*: {``[]``} | :class:`object`
    files to delete old versions while running



*RemoteCopy*: {``'scp'``} | :class:`str`
    command for archive remote copies



*PreDeleteFiles*: {``[]``} | :class:`object`
    files to delete **before** archiving



*PreUpdateFiles*: {``[]``} | :class:`object`
    files to keep *n* and delete older, b4 archiving



*PostUpdateFiles*: {``[]``} | :class:`object`
    globs: keep *n* and rm older, after archiving



*ArchiveType*: {``'full'``} | ``'partial'``
    flag for single (full) or multi (sub) archive files



*PostTarGroups*: {``[]``} | :class:`object`
    groups of files to tar after archiving



*ProgressDeleteDirs*: {``[]``} | :class:`object`
    folders to delete while still running



*PreTarGroups*: {``[]``} | :class:`object`
    file groups to tar before archiving



*SkeletonFiles*: {``['case.json']``} | :class:`object`
    files to **keep** during skeleton action



*ProgressArchiveFiles*: {``[]``} | :class:`object`
    files to archive at any time



*ProgressTarDirs*: {``[]``} | :class:`object`
    folders to tar while running



*SkeletonTarDirs*: {``[]``} | :class:`object`
    folders to tar before deletion during skeleton


dual Options
------------

*rad*: {``True``} | :class:`bool` | :class:`bool_`
    option to use residual adjoint dot product



*run*: {``None``} | :class:`bool` | :class:`bool_`
    whether to execute program



*outer_loop_krylov*: {``True``} | :class:`bool` | :class:`bool_`
    option to use Krylov method in outer loop



*adapt*: {``True``} | :class:`bool` | :class:`bool_`
    whether to adapt when running FUN3D ``dual``


nodet Options
-------------

*run*: {``None``} | :class:`bool` | :class:`bool_`
    whether to execute program



*animation_freq*: {``-1``} | :class:`int` | :class:`int32` | :class:`int64`
    animation frequency for ``nodet``



*plt_tecplot_output*: {``False``} | :class:`bool` | :class:`bool_`
    option to write ``.plt`` files


Environ Options
---------------
aflr3 Options
-------------

*mdsblf*: ``0`` | {``1``} | ``2``
    AFLR3 BL spacing thickness factor option



*bli*: {``None``} | :class:`int` | :class:`int32` | :class:`int64`
    number of AFLR3 prism layers



*run*: {``None``} | :class:`bool` | :class:`bool_`
    whether or not to run AFLR3



*cdfs*: {``None``} | :class:`float` | :class:`float16` | :class:`float32` | :class:`float64` | :class:`float128` | :class:`int` | :class:`int8` | :class:`int16` | :class:`int32` | :class:`int64` | :class:`uint8` | :class:`uint16` | :class:`uint32` | :class:`uint64`
    AFLR3 geometric growth exclusion zone size



*flags*: {``{}``} | :class:`dict`
    AFLR3 options using ``-flag val`` format



*BCFile*: {``None``} | :class:`str`
    AFLR3 boundary condition file



*grow*: {``None``} | :class:`float` | :class:`float32`
    AFLR3 off-body growth rate



*mdf*: ``1`` | {``2``}
    AFLR3 volume grid distribution flag



*blr*: {``None``} | :class:`float` | :class:`float32`
    AFLR3 boundary layer stretching ratio



*angqbf*: {``None``} | :class:`float` | :class:`float32`
    AFLR3 max angle on surface triangles



*nqual*: {``0``} | :class:`int` | :class:`int32` | :class:`int64`
    number of AFLR3 mesh quality passes



*angblisimx*: {``None``} | :class:`float` | :class:`float32`
    AFLR3 max angle b/w BL intersecting faces



*i*: {``None``} | :class:`str`
    input file for AFLR3



*blds*: {``None``} | :class:`float` | :class:`float32`
    AFLR3 initial boundary-layer spacing



*blc*: {``None``} | :class:`bool` | :class:`bool_`
    AFLR3 prism layer option



*cdfr*: {``None``} | :class:`float` | :class:`float32`
    AFLR3 max geometric growth rate



*o*: {``None``} | :class:`str`
    output file for AFLR3



*keys*: {``{}``} | :class:`dict`
    AFLR3 options using ``key=val`` format


intersect Options
-----------------

*T*: {``False``} | :class:`bool` | :class:`bool_`
    option to also write Tecplot file ``Components.i.plt``



*v*: {``False``} | :class:`bool` | :class:`bool_`
    verbose mode



*triged*: {``True``} | :class:`bool` | :class:`bool_`
    option to use CGT ``triged`` to clean output file



*run*: {``None``} | :class:`bool` | :class:`bool_`
    whether to execute program



*rm*: {``False``} | :class:`bool` | :class:`bool_`
    option to remove small triangles from results



*intersections*: {``False``} | :class:`bool` | :class:`bool_`
    option to write intersections to ``intersect.dat``



*fast*: {``False``} | :class:`bool` | :class:`bool_`
    also write unformatted FAST file ``Components.i.fast``



*ascii*: {``None``} | :class:`bool` | :class:`bool_`
    flag that input file is ASCII



*cutout*: {``None``} | :class:`int` | :class:`int32` | :class:`int64`
    number of component to subtract



*smalltri*: {``0.0001``} | :class:`float` | :class:`float32`
    cutoff size for small triangles with *rm*



*o*: {``'Components.i.tri'``} | :class:`str`
    output file for ``intersect``



*overlap*: {``None``} | :class:`int` | :class:`int32` | :class:`int64`
    perform boolean intersection of this comp number



*i*: {``'Components.tri'``} | :class:`str`
    input file to ``intersect``


ulimit Options
--------------

*r*: {``0``} | :class:`object`
    max real-time scheduling priority, ``ulimit -r``



*q*: {``819200``} | :class:`object`
    max bytes in POSIX message queues, ``ulimit -q``



*c*: {``0``} | :class:`object`
    core file size limit, ``ulimit -c``



*i*: {``127556``} | :class:`object`
    max number of pending signals, ``ulimit -i``



*l*: {``64``} | :class:`object`
    max size that may be locked into memory, ``ulimit -l``



*d*: {``'unlimited'``} | :class:`object`
    process data segment limit, ``ulimit -d``



*f*: {``'unlimited'``} | :class:`object`
    max size of files written by shell, ``ulimit -f``



*s*: {``4194304``} | :class:`object`
    stack size limit, ``ulimit -s``



*x*: {``'unlimited'``} | :class:`object`
    max number of file locks, ``ulimit -x``



*v*: {``'unlimited'``} | :class:`object`
    max virtual memory avail to shell, ``ulimit -v``



*n*: {``1024``} | :class:`object`
    max number of open files, ``ulimit -n``



*m*: {``'unlimited'``} | :class:`object`
    max resident set size, ``ulimit -m``



*t*: {``'unlimited'``} | :class:`object`
    max amount of cpu time in s, ``ulimit -t``



*u*: {``127812``} | :class:`object`
    max number of procs avail to one user, ``ulimit -u``



*p*: {``8``} | :class:`object`
    pipe size in 512-byte blocks, ``ulimit -p``



*e*: {``0``} | :class:`object`
    max scheduling priority, ``ulimit -e``


verify Options
--------------

*i*: {``None``} | :class:`str`
    input file for ``verify``



*ascii*: {``True``} | :class:`bool` | :class:`bool_`
    option for ASCII input file to ``verify``



*run*: {``None``} | :class:`bool` | :class:`bool_`
    whether to execute program