CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   NFS timing problems (http://www.cfd-online.com/Forums/openfoam-solving/60675-nfs-timing-problems.html)

Mattijs Janssens (Mattijs) March 25, 2002 08:35

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?

Mattijs

Niklas Nordin (Niklas) March 25, 2002 08:48

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.

Niklas

Mattijs Janssens (Mattijs) April 8, 2002 04:47

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).

Mattijs Janssens (Mattijs) September 30, 2004 05:23

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

fileModificationSkew

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 21:06.