diff --git a/applications/test/dictionary/testDict b/applications/test/dictionary/testDict index 736f4263056db343c6d72614035505a19b98799c..a933c543e3f3c2c63878401d954a4d6b6506302c 100644 --- a/applications/test/dictionary/testDict +++ b/applications/test/dictionary/testDict @@ -13,18 +13,19 @@ FoamFile object testDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#inputMode merge + #includeIfPresent "someUnknownFile" #includeIfPresent "$FOAM_CASE/someUnknownFile" #includeIfPresent "$FOAM_CASE/someUnknownFile-$FOAM_CASENAME" internalField uniform 1; -// use 'protect' to supply defaults -#inputMode protect -internalField uniform 10; -dimensions [ 0 2 -2 0 0 0 0 ]; -#inputMode merge +// supply defaults +#default internalField uniform 10; +#default dimensions [ 1 2 -2 0 0 0 0 ]; +#overwrite dimensions [ 0 2 -2 0 0 0 0 ]; +// #warn dimensions [ 0 2 -2 0 0 0 0 ]; +// #error dimensions [ 0 2 -2 0 0 0 0 ]; active { @@ -86,12 +87,12 @@ boundaryField #remove inactive inlet_7 { ${${varType}}} // Test indirection/recursive expansion - #inputMode overwrite inlet_8 { $active } + + #overwrite inlet_8 { type none; } } -// NB: the inputMode has a global scope -#inputMode merge + #include "testDict2" foo diff --git a/etc/caseDicts/foamyHexMeshDict b/etc/caseDicts/foamyHexMeshDict index 088c1a0b987fc1e7cc3483026ba611aa28cc8e8c..ee8abb7e1548a4cbe86015425bbebd8be35186ef 100644 --- a/etc/caseDicts/foamyHexMeshDict +++ b/etc/caseDicts/foamyHexMeshDict @@ -14,8 +14,6 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#inputMode merge; - surfaceConformation { pointPairDistanceCoeff 0.1; diff --git a/src/OpenFOAM/db/dictionary/functionEntries/inputMode/inputMode.C b/src/OpenFOAM/db/dictionary/functionEntries/inputMode/inputMode.C index bdd92de36e96121d44b74938784d5f3d73010b15..160d5ec87d8e9e1920a116a757be0fe34e0d2535 100644 --- a/src/OpenFOAM/db/dictionary/functionEntries/inputMode/inputMode.C +++ b/src/OpenFOAM/db/dictionary/functionEntries/inputMode/inputMode.C @@ -41,6 +41,51 @@ namespace functionEntries dictionaryIstream, inputMode ); + + addNamedToMemberFunctionSelectionTable + ( + functionEntry, + inputModeDefault, + execute, + dictionaryIstream, + default + ); + + addNamedToMemberFunctionSelectionTable + ( + functionEntry, + inputModeMerge, + execute, + dictionaryIstream, + merge + ); + + addNamedToMemberFunctionSelectionTable + ( + functionEntry, + inputModeOverwrite, + execute, + dictionaryIstream, + overwrite + ); + + addNamedToMemberFunctionSelectionTable + ( + functionEntry, + inputModeWarn, + execute, + dictionaryIstream, + warn + ); + + addNamedToMemberFunctionSelectionTable + ( + functionEntry, + inputModeError, + execute, + dictionaryIstream, + error + ); } } @@ -90,4 +135,54 @@ bool Foam::functionEntries::inputMode::execute } +bool Foam::functionEntries::inputModeDefault::execute +( + dictionary& parentDict, + Istream& is +) +{ + return entry::New(parentDict, is, entry::inputMode::PROTECT); +} + + +bool Foam::functionEntries::inputModeMerge::execute +( + dictionary& parentDict, + Istream& is +) +{ + return entry::New(parentDict, is, entry::inputMode::MERGE); +} + + +bool Foam::functionEntries::inputModeOverwrite::execute +( + dictionary& parentDict, + Istream& is +) +{ + return entry::New(parentDict, is, entry::inputMode::OVERWRITE); +} + + +bool Foam::functionEntries::inputModeWarn::execute +( + dictionary& parentDict, + Istream& is +) +{ + return entry::New(parentDict, is, entry::inputMode::WARN); +} + + +bool Foam::functionEntries::inputModeError::execute +( + dictionary& parentDict, + Istream& is +) +{ + return entry::New(parentDict, is, entry::inputMode::ERROR); +} + + // ************************************************************************* // diff --git a/src/OpenFOAM/db/dictionary/functionEntries/inputMode/inputMode.H b/src/OpenFOAM/db/dictionary/functionEntries/inputMode/inputMode.H index c670d9230dcc61218e1521ea60a6d91bf90c2973..91f0d6362bca27da9eeeca2b14cdc0654cc342da 100644 --- a/src/OpenFOAM/db/dictionary/functionEntries/inputMode/inputMode.H +++ b/src/OpenFOAM/db/dictionary/functionEntries/inputMode/inputMode.H @@ -84,6 +84,86 @@ public: }; +/*---------------------------------------------------------------------------*\ + Class inputModeDefault Declaration +\*---------------------------------------------------------------------------*/ + +//- Temporarily change inputMode to %protect for the following entry +class inputModeDefault +: + public functionEntry +{ +public: + + //- Execute in a sub-dict context + static bool execute(dictionary& parentDict, Istream& is); +}; + + +/*---------------------------------------------------------------------------*\ + Class inputModeMerge Declaration +\*---------------------------------------------------------------------------*/ + +//- Temporarily change inputMode to %merge for the following entry +class inputModeMerge +: + public functionEntry +{ +public: + + //- Execute in a sub-dict context + static bool execute(dictionary& parentDict, Istream& is); +}; + + +/*---------------------------------------------------------------------------*\ + Class inputModeOverwrite Declaration +\*---------------------------------------------------------------------------*/ + +//- Temporarily change inputMode to %overwrite for the following entry +class inputModeOverwrite +: + public functionEntry +{ +public: + + //- Execute in a sub-dict context + static bool execute(dictionary& parentDict, Istream& is); +}; + + +/*---------------------------------------------------------------------------*\ + Class inputModeWarn Declaration +\*---------------------------------------------------------------------------*/ + +//- Temporarily change inputMode to %warn for the following entry +class inputModeWarn +: + public functionEntry +{ +public: + + //- Execute in a sub-dict context + static bool execute(dictionary& parentDict, Istream& is); +}; + + +/*---------------------------------------------------------------------------*\ + Class inputModeError Declaration +\*---------------------------------------------------------------------------*/ + +//- Temporarily change inputMode to %error for the following entry +class inputModeError +: + public functionEntry +{ +public: + + //- Execute in a sub-dict context + static bool execute(dictionary& parentDict, Istream& is); +}; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace functionEntries diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls index 63d17474fbe97c7ab7df9608b8e6f3fd22e3992c..0eae3d794b2554776b0a072d847c7c03d1272744 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls @@ -12,6 +12,4 @@ maxCo 12; maxDeltaT 1; -#inputMode merge - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.0 b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.0 index f23b6a4f10bd1ddd4a38224a5627fc87e6ac70a2..65697b024218b853d16ea9ab0e6916fca3392031 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.0 +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.0 @@ -12,6 +12,4 @@ maxCo 2.5; maxDeltaT 0.3; -#inputMode merge - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.20 b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.20 index c1143ac2dc3ea7f65747cf2808ef4f36d56837ba..56a2dc921ff4efaccc69712b5ced7938f63f54be 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.20 +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.20 @@ -12,6 +12,4 @@ maxCo 8; maxDeltaT 1; -#inputMode merge - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.5 b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.5 index be96ad7429858a69eda432c42858e0d48dabb933..9f1c5f5932eb11aecb5a0f56a905a9969232b064 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.5 +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.5 @@ -12,6 +12,4 @@ maxCo 5; maxDeltaT 1; -#inputMode merge - // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.60 b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.60 index 63d17474fbe97c7ab7df9608b8e6f3fd22e3992c..0eae3d794b2554776b0a072d847c7c03d1272744 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.60 +++ b/tutorials/heatTransfer/chtMultiRegionFoam/windshieldCondensation/system/solverControls.60 @@ -12,6 +12,4 @@ maxCo 12; maxDeltaT 1; -#inputMode merge - // ************************************************************************* // diff --git a/tutorials/incompressible/lumpedPointMotion/building/steady/0.orig/include/initialConditions b/tutorials/incompressible/lumpedPointMotion/building/steady/0.orig/include/initialConditions index 8d82530aae28ec150200ca41df6cad508dab68f2..30be52d9723ebb027881caf82287d940ddd2b895 100644 --- a/tutorials/incompressible/lumpedPointMotion/building/steady/0.orig/include/initialConditions +++ b/tutorials/incompressible/lumpedPointMotion/building/steady/0.orig/include/initialConditions @@ -12,6 +12,4 @@ turbulentKE 37; turbulentOmega 32; turbulentEpsilon 30; -#inputMode merge - // ************************************************************************* // diff --git a/tutorials/incompressible/overPimpleDyMFoam/cylinder/cylinderAndBackground/0.orig/include/initialConditions b/tutorials/incompressible/overPimpleDyMFoam/cylinder/cylinderAndBackground/0.orig/include/initialConditions index aaa6bd1c6ff32eaff7dcb39edfae03322f94992f..d2b995d3b551a60854a16da6811cc0b4d387328b 100644 --- a/tutorials/incompressible/overPimpleDyMFoam/cylinder/cylinderAndBackground/0.orig/include/initialConditions +++ b/tutorials/incompressible/overPimpleDyMFoam/cylinder/cylinderAndBackground/0.orig/include/initialConditions @@ -10,6 +10,5 @@ flowVelocity (10 0 0); pressure 0; turbulentKE 1.5; turbulentEpsilon 0.88; -#inputMode merge // ************************************************************************* // diff --git a/tutorials/incompressible/overSimpleFoam/aeroFoil/background_overset/0.orig/include/initialConditions b/tutorials/incompressible/overSimpleFoam/aeroFoil/background_overset/0.orig/include/initialConditions index e0b2bd996ee6d283f39b70c8b36c1ebbf153f663..14ab8e962cd8654a3e82530df1ebbafd25136e9f 100644 --- a/tutorials/incompressible/overSimpleFoam/aeroFoil/background_overset/0.orig/include/initialConditions +++ b/tutorials/incompressible/overSimpleFoam/aeroFoil/background_overset/0.orig/include/initialConditions @@ -11,6 +11,5 @@ pressure 0; turbulentKE 0.375; turbulentOmega 3.6; turbulentEpsilon 0.12; -#inputMode merge // ************************************************************************* //