Difference between revisions of "Contrib multiSolver/multiControlDict"

From OpenFOAMWiki
Line 2: Line 2:
  
 
== Full list of settings ==
 
== Full list of settings ==
Since [[multiSolver]] has so many optional settings, the full list of settings for the '''multiSolverControlDict''' is long, but most of these keywords are not required.  The full list is shown below:
+
Since [[Contrib_multiSolver]] has so many optional settings, the full list of settings for the '''multiSolverControlDict''' is long, but most of these keywords are not required.  The full list is shown below:
  
 
  multiSolverControl
 
  multiSolverControl

Revision as of 11:49, 23 July 2010

The multiControlDict(glossary) is the controlDict analogue for the multiSolver. It is located in case/system and is used to automatically generate the controlDict.

1 Full list of settings

Since Contrib_multiSolver has so many optional settings, the full list of settings for the multiSolverControlDict is long, but most of these keywords are not required. The full list is shown below:

multiSolverControl
{
    initialStartFrom
        firstTime
        firstTimeInStartDomain // *1
        firstTimeInStartDomainInStartSuperLoop // *1 *2
        startTime // *3
        startTimeInStartDomain // *1 *3
        startTimeInStartDomainInStartSuperLoop // *1 *2 *3
        latestTime // (default)
        latestTimeInStartDomain // *1
        latestTimeInStartDomainInStartSuperLoop // *1 *2
    startTime // (required with *3)
    startDomain // (required with *1)
    startSuperLoop // (required with *2)
    
    finalStopAt
        endTime // (default) *4
        endTimeInEndDomain // *4 *5
        endTimeInEndDomainInEndSuperLoop // *4 *5 *6
        superLoopEnd // *6
        writeNow
        noWriteNow
        nextWrite
    endTime // (required with *4)
    endDomain // (required with *5)
    endSuperLoop // (required with *6)

    multiDictsRunTimeModifiable // (default true)
    timeFormat
    timePrecision
}

solverDomains
{
    solverDomainName1
    {
        startFrom
            firstTime
            startTime // *7
            latestTimeThisDomain
            latestTimeAllDomains // (default)
        startTime // (required with *7)
        stopAt
            endTime // *8 (default)
            writeNow
            noWriteNow
            nextWrite
            iterations // *9 (cannot be used with adjustableTimeStep)
            solverSignal
            elapsedTime // *10
        endTime // (required with *8; default 0)
        iterations // (required with *9)
        elapsedTime // (required with *10)
        storeField
        purgeWriteSuperLoops // (default 0)
// * The rest are the standard controlDict entries, i.e.:
//        writeControl
//            timeStep
//            runTime
//            adjustableRunTime
//            cpuTime
//            clockTime
//        writeInterval
//        purgeWrite
//        writeFormat
//        writePrecision
//        writeCompression
//        runTimeModifiable
//        graphFormat
//        deltaT
//        maxCo
//        adjustTimeStep
//        maxDeltaT
// * Anything else entered here will automatically be merged verbatim into the controlDict
    }
    solverDomainName2
    {
        timeValueStartFrom
        // etc..
    }
    default // (optional, but all prefixes must be defined)
    {
        // values here are loaded first, then overwritten by the solverDomainName
    }
}

2 multiSolverControl

The multiSolverControl subdictionary contains all the settings that affect the superSolver globally.

2.1 Initial start settings

  • initialStartFrom - this setting determines where the superSolver reads the initial data from and begins its run at:
    • firstTime - load data from case/multiSolver/currentSolverDomainName/0/0
    • firstTimeInStartDomain - load data from case/multiSolver/startDomain/0/0
    • firstTimeInStartDomainInStartSuperLoop - load data from case/multiSolver/startDomain/startSuperLoop/0
    • startTime - search case/multiSolver/[allSolverDomains]/[allSuperLoops] for the closest globalTime to startTime; load this data
    • startTimeInStartDomain - search case/multiSolver/startDomain/[allSuperLoops] for the closest localTime to startTime; load this data
    • startTimeInStartDomainInStartSuperLoop - search case/multiSolver/startDomain/startSuperLoop for the closest localTime to startTime; load this data
    • latestTime - search case/multiSolver/[allSolverDomains]/[allSuperLoops] for the latest globalTime; load this data
    • latestTimeInStartDomain - search case/multiSolver/startDomain/[allSuperLoops] for the latest localTime; load this data
    • latestTimeInStartDomainInStartSuperLoop - search case/multiSolver/startDomain/startSuperLoop for the latest localTime; load this data
  • startTime - only if required (see above)
  • startDomain - only if required (see above)
  • startSuperLoop - only if required (see above)

2.2 Final stop settings

  • finalStopAt - this setting determines when the multiSolver will stop the simulation
    • endTime - stop when globalTime reaches endTime
    • endTimeInEndDomain - stop when localTime reaches endTime in sovlerDomain endDomain
    • endTimeInEndDomainInEndSuperLoop - stop when localTime reaches endTime in sovlerDomain endDomain at superLoop endSuperLoop
    • endSuperLoop - stop after the superLoop number reaches endSuperLoop
    • writeNow - stop and write after the next solver starts
    • noWriteNow - stop without writing after the next solver starts
    • nextWrite - stop at the next designated write time after the next solver starts
  • endTime - only if required (see above)
  • endDomain - only if required (see above)
  • endSuperLoop - only if required (see above)

2.3 Other global settings

  • multiDictsRunTimeModifiable - when set to on, multiSolver will scan and reread any changed multiDicts
  • timeFormat - fixed, scientific, or general, the same as in a regular controlDict. The timeFormat must be applied globally - there cannot be two solvers using different timeFormats.
  • timePrecision - again, the same as in the regular controlDict.

3 solverDomains

The solverDomains subdictionary contains all the solverDomainNames as subdictionaries, and also can include a default, but all solverDomainNames must be included. These subdictionaries contain all the settings that apply locally to a single solverDomain.

3.1 Local start settings

3.2 Local stop settings

  • stopAt - this setting determines where the solver will stop within each superLoop.
    • endTime - stop when localTime = endTime
    • writeNow - stop now and write out the results
    • noWriteNow - stop now without writing out results
    • nextWrite - stop at the next scheduled write time
    • iterations - stop after endIterations have been achieved. This setting cannot be used if adjustableTimeStep is enabled for this solverDomain
    • solverSignal - leave it up to the solver to give the stop signal. This essentially sets endTime to a very large number
    • elapsedTime - stop after elapsedTime has passed for this solverDomain
  • endTime - only if required (see above)
  • iterations - only if required (see above)
  • elapsedTime - only if required (see above)

3.3 Other local settings

  • storeField - a wordList of any fields that this solverDomain doesn't need. This saves the field from having to be carried in memory and written out at every write time, but also allows the latest values of the field to be passed on to the next solverDomain. This works by copying the field to the last write time of the solverDomain in question.
  • purgeWriteSuperLoops - this works the same as the standard purgeWrite, except instead of overwriting [timeValue] directories, [superLoop] directories are overwritten.

Any other values placed in the solverDomainName subdictionary will be merged verbatim into its controlDict.

3.4 Default solverDomain

Any values placed in the default solverDomain will be loaded first, and written over by any values specific to a solverDomain. Although this is a default subdictionary, all solverDomainNames must be present in the solverDomains subdictionary.