diff --git a/TODO b/TODO
new file mode 100644
index 0000000000..aab3581489
--- /dev/null
+++ b/TODO
@@ -0,0 +1,23 @@
+- check
+ new fvMesh
+ new fvMeshSubset
+for consistency with createMesh.H
+
+
+
+- Check the following:
+
+doc/changes/inotify.txt
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/applications/solvers/DNS/dnsFoam/readTransportProperties.H b/applications/solvers/DNS/dnsFoam/readTransportProperties.H
index 77af096bf8..0d80908542 100644
--- a/applications/solvers/DNS/dnsFoam/readTransportProperties.H
+++ b/applications/solvers/DNS/dnsFoam/readTransportProperties.H
@@ -7,7 +7,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/DNS/dnsFoam/readTurbulenceProperties.H b/applications/solvers/DNS/dnsFoam/readTurbulenceProperties.H
index 20fd654cef..ba1d5dcd80 100644
--- a/applications/solvers/DNS/dnsFoam/readTurbulenceProperties.H
+++ b/applications/solvers/DNS/dnsFoam/readTurbulenceProperties.H
@@ -7,7 +7,7 @@
"turbulenceProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/basic/laplacianFoam/createFields.H b/applications/solvers/basic/laplacianFoam/createFields.H
index 3359f2896c..616afe1a88 100644
--- a/applications/solvers/basic/laplacianFoam/createFields.H
+++ b/applications/solvers/basic/laplacianFoam/createFields.H
@@ -23,7 +23,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/basic/scalarTransportFoam/createFields.H b/applications/solvers/basic/scalarTransportFoam/createFields.H
index 54a0bc45ec..07731be3d6 100644
--- a/applications/solvers/basic/scalarTransportFoam/createFields.H
+++ b/applications/solvers/basic/scalarTransportFoam/createFields.H
@@ -39,7 +39,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.C b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.C
index 385b9e53f0..32b525859e 100644
--- a/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.C
+++ b/applications/solvers/combustion/PDRFoam/XiModels/XiEqModels/SCOPEXiEq/SCOPEXiEq.C
@@ -62,7 +62,7 @@ Foam::XiEqModels::SCOPEXiEq::SCOPEXiEq
"combustionProperties",
Su.mesh().time().constant(),
Su.mesh(),
- IOobject::MUST_READ
+ IOobject::MUST_READ_IF_MODIFIED
)
),
thermo
diff --git a/applications/solvers/combustion/PDRFoam/createFields.H b/applications/solvers/combustion/PDRFoam/createFields.H
index 74a18ab6f5..233383ab1c 100644
--- a/applications/solvers/combustion/PDRFoam/createFields.H
+++ b/applications/solvers/combustion/PDRFoam/createFields.H
@@ -110,7 +110,7 @@
"PDRProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/combustion/PDRFoam/readCombustionProperties.H b/applications/solvers/combustion/PDRFoam/readCombustionProperties.H
index 9f4435b251..acc5cb7868 100644
--- a/applications/solvers/combustion/PDRFoam/readCombustionProperties.H
+++ b/applications/solvers/combustion/PDRFoam/readCombustionProperties.H
@@ -7,7 +7,7 @@
"combustionProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/combustion/XiFoam/readCombustionProperties.H b/applications/solvers/combustion/XiFoam/readCombustionProperties.H
index da0a3a94a2..58b0626fb4 100644
--- a/applications/solvers/combustion/XiFoam/readCombustionProperties.H
+++ b/applications/solvers/combustion/XiFoam/readCombustionProperties.H
@@ -7,7 +7,7 @@
"combustionProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/combustion/dieselEngineFoam/readCombustionProperties.H b/applications/solvers/combustion/dieselEngineFoam/readCombustionProperties.H
index 687d83ea94..84cf9b9756 100644
--- a/applications/solvers/combustion/dieselEngineFoam/readCombustionProperties.H
+++ b/applications/solvers/combustion/dieselEngineFoam/readCombustionProperties.H
@@ -7,7 +7,7 @@ IOdictionary combustionProperties
"combustionProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/combustion/fireFoam/createFields.H b/applications/solvers/combustion/fireFoam/createFields.H
index 95bda05606..9a6274bb1a 100644
--- a/applications/solvers/combustion/fireFoam/createFields.H
+++ b/applications/solvers/combustion/fireFoam/createFields.H
@@ -65,7 +65,7 @@ IOdictionary combustionProperties
"combustionProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/combustion/reactingFoam/readChemistryProperties.H b/applications/solvers/combustion/reactingFoam/readChemistryProperties.H
index ab51afe283..f0bcf7597f 100644
--- a/applications/solvers/combustion/reactingFoam/readChemistryProperties.H
+++ b/applications/solvers/combustion/reactingFoam/readChemistryProperties.H
@@ -7,7 +7,7 @@ IOdictionary chemistryProperties
"chemistryProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/solvers/combustion/rhoReactingFoam/readChemistryProperties.H b/applications/solvers/combustion/rhoReactingFoam/readChemistryProperties.H
index ab51afe283..f0bcf7597f 100644
--- a/applications/solvers/combustion/rhoReactingFoam/readChemistryProperties.H
+++ b/applications/solvers/combustion/rhoReactingFoam/readChemistryProperties.H
@@ -7,7 +7,7 @@ IOdictionary chemistryProperties
"chemistryProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/solvers/compressible/rhoCentralFoam/readThermophysicalProperties.H b/applications/solvers/compressible/rhoCentralFoam/readThermophysicalProperties.H
index 435bcb7745..5a63169d12 100644
--- a/applications/solvers/compressible/rhoCentralFoam/readThermophysicalProperties.H
+++ b/applications/solvers/compressible/rhoCentralFoam/readThermophysicalProperties.H
@@ -9,7 +9,7 @@ IOdictionary thermophysicalProperties
"thermophysicalProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/compressible/rhoSonicFoam/readThermodynamicProperties.H b/applications/solvers/compressible/rhoSonicFoam/readThermodynamicProperties.H
index 1fc57fc5fd..4e19adaae4 100644
--- a/applications/solvers/compressible/rhoSonicFoam/readThermodynamicProperties.H
+++ b/applications/solvers/compressible/rhoSonicFoam/readThermodynamicProperties.H
@@ -7,7 +7,7 @@
"thermodynamicProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/compressible/rhopSonicFoam/readThermodynamicProperties.H b/applications/solvers/compressible/rhopSonicFoam/readThermodynamicProperties.H
index 3b8c82c8e5..2be7ce63ff 100644
--- a/applications/solvers/compressible/rhopSonicFoam/readThermodynamicProperties.H
+++ b/applications/solvers/compressible/rhopSonicFoam/readThermodynamicProperties.H
@@ -7,7 +7,7 @@
"thermodynamicProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/compressible/sonicDyMFoam/readThermodynamicProperties.H b/applications/solvers/compressible/sonicDyMFoam/readThermodynamicProperties.H
index 1fc57fc5fd..4e19adaae4 100644
--- a/applications/solvers/compressible/sonicDyMFoam/readThermodynamicProperties.H
+++ b/applications/solvers/compressible/sonicDyMFoam/readThermodynamicProperties.H
@@ -7,7 +7,7 @@
"thermodynamicProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/compressible/sonicDyMFoam/readTransportProperties.H b/applications/solvers/compressible/sonicDyMFoam/readTransportProperties.H
index 1502e2033a..c30f65b445 100644
--- a/applications/solvers/compressible/sonicDyMFoam/readTransportProperties.H
+++ b/applications/solvers/compressible/sonicDyMFoam/readTransportProperties.H
@@ -7,7 +7,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/compressible/sonicLiquidFoam/readThermodynamicProperties.H b/applications/solvers/compressible/sonicLiquidFoam/readThermodynamicProperties.H
index d8dad7d800..82f3655f46 100644
--- a/applications/solvers/compressible/sonicLiquidFoam/readThermodynamicProperties.H
+++ b/applications/solvers/compressible/sonicLiquidFoam/readThermodynamicProperties.H
@@ -7,7 +7,7 @@
"thermodynamicProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/compressible/sonicLiquidFoam/readTransportProperties.H b/applications/solvers/compressible/sonicLiquidFoam/readTransportProperties.H
index 1502e2033a..c30f65b445 100644
--- a/applications/solvers/compressible/sonicLiquidFoam/readTransportProperties.H
+++ b/applications/solvers/compressible/sonicLiquidFoam/readTransportProperties.H
@@ -7,7 +7,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H
index b94745d9df..3f43981907 100644
--- a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H
+++ b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H
@@ -7,7 +7,7 @@ IOdictionary mdEquilibrationDict
"mdEquilibrationDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/electromagnetics/electrostaticFoam/createFields.H b/applications/solvers/electromagnetics/electrostaticFoam/createFields.H
index 64522273b8..04c86c4edb 100644
--- a/applications/solvers/electromagnetics/electrostaticFoam/createFields.H
+++ b/applications/solvers/electromagnetics/electrostaticFoam/createFields.H
@@ -7,7 +7,7 @@
"physicalProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/electromagnetics/magneticFoam/createFields.H b/applications/solvers/electromagnetics/magneticFoam/createFields.H
index a3712c19aa..22d4008921 100644
--- a/applications/solvers/electromagnetics/magneticFoam/createFields.H
+++ b/applications/solvers/electromagnetics/magneticFoam/createFields.H
@@ -21,7 +21,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/electromagnetics/mhdFoam/createFields.H b/applications/solvers/electromagnetics/mhdFoam/createFields.H
index 04e05c032d..fb5a004932 100644
--- a/applications/solvers/electromagnetics/mhdFoam/createFields.H
+++ b/applications/solvers/electromagnetics/mhdFoam/createFields.H
@@ -7,7 +7,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/financial/financialFoam/createFields.H b/applications/solvers/financial/financialFoam/createFields.H
index 6cdbbe2bde..dc0da4d2a3 100644
--- a/applications/solvers/financial/financialFoam/createFields.H
+++ b/applications/solvers/financial/financialFoam/createFields.H
@@ -7,7 +7,7 @@
"financialProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/regionProperties/regionProperties.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/regionProperties/regionProperties.C
index 89eaaabd48..f85e8f5440 100644
--- a/applications/solvers/heatTransfer/chtMultiRegionFoam/regionProperties/regionProperties.C
+++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/regionProperties/regionProperties.C
@@ -36,7 +36,7 @@ Foam::regionProperties::regionProperties(const Time& runTime)
"regionProperties",
runTime.time().constant(),
runTime.db(),
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
),
diff --git a/applications/solvers/incompressible/boundaryFoam/createFields.H b/applications/solvers/incompressible/boundaryFoam/createFields.H
index e99a990013..90a6664989 100644
--- a/applications/solvers/incompressible/boundaryFoam/createFields.H
+++ b/applications/solvers/incompressible/boundaryFoam/createFields.H
@@ -44,7 +44,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/incompressible/channelFoam/readTransportProperties.H b/applications/solvers/incompressible/channelFoam/readTransportProperties.H
index 87c93c9195..abaee647c7 100644
--- a/applications/solvers/incompressible/channelFoam/readTransportProperties.H
+++ b/applications/solvers/incompressible/channelFoam/readTransportProperties.H
@@ -6,7 +6,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/solvers/incompressible/icoFoam/createFields.H b/applications/solvers/incompressible/icoFoam/createFields.H
index 6a7d6b9a80..02093c3938 100644
--- a/applications/solvers/incompressible/icoFoam/createFields.H
+++ b/applications/solvers/incompressible/icoFoam/createFields.H
@@ -7,7 +7,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/incompressible/shallowWaterFoam/readGravitationalAcceleration.H b/applications/solvers/incompressible/shallowWaterFoam/readGravitationalAcceleration.H
index d609c18614..d8a8bf8d06 100644
--- a/applications/solvers/incompressible/shallowWaterFoam/readGravitationalAcceleration.H
+++ b/applications/solvers/incompressible/shallowWaterFoam/readGravitationalAcceleration.H
@@ -7,7 +7,7 @@ IOdictionary gravitationalProperties
"gravitationalProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/lagrangian/coalChemistryFoam/readChemistryProperties.H b/applications/solvers/lagrangian/coalChemistryFoam/readChemistryProperties.H
index ab51afe283..f0bcf7597f 100644
--- a/applications/solvers/lagrangian/coalChemistryFoam/readChemistryProperties.H
+++ b/applications/solvers/lagrangian/coalChemistryFoam/readChemistryProperties.H
@@ -7,7 +7,7 @@ IOdictionary chemistryProperties
"chemistryProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/solvers/lagrangian/incompressibleUncoupledKinematicParcelFoam/createFields.H b/applications/solvers/lagrangian/incompressibleUncoupledKinematicParcelFoam/createFields.H
index 179ac149ba..0ad057e229 100644
--- a/applications/solvers/lagrangian/incompressibleUncoupledKinematicParcelFoam/createFields.H
+++ b/applications/solvers/lagrangian/incompressibleUncoupledKinematicParcelFoam/createFields.H
@@ -7,7 +7,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/readChemistryProperties.H b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/readChemistryProperties.H
index ab51afe283..f0bcf7597f 100644
--- a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/readChemistryProperties.H
+++ b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/readChemistryProperties.H
@@ -7,7 +7,7 @@ IOdictionary chemistryProperties
"chemistryProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
index 8048acd648..909d0351f7 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/createFields.H
@@ -97,7 +97,7 @@
"additionalControls",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/lagrangian/reactingParcelFilmFoam/readChemistryProperties.H b/applications/solvers/lagrangian/reactingParcelFilmFoam/readChemistryProperties.H
index ab51afe283..f0bcf7597f 100644
--- a/applications/solvers/lagrangian/reactingParcelFilmFoam/readChemistryProperties.H
+++ b/applications/solvers/lagrangian/reactingParcelFilmFoam/readChemistryProperties.H
@@ -7,7 +7,7 @@ IOdictionary chemistryProperties
"chemistryProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/solvers/lagrangian/reactingParcelFoam/readChemistryProperties.H b/applications/solvers/lagrangian/reactingParcelFoam/readChemistryProperties.H
index ab51afe283..f0bcf7597f 100644
--- a/applications/solvers/lagrangian/reactingParcelFoam/readChemistryProperties.H
+++ b/applications/solvers/lagrangian/reactingParcelFoam/readChemistryProperties.H
@@ -7,7 +7,7 @@ IOdictionary chemistryProperties
"chemistryProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/solvers/multiphase/bubbleFoam/createFields.H b/applications/solvers/multiphase/bubbleFoam/createFields.H
index 9367838a52..57bb7e88d5 100644
--- a/applications/solvers/multiphase/bubbleFoam/createFields.H
+++ b/applications/solvers/multiphase/bubbleFoam/createFields.H
@@ -91,7 +91,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/multiphase/bubbleFoam/createRASTurbulence.H b/applications/solvers/multiphase/bubbleFoam/createRASTurbulence.H
index 1ae6219fd6..015cfbb837 100644
--- a/applications/solvers/multiphase/bubbleFoam/createRASTurbulence.H
+++ b/applications/solvers/multiphase/bubbleFoam/createRASTurbulence.H
@@ -5,7 +5,7 @@
"RASProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/multiphase/cavitatingFoam/readThermodynamicProperties.H b/applications/solvers/multiphase/cavitatingFoam/readThermodynamicProperties.H
index d3fbb9307a..3740f10563 100644
--- a/applications/solvers/multiphase/cavitatingFoam/readThermodynamicProperties.H
+++ b/applications/solvers/multiphase/cavitatingFoam/readThermodynamicProperties.H
@@ -7,7 +7,7 @@
"thermodynamicProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixtureNew.C b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixtureNew.C
index bffffd6aae..27da4ad0c0 100644
--- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixtureNew.C
+++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixtureNew.C
@@ -46,7 +46,7 @@ Foam::phaseChangeTwoPhaseMixture::New
"transportProperties",
U.time().constant(),
U.db(),
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/solvers/multiphase/settlingFoam/createFields.H b/applications/solvers/multiphase/settlingFoam/createFields.H
index c8e05c4209..75d19c6779 100644
--- a/applications/solvers/multiphase/settlingFoam/createFields.H
+++ b/applications/solvers/multiphase/settlingFoam/createFields.H
@@ -50,7 +50,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
@@ -184,7 +184,7 @@
"RASProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H b/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H
index 8a12690581..308a1089fb 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/createFields.H
@@ -7,7 +7,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
@@ -153,7 +153,7 @@
"interfacialProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
index 611ce8fa16..57096ebd0c 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
@@ -56,7 +56,7 @@ Foam::kineticTheoryModel::kineticTheoryModel
"kineticTheoryProperties",
Ua_.time().constant(),
Ua_.mesh(),
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
),
diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/readPPProperties.H b/applications/solvers/multiphase/twoPhaseEulerFoam/readPPProperties.H
index 3acbf758d0..c1b319cbc9 100644
--- a/applications/solvers/multiphase/twoPhaseEulerFoam/readPPProperties.H
+++ b/applications/solvers/multiphase/twoPhaseEulerFoam/readPPProperties.H
@@ -5,7 +5,7 @@
"ppProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/readMechanicalProperties.H b/applications/solvers/stressAnalysis/solidDisplacementFoam/readMechanicalProperties.H
index 91bd5f3da2..9f256bd689 100644
--- a/applications/solvers/stressAnalysis/solidDisplacementFoam/readMechanicalProperties.H
+++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/readMechanicalProperties.H
@@ -7,7 +7,7 @@
"mechanicalProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/readThermalProperties.H b/applications/solvers/stressAnalysis/solidDisplacementFoam/readThermalProperties.H
index a4c3082fb5..12e10a607b 100644
--- a/applications/solvers/stressAnalysis/solidDisplacementFoam/readThermalProperties.H
+++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/readThermalProperties.H
@@ -7,7 +7,7 @@
"thermalProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/test/LduMatrix/createFields.H b/applications/test/LduMatrix/createFields.H
index ea64f13026..57714aa787 100644
--- a/applications/test/LduMatrix/createFields.H
+++ b/applications/test/LduMatrix/createFields.H
@@ -7,7 +7,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/test/dataEntry/testDataEntry.C b/applications/test/dataEntry/testDataEntry.C
index 583701322b..456f0d478d 100644
--- a/applications/test/dataEntry/testDataEntry.C
+++ b/applications/test/dataEntry/testDataEntry.C
@@ -48,7 +48,7 @@ int main(int argc, char *argv[])
"dataEntryProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/test/fvSolutionCombine/fvSolutionCombine.C b/applications/test/fvSolutionCombine/fvSolutionCombine.C
index a98d803bf3..19abc81611 100644
--- a/applications/test/fvSolutionCombine/fvSolutionCombine.C
+++ b/applications/test/fvSolutionCombine/fvSolutionCombine.C
@@ -116,7 +116,7 @@ int main(int argc, char *argv[])
dictName,
"system",
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/errorEstimation/estimateScalarError/estimateScalarError.C b/applications/utilities/errorEstimation/estimateScalarError/estimateScalarError.C
index 9b305731db..8b2339233c 100644
--- a/applications/utilities/errorEstimation/estimateScalarError/estimateScalarError.C
+++ b/applications/utilities/errorEstimation/estimateScalarError/estimateScalarError.C
@@ -57,7 +57,7 @@ int main(int argc, char *argv[])
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/errorEstimation/icoErrorEstimate/icoErrorEstimate.C b/applications/utilities/errorEstimation/icoErrorEstimate/icoErrorEstimate.C
index 33486ec301..05a7e5c57c 100644
--- a/applications/utilities/errorEstimation/icoErrorEstimate/icoErrorEstimate.C
+++ b/applications/utilities/errorEstimation/icoErrorEstimate/icoErrorEstimate.C
@@ -56,7 +56,7 @@ int main(int argc, char *argv[])
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/errorEstimation/icoMomentError/icoMomentError.C b/applications/utilities/errorEstimation/icoMomentError/icoMomentError.C
index 57629b5980..d0f668c8c9 100644
--- a/applications/utilities/errorEstimation/icoMomentError/icoMomentError.C
+++ b/applications/utilities/errorEstimation/icoMomentError/icoMomentError.C
@@ -57,7 +57,7 @@ int main(int argc, char *argv[])
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/errorEstimation/momentScalarError/momentScalarError.C b/applications/utilities/errorEstimation/momentScalarError/momentScalarError.C
index 72744a9f8d..246380a029 100644
--- a/applications/utilities/errorEstimation/momentScalarError/momentScalarError.C
+++ b/applications/utilities/errorEstimation/momentScalarError/momentScalarError.C
@@ -58,7 +58,7 @@ int main(int argc, char *argv[])
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/mesh/advanced/autoRefineMesh/autoRefineMesh.C b/applications/utilities/mesh/advanced/autoRefineMesh/autoRefineMesh.C
index c2f3640f2d..3ef371188e 100644
--- a/applications/utilities/mesh/advanced/autoRefineMesh/autoRefineMesh.C
+++ b/applications/utilities/mesh/advanced/autoRefineMesh/autoRefineMesh.C
@@ -639,7 +639,7 @@ int main(int argc, char *argv[])
"motionProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
);
@@ -669,7 +669,7 @@ int main(int argc, char *argv[])
"autoRefineMeshDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C b/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C
index 0b09b7859d..21c9f5867a 100644
--- a/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C
+++ b/applications/utilities/mesh/advanced/combinePatchFaces/combinePatchFaces.C
@@ -74,7 +74,7 @@ void checkSnapMesh
"snapMeshDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/mesh/advanced/modifyMesh/modifyMesh.C b/applications/utilities/mesh/advanced/modifyMesh/modifyMesh.C
index 7cd57e792d..befadc88e2 100644
--- a/applications/utilities/mesh/advanced/modifyMesh/modifyMesh.C
+++ b/applications/utilities/mesh/advanced/modifyMesh/modifyMesh.C
@@ -346,7 +346,7 @@ int main(int argc, char *argv[])
"modifyMeshDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/mesh/advanced/selectCells/edgeStats.C b/applications/utilities/mesh/advanced/selectCells/edgeStats.C
index 561cef9bfd..103d963be5 100644
--- a/applications/utilities/mesh/advanced/selectCells/edgeStats.C
+++ b/applications/utilities/mesh/advanced/selectCells/edgeStats.C
@@ -78,7 +78,7 @@ Foam::edgeStats::edgeStats(const polyMesh& mesh)
"motionProperties",
mesh.time().constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
);
diff --git a/applications/utilities/mesh/advanced/selectCells/selectCells.C b/applications/utilities/mesh/advanced/selectCells/selectCells.C
index 8f79846050..f5ad8412f7 100644
--- a/applications/utilities/mesh/advanced/selectCells/selectCells.C
+++ b/applications/utilities/mesh/advanced/selectCells/selectCells.C
@@ -346,7 +346,7 @@ int main(int argc, char *argv[])
"selectCellsDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H b/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H
index 85a92405dd..d722c432e3 100644
--- a/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H
+++ b/applications/utilities/mesh/conversion/foamToStarMesh/getTimeIndex.H
@@ -29,7 +29,7 @@
runTime.timeName(),
"uniform",
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H b/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H
index 85a92405dd..d722c432e3 100644
--- a/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H
+++ b/applications/utilities/mesh/conversion/foamToSurface/getTimeIndex.H
@@ -29,7 +29,7 @@
runTime.timeName(),
"uniform",
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
index 3f8086bb80..a0baebaae7 100644
--- a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
+++ b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
@@ -121,7 +121,7 @@ int main(int argc, char *argv[])
: dictPath
),
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
@@ -137,7 +137,7 @@ int main(int argc, char *argv[])
runTime.constant(),
polyMeshDir,
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/mesh/generation/extrudeMesh/extrudeMesh.C b/applications/utilities/mesh/generation/extrudeMesh/extrudeMesh.C
index 1d0ce53e73..9d28de4109 100644
--- a/applications/utilities/mesh/generation/extrudeMesh/extrudeMesh.C
+++ b/applications/utilities/mesh/generation/extrudeMesh/extrudeMesh.C
@@ -218,7 +218,7 @@ int main(int argc, char *argv[])
runTimeExtruded.constant(),
regionDir,
runTimeExtruded,
- IOobject::MUST_READ
+ IOobject::MUST_READ_IF_MODIFIED
)
);
diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
index e93112a431..7ced14726d 100644
--- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
+++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C
@@ -144,7 +144,7 @@ int main(int argc, char *argv[])
"decomposeParDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
@@ -157,7 +157,7 @@ int main(int argc, char *argv[])
"snappyHexMeshDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/mesh/manipulation/createPatch/createPatch.C b/applications/utilities/mesh/manipulation/createPatch/createPatch.C
index 43652bbbea..7f80d01e5d 100644
--- a/applications/utilities/mesh/manipulation/createPatch/createPatch.C
+++ b/applications/utilities/mesh/manipulation/createPatch/createPatch.C
@@ -532,7 +532,7 @@ int main(int argc, char *argv[])
: word::null
),
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C b/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C
index f5b79e7de1..96a092fb22 100644
--- a/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C
+++ b/applications/utilities/mesh/manipulation/mirrorMesh/mirrorFvMesh.C
@@ -39,7 +39,7 @@ Foam::mirrorFvMesh::mirrorFvMesh(const IOobject& io)
"mirrorMeshDict",
time().system(),
*this,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
),
diff --git a/applications/utilities/mesh/manipulation/mirrorMesh/readMirrorDict.H b/applications/utilities/mesh/manipulation/mirrorMesh/readMirrorDict.H
index 6116514701..138898842b 100644
--- a/applications/utilities/mesh/manipulation/mirrorMesh/readMirrorDict.H
+++ b/applications/utilities/mesh/manipulation/mirrorMesh/readMirrorDict.H
@@ -7,7 +7,7 @@
"mirrorMeshDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C b/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C
index ba3170d281..f890c84546 100644
--- a/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C
+++ b/applications/utilities/mesh/manipulation/refineMesh/refineMesh.C
@@ -334,7 +334,7 @@ int main(int argc, char *argv[])
"refineMeshDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C
index 495e07f290..19a80bac5f 100644
--- a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C
+++ b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C
@@ -483,7 +483,7 @@ int main(int argc, char *argv[])
"decomposeParDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C
index 733cef024b..9790aec1e1 100644
--- a/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C
+++ b/applications/utilities/mesh/manipulation/stitchMesh/stitchMesh.C
@@ -298,7 +298,7 @@ int main(int argc, char *argv[])
args.options()["toleranceDict"],
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/mesh/manipulation/topoSet/topoSet.C b/applications/utilities/mesh/manipulation/topoSet/topoSet.C
index 6f1c9957e4..54fd6e0dee 100644
--- a/applications/utilities/mesh/manipulation/topoSet/topoSet.C
+++ b/applications/utilities/mesh/manipulation/topoSet/topoSet.C
@@ -83,7 +83,7 @@ int main(int argc, char *argv[])
(
dictPath,
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
: IOobject
@@ -91,7 +91,7 @@ int main(int argc, char *argv[])
dictName,
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
)
diff --git a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
index a3f6786861..2009375040 100644
--- a/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
+++ b/applications/utilities/parallelProcessing/decomposePar/decomposePar.C
@@ -169,7 +169,7 @@ int main(int argc, char *argv[])
runTime.time().system(),
regionDir, // use region if non-standard
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C
index 6575c31dd3..2cc5c26b1a 100644
--- a/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C
+++ b/applications/utilities/parallelProcessing/decomposePar/domainDecomposition.C
@@ -94,7 +94,7 @@ Foam::domainDecomposition::domainDecomposition(const IOobject& io)
"decomposeParDict",
time().system(),
*this,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
),
diff --git a/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C b/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C
index c3a2003d40..5df7310f8e 100644
--- a/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C
+++ b/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C
@@ -581,7 +581,7 @@ int main(int argc, char *argv[])
"decomposeParDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/postProcessing/dataConversion/foamDataToFluent/foamDataToFluent.C b/applications/utilities/postProcessing/dataConversion/foamDataToFluent/foamDataToFluent.C
index d469054ca3..35f6544f4d 100644
--- a/applications/utilities/postProcessing/dataConversion/foamDataToFluent/foamDataToFluent.C
+++ b/applications/utilities/postProcessing/dataConversion/foamDataToFluent/foamDataToFluent.C
@@ -94,7 +94,7 @@ int main(int argc, char *argv[])
"foamDataToFluentDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H
index ecf12f8b13..491ada9a43 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToEnsightParts/getTimeIndex.H
@@ -26,7 +26,7 @@
if (io.headerOk())
{
- io.readOpt() = IOobject::MUST_READ;
+ io.readOpt() = IOobject::MUST_READ_IF_MODIFIED;
IOdictionary timeObject(io);
timeObject.lookup("index") >> timeIndex;
diff --git a/applications/utilities/postProcessing/dataConversion/foamToGMV/readConversionProperties.H b/applications/utilities/postProcessing/dataConversion/foamToGMV/readConversionProperties.H
index b19e03ab19..60b547dfd2 100644
--- a/applications/utilities/postProcessing/dataConversion/foamToGMV/readConversionProperties.H
+++ b/applications/utilities/postProcessing/dataConversion/foamToGMV/readConversionProperties.H
@@ -5,7 +5,7 @@ IOdictionary conversionProperties
"conversionProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.C
index a7483a210c..d11d2ae5ba 100644
--- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.C
+++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.C
@@ -315,7 +315,7 @@ void Foam::vtkPV3blockMesh::updateFoamMesh()
dbPtr_().constant(),
polyMesh::meshSubDir,
dbPtr_(),
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/postProcessing/lagrangian/particleTracks/createFields.H b/applications/utilities/postProcessing/lagrangian/particleTracks/createFields.H
index 61c126e492..d7ede226bf 100644
--- a/applications/utilities/postProcessing/lagrangian/particleTracks/createFields.H
+++ b/applications/utilities/postProcessing/lagrangian/particleTracks/createFields.H
@@ -5,7 +5,7 @@ IOdictionary propsDict
"particleTrackProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ
+ IOobject::MUST_READ_IF_MODIFIED
)
);
diff --git a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C
index 8985861582..ccc1ec2948 100644
--- a/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C
+++ b/applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C
@@ -62,7 +62,7 @@ namespace Foam
args["dict"],
runTime.system(),
runTime,
- IOobject::MUST_READ
+ IOobject::MUST_READ_IF_MODIFIED
)
);
@@ -130,7 +130,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"RASProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
);
@@ -140,7 +140,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"LESProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
);
@@ -184,7 +184,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
@@ -214,7 +214,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"RASProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
);
@@ -224,7 +224,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"LESProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
);
@@ -266,7 +266,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H b/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
index ddb1f663ad..d750108654 100644
--- a/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
+++ b/applications/utilities/postProcessing/miscellaneous/pdfPlot/createFields.H
@@ -5,7 +5,7 @@
"pdfDict",
runTime.constant(),
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/postProcessing/miscellaneous/postChannel/postChannel.C b/applications/utilities/postProcessing/miscellaneous/postChannel/postChannel.C
index 8c9cb58717..7d71845adb 100644
--- a/applications/utilities/postProcessing/miscellaneous/postChannel/postChannel.C
+++ b/applications/utilities/postProcessing/miscellaneous/postChannel/postChannel.C
@@ -69,7 +69,7 @@ int main(int argc, char *argv[])
"postChannelDict",
mesh.time().constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/postProcessing/miscellaneous/postChannel/readTransportProperties.H b/applications/utilities/postProcessing/miscellaneous/postChannel/readTransportProperties.H
index 1e4bdd4292..cef26f6c35 100644
--- a/applications/utilities/postProcessing/miscellaneous/postChannel/readTransportProperties.H
+++ b/applications/utilities/postProcessing/miscellaneous/postChannel/readTransportProperties.H
@@ -7,7 +7,7 @@
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/postProcessing/velocityField/Mach/Mach.C b/applications/utilities/postProcessing/velocityField/Mach/Mach.C
index 53bd1a2488..391eee5237 100644
--- a/applications/utilities/postProcessing/velocityField/Mach/Mach.C
+++ b/applications/utilities/postProcessing/velocityField/Mach/Mach.C
@@ -98,7 +98,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"thermodynamicProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/postProcessing/velocityField/Mach/readThermodynamicProperties.H b/applications/utilities/postProcessing/velocityField/Mach/readThermodynamicProperties.H
index 1fc57fc5fd..4e19adaae4 100644
--- a/applications/utilities/postProcessing/velocityField/Mach/readThermodynamicProperties.H
+++ b/applications/utilities/postProcessing/velocityField/Mach/readThermodynamicProperties.H
@@ -7,7 +7,7 @@
"thermodynamicProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/postProcessing/velocityField/Pe/Pe.C b/applications/utilities/postProcessing/velocityField/Pe/Pe.C
index a94f474d11..8e26d3f33a 100644
--- a/applications/utilities/postProcessing/velocityField/Pe/Pe.C
+++ b/applications/utilities/postProcessing/velocityField/Pe/Pe.C
@@ -81,7 +81,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"RASProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
);
@@ -90,7 +90,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"LESProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
);
@@ -174,7 +174,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
@@ -299,7 +299,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
"transportProperties",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/preProcessing/boxTurb/readBoxTurbDict.H b/applications/utilities/preProcessing/boxTurb/readBoxTurbDict.H
index 60063b9d22..bcf5625a07 100644
--- a/applications/utilities/preProcessing/boxTurb/readBoxTurbDict.H
+++ b/applications/utilities/preProcessing/boxTurb/readBoxTurbDict.H
@@ -7,7 +7,7 @@
"boxTurbDict",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C
index 69a201e558..e917feaa70 100644
--- a/applications/utilities/preProcessing/changeDictionary/changeDictionary.C
+++ b/applications/utilities/preProcessing/changeDictionary/changeDictionary.C
@@ -292,7 +292,7 @@ int main(int argc, char *argv[])
"changeDictionaryDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
@@ -405,7 +405,7 @@ int main(int argc, char *argv[])
fieldName,
instance,
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/preProcessing/dsmcInitialise/dsmcInitialise.C b/applications/utilities/preProcessing/dsmcInitialise/dsmcInitialise.C
index d779a6427d..edd7d7e752 100644
--- a/applications/utilities/preProcessing/dsmcInitialise/dsmcInitialise.C
+++ b/applications/utilities/preProcessing/dsmcInitialise/dsmcInitialise.C
@@ -50,7 +50,7 @@ int main(int argc, char *argv[])
"dsmcInitialiseDict",
mesh.time().system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/preProcessing/engineSwirl/createFields.H b/applications/utilities/preProcessing/engineSwirl/createFields.H
index 596273a9bd..11975d3717 100644
--- a/applications/utilities/preProcessing/engineSwirl/createFields.H
+++ b/applications/utilities/preProcessing/engineSwirl/createFields.H
@@ -7,7 +7,7 @@ IOdictionary engineGeometry
"engineGeometry",
runTime.constant(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C b/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C
index f499ab5030..e615ebe210 100644
--- a/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C
+++ b/applications/utilities/preProcessing/foamUpgradeCyclics/foamUpgradeCyclics.C
@@ -278,7 +278,7 @@ void rewriteField
fieldName,
runTime.timeName(),
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/preProcessing/foamUpgradeFvSolution/foamUpgradeFvSolution.C b/applications/utilities/preProcessing/foamUpgradeFvSolution/foamUpgradeFvSolution.C
index 0cdf0cbe77..202ebad86d 100644
--- a/applications/utilities/preProcessing/foamUpgradeFvSolution/foamUpgradeFvSolution.C
+++ b/applications/utilities/preProcessing/foamUpgradeFvSolution/foamUpgradeFvSolution.C
@@ -70,7 +70,7 @@ int main(int argc, char *argv[])
"fvSolution",
runTime.system(),
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/preProcessing/mapFields/mapFields.C b/applications/utilities/preProcessing/mapFields/mapFields.C
index 72dae9f838..0eabfe6d3c 100644
--- a/applications/utilities/preProcessing/mapFields/mapFields.C
+++ b/applications/utilities/preProcessing/mapFields/mapFields.C
@@ -291,7 +291,7 @@ int main(int argc, char *argv[])
"mapFieldsDict",
runTimeTarget.system(),
runTimeTarget,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
@@ -310,7 +310,7 @@ int main(int argc, char *argv[])
"decomposeParDict",
runTimeSource.system(),
runTimeSource,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
@@ -375,7 +375,7 @@ int main(int argc, char *argv[])
"decomposeParDict",
runTimeTarget.system(),
runTimeTarget,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
@@ -446,7 +446,7 @@ int main(int argc, char *argv[])
"decomposeParDict",
runTimeSource.system(),
runTimeSource,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
@@ -464,7 +464,7 @@ int main(int argc, char *argv[])
"decomposeParDict",
runTimeTarget.system(),
runTimeTarget,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/preProcessing/mdInitialise/mdInitialise.C b/applications/utilities/preProcessing/mdInitialise/mdInitialise.C
index 6e329a271f..abefc1a0b2 100644
--- a/applications/utilities/preProcessing/mdInitialise/mdInitialise.C
+++ b/applications/utilities/preProcessing/mdInitialise/mdInitialise.C
@@ -44,7 +44,7 @@ int main(int argc, char *argv[])
"mdInitialiseDict",
runTime.system(),
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/applications/utilities/preProcessing/setFields/setFields.C b/applications/utilities/preProcessing/setFields/setFields.C
index b3cbd8c8bc..6676403d53 100644
--- a/applications/utilities/preProcessing/setFields/setFields.C
+++ b/applications/utilities/preProcessing/setFields/setFields.C
@@ -186,7 +186,7 @@ int main(int argc, char *argv[])
"setFieldsDict",
runTime.system(),
mesh,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/preProcessing/wallFunctionTable/wallFunctionTableApp.C b/applications/utilities/preProcessing/wallFunctionTable/wallFunctionTableApp.C
index 9c5b70c968..8f9e755d45 100644
--- a/applications/utilities/preProcessing/wallFunctionTable/wallFunctionTableApp.C
+++ b/applications/utilities/preProcessing/wallFunctionTable/wallFunctionTableApp.C
@@ -47,7 +47,7 @@ int main(int argc, char *argv[])
"wallFunctionDict",
runTime.constant(),
mesh,
- IOobject::MUST_READ
+ IOobject::MUST_READ_IF_MODIFIED
)
);
diff --git a/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C b/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C
index dda71c3565..3995031b53 100644
--- a/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C
+++ b/applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C
@@ -241,7 +241,7 @@ int main(int argc, char *argv[])
importName,
runTime.constant(),
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
diff --git a/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C b/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C
index c9c02d199b..7a0c9baae3 100644
--- a/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C
+++ b/applications/utilities/thermophysical/equilibriumCO/equilibriumCO.C
@@ -62,7 +62,7 @@ int main(int argc, char *argv[])
"BurcatCpData",
runTime.constant(),
runTime,
- IOobject::MUST_READ,
+ IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
diff --git a/doc/changes/inotify.txt b/doc/changes/inotify.txt
new file mode 100644
index 0000000000..146dc55a05
--- /dev/null
+++ b/doc/changes/inotify.txt
@@ -0,0 +1,53 @@
+2010-05-28
+Cleanup of automatic regIOobject rereading.
+
+- all files (usually only IOdictionary) that need to be monitored
+should be registered using MUST_READ_IF_MODIFIED. The MUST_READ should
+be used for objects that do not need to be re-read (e.g. fields).
+In the old system it would actually monitor e.g. 0/U and constant/polyMesh
+files.
+I've temporarily added a warning in IOdictionary if constructed with MUST_READ.
+Same for IOList,IOField,IOMap if constructed with MUST_READ_IF_MODIFIED
+(or is rereading supported?). Please let me know if something does not work or
+you see the warning
+ "Dictionary constructed with IOobject::MUST_READ instead of IOobject::MUST_READ_IF_MODIFIED." << nl
+
+
+- any monitored and modified file will get reloaded from the exact path
+that was monitored. In the old system it would/could do a re-search through all
+times.
+
+
+- all reductions to synchronise status on different processors are done with
+a single reduction instead of one reduction per registered object. This could
+be quite a gain on large numbers of processors.
+
+
+- all file monitoring is done by an instance of 'fileMonitor' in the Time
+class. The fileMonitor class can be found in OSspecific. Default is
+to use the (linux-specific) 'inotify' system calls.
+If compiled with -DFOAM_USE_STAT it will revert to the current 'stat' system
+calls.
+
+
+- inotify does not need timestamps. There is no need for fileModificationSkew
+to allow for time differences. (there can still temporarily be a difference
+in modified status between different processors due to nfs lagging)
+
+
+- fileMonitor stores two hashtables per file so there is a small overhead
+adding and removing files from monitoring.
+
+
+- if runTimeModifiable is false at start of run no files will get monitored,
+however if runTimeModified gets set to false during the run the files
+will still get monitored (though never reloaded). This is only a hypothetical
+problem in that the kernel still stores events for the monitored files. However
+inotify is very efficient - e.g. it gets used to track changes on file systems
+for desktop search engines.
+
+
+- in the old system one could call modified() on any object and get
+and uptodate state. In the new system it will return the state from
+the last runTime++ (which if it triggered any re-reads will have reset the
+state anyway).
diff --git a/src/OSspecific/POSIX/Make/files b/src/OSspecific/POSIX/Make/files
index f6e7c2d55e..788a08105a 100644
--- a/src/OSspecific/POSIX/Make/files
+++ b/src/OSspecific/POSIX/Make/files
@@ -9,6 +9,12 @@ POSIX.C
cpuTime/cpuTime.C
clockTime/clockTime.C
+/*
+ * Note: fileMonitor assumes inotify by default. Compile with -DFOAM_USE_STAT
+ * to use stat (=timestamps) instead of inotify
+ */
+fileMonitor.C
+
#ifdef SunOS64
dummyPrintStack.C
#else
diff --git a/src/OSspecific/POSIX/Make/options b/src/OSspecific/POSIX/Make/options
index e69de29bb2..b7e9d7211b 100644
--- a/src/OSspecific/POSIX/Make/options
+++ b/src/OSspecific/POSIX/Make/options
@@ -0,0 +1,3 @@
+#ifdef SunOS64
+EXE_INC = -DFOAM_USE_STAT
+#endif
diff --git a/src/OSspecific/POSIX/fileMonitor.C b/src/OSspecific/POSIX/fileMonitor.C
new file mode 100644
index 0000000000..f7f0246c98
--- /dev/null
+++ b/src/OSspecific/POSIX/fileMonitor.C
@@ -0,0 +1,397 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ fileMonitor
+
+\*----------------------------------------------------------------------------*/
+
+#include "fileMonitor.H"
+#include "IOstreams.H"
+#include "Pstream.H"
+#include "PackedList.H"
+#include "PstreamReduceOps.H"
+
+#ifdef FOAM_USE_STAT
+# include "OSspecific.H"
+# include "regIOobject.H" // for fileModificationSkew symbol
+#else
+# include
+# include
+# include
+#endif
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+defineTypeNameAndDebug(Foam::fileMonitor, 0);
+
+template<>
+const char* Foam::NamedEnum::names[] =
+{
+ "unmodified",
+ "deleted",
+ "modified"
+};
+const Foam::NamedEnum
+ Foam::fileMonitor::fileStateNames_;
+
+
+namespace Foam
+{
+ // Reduction operator for PackedList of fileState
+ class reduceFileStates
+ {
+ public:
+ unsigned int operator()(const unsigned int x, const unsigned int y)
+ const
+ {
+ // x,y are sets of 2bits representing fileState
+
+ unsigned int mask = 3u;
+ unsigned int shift = 0;
+ unsigned int result = 0;
+
+ while (mask)
+ {
+ // Combine state
+ unsigned int xState = (x & mask) >> shift;
+ unsigned int yState = (y & mask) >> shift;
+
+ // Combine and add to result. Combine is such that UNMODIFIED
+ // wins.
+ unsigned int state = min(xState, yState);
+ result |= (state << shift);
+
+ shift += 2;
+ mask <<= 2;
+ }
+ return result;
+ }
+ };
+
+ // Combine operator for PackedList of fileState
+ class combineReduceFileStates
+ {
+ public:
+ void operator()(unsigned int& x, const unsigned int y) const
+ {
+ x = reduceFileStates()(x, y);
+ }
+ };
+}
+
+
+// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
+
+#ifdef FOAM_USE_STAT
+void Foam::fileMonitor::checkFiles() const
+{
+ for
+ (
+ HashTable