I recently came across an iss
I recently came across an issue to do with running a case with files on another machine (NFS mounted). If
- runTimeModifiable is on
- the machines have clock skew
- and the iteration lasts shorter than the clock skewI sometimes get a 'FatalError: no read constructor specified for phi'. I traced this to a problem in NFS with mtime on files.
Does anyone have experience with this? Anyone know any solutions?
Yes, we also have this proble
Yes, we also have this problem.
I have a quick and dirty solution http://www.cfd-online.com/OpenFOAM_D...part/happy.gif
I use a script to run the case.
The output, both STDOUT and STDERR, is piped
to a log-file and when the job's done it
looks for the special error message in the log
file and restarts the script if the error message was found. (told you it was dirty)
It works though.
The failsafe method is to swi
The failsafe method is to switch of runTimeModifiable.
Alternatively you can synchronize your clocks (by a time server).
The whole problem is caused by the caching done by NFS. If the file is still in cache the modification time is that of the local machine; if it is out of cache the modification time is that of the server.
The modification time is used by the database to reread files that have changed at runtime (if runTimeModifiable is swtiched on).
The third way of preventing t
The third way of preventing this error ('FatalError: no read constructor specified') is to allow for some difference in timing. This is done with the
parameter in the ~/.foam2.3/controlDict file. Set it to a value larger than the timing difference between the machines.
So there are three solutions to the problem. In order of (my) preference:
- synchronize the times on your machines. (Foam is not the only program that will give problems if the times are not synchronized)
- increase the 'slack' using above fileModificationSkew
if the time difference is not execessively large
- switch off runTimeModifiable in the controlDict
|All times are GMT -4. The time now is 16:45.|