Difference between revisions of "Contrib multiSolver/multiControlDict"

From OpenFOAMWiki
(Migrated to github)
 
Line 1: Line 1:
The '''multiControlDict'''[[Contrib_multiSolver/glossary#multiControlDict|(glossary)]] is the <tt>controlDict</tt> analogue for the '''multiSolver'''.  It is located in <tt>case/system</tt> and is used to automatically generate the <tt>controlDict</tt>.
+
This project has migrated over to '''github'''.
  
== Full list of settings ==
+
'''''[http://github.com/Marupio/multiSolver/wiki Click here for the new website.]'''''
Since [[Contrib_multiSolver|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
+
http://github.com/Marupio/multiSolver/wiki
{
+
    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 solverDomainNames must be defined)
+
    {
+
        // values here are loaded first, then overwritten by the solverDomainName
+
    }
+
}
+
 
+
== multiSolverControl ==
+
The multiSolverControl subdictionary contains all the settings that affect the [[Contrib_multiSolver/glossary#superSolver|superSolver]] globally.
+
 
+
=== Initial start settings ===
+
* '''initialStartFrom''' - this setting determines where the [[Contrib_multiSolver/glossary#superSolver|superSolver]] reads the initial data from and begins its run at:
+
** '''firstTime''' - load data from <tt>case/multiSolver/currentSolverDomainName/initial/0</tt>
+
** '''firstTimeInStartDomain''' - load data from <tt>case/multiSolver/''startDomain''/initial/0</tt>
+
** '''firstTimeInStartDomainInStartSuperLoop''' - load data from <tt>case/multiSolver/startDomain/startSuperLoop/0</tt>
+
** '''startTime''' - search <tt>case/multiSolver/[allSolverDomains]/[allSuperLoops]</tt> for the closest [[Contrib_multiSolver/glossary#globalTime|globalTime]] to ''startTime''; load this data
+
** '''startTimeInStartDomain''' - search <tt>case/multiSolver/''startDomain''/[allSuperLoops]</tt> for the closest [[Contrib_multiSolver/glossary#localTime|localTime]] to ''startTime''; load this data
+
** '''startTimeInStartDomainInStartSuperLoop''' - search <tt>case/multiSolver/''startDomain''/''startSuperLoop''</tt> for the closest [[Contrib_multiSolver/glossary#localTime|localTime]] to ''startTime''; load this data
+
** '''latestTime''' - search <tt>case/multiSolver/[allSolverDomains]/[allSuperLoops]</tt> for the latest [[Contrib_multiSolver/glossary#globalTime|globalTime]]; load this data
+
** '''latestTimeInStartDomain''' - search <tt>case/multiSolver/''startDomain''/[allSuperLoops]</tt> for the latest [[Contrib_multiSolver/glossary#localTime|localTime]]; load this data
+
** '''latestTimeInStartDomainInStartSuperLoop''' - search <tt>case/multiSolver/''startDomain''/''startSuperLoop''</tt> for the latest [[Contrib_multiSolver/glossary#localTime|localTime]]; load this data
+
* '''startTime''' - only if required (see above)
+
* '''startDomain''' - only if required (see above)
+
* '''startSuperLoop''' - only if required (see above)
+
 
+
=== Final stop settings ===
+
* '''finalStopAt''' - this setting determines when the '''multiSolver''' will stop the simulation
+
** '''endTime''' - stop when [[Contrib_multiSolver/glossary#globalTime|globalTime]] reaches ''endTime''
+
** '''endTimeInEndDomain''' - stop when [[Contrib_multiSolver/glossary#localTime|localTime]] reaches ''endTime'' in [[Contrib_multiSolver/glossary#solverDomain|sovlerDomain]] ''endDomain''
+
** '''endTimeInEndDomainInEndSuperLoop''' - stop when [[Contrib_multiSolver/glossary#localTime|localTime]] reaches ''endTime'' in [[Contrib_multiSolver/glossary#solverDomain|sovlerDomain]] ''endDomain'' at [[Contrib_multiSolver/glossary#superLoop|superLoop]] ''endSuperLoop''
+
** '''endSuperLoop''' - stop after the [[Contrib_multiSolver/glossary#superLoop|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)
+
 
+
=== Other global settings ===
+
* '''multiDictsRunTimeModifiable''' - when set to ''on'', '''multiSolver''' will scan and reread any changed [[Contrib_multiSolver/glossary#multiDict|multiDicts]]
+
* '''timeFormat''' - ''fixed'', ''scientific'', or ''general'', the same as in a regular <tt>controlDict</tt>.  The timeFormat must be applied globally - there cannot be two solvers using different timeFormats.
+
* '''timePrecision''' - again, the same as in the regular <tt>controlDict</tt>.
+
 
+
== solverDomains ==
+
The solverDomains subdictionary contains all the [[Contrib_multiSolver/glossary#solverDomainName|solverDomainNames]] as subdictionaries, and also can include a ''default'', but ''all'' [[Contrib_multiSolver/glossary#solverDomainName|solverDomainNames]] must be included.  These subdictionaries contain all the settings that apply ''locally'' to a single [[Contrib_multiSolver/glossary#solverDomain|solverDomain]].
+
 
+
=== Local start settings ===
+
* '''startFrom''' - this setting determines the [[Contrib_multiSolver/glossary#localTime|localTime]] value to start from each time this [[Contrib_multiSolver/glossary#sovlerDomain|solverDomain]] is initialized in each [[Contrib_multiSolver/glossary#superLoop|superLoop]].
+
** '''firstTime''' - start from [[Contrib_multiSolver/glossary#localTime|localTime]] = 0
+
** '''startTime''' - start from [[Contrib_multiSolver/glossary#localTime|localTime]] = ''startTime''
+
** '''latestTimeThisDomain''' - start from the [[Contrib_multiSolver/glossary#localTime|localTime]] it left off at when it was last in this [[Contrib_multiSolver/glossary#solverDomain|solverDomain]]
+
** '''latestTimeAllDomains''' - start from the latest [[Contrib_multiSolver/glossary#globalTime|globalTime]] (i.e. [[Contrib_multiSolver/glossary#localTime|localTime]] and [[Contrib_multiSolver/glossary#globalTime|globalTime]] are equal for this [[Contrib_multiSolver/glossary#solverDomain|solverDomain]])
+
* '''startTime''' - only if required (see above)
+
 
+
=== Local stop settings ===
+
* '''stopAt''' - this setting determines where the solver will stop within each [[Contrib_multiSolver/glossary#superLoop|superLoop]].
+
** '''endTime''' - stop when [[Contrib_multiSolver/glossary#localTime|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 [[Contrib_multiSolver/glossary#solverDomain|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 [[Contrib_multiSolver/glossary#solverDomain|solverDomain]]
+
* '''endTime''' - only if required (see above)
+
* '''iterations''' - only if required (see above)
+
* '''elapsedTime''' - only if required (see above)
+
 
+
=== Other local settings ===
+
* '''storeField''' - a wordList of any fields that this [[Contrib_multiSolver/glossary#solverDomain|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 [[Contrib_multiSolver/glossary#solverDomain|solverDomain]].  This works by copying the field to the last write time of the [[Contrib_multiSolver/glossary#solverDomain|solverDomain]] in question.
+
* '''purgeWriteSuperLoops''' - this works the same as the standard ''purgeWrite'', except instead of overwriting <tt>[timeValue]</tt> directories, <tt>[superLoop]</tt> directories are overwritten.
+
 
+
Any other values placed in the <tt>solverDomainName</tt> subdictionary will be merged verbatim into its <tt>controlDict</tt>.
+
 
+
=== Default solverDomain ===
+
Any values placed in the default [[Contrib_multiSolver/glossary#solverDomain|solverDomain]] will be loaded first, and written over by any values specific to a [[Contrib_multiSolver/glossary#solverDomain|solverDomain]].  Although this is a '''default''' subdictionary, '''all [[Contrib_multiSolver/glossary#solverDomainName|solverDomainNames]] must be present in the solverDomains subdictionary.'''
+

Latest revision as of 21:45, 6 September 2013

This project has migrated over to github.

Click here for the new website.

http://github.com/Marupio/multiSolver/wiki