CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (https://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   Unknown FunctionEntry 'eval' (https://www.cfd-online.com/Forums/openfoam-pre-processing/231152-unknown-functionentry-eval.html)

NotDrJeff October 23, 2020 11:58

Unknown FunctionEntry 'eval'
 
Hello,

First time poster and new OpenFOAM user here. I am trying to run a tutorial from the OpenFOAM User guide 'Turbulent plane channel flow with smooth walls' as found here.

I am getting an error when I try to run blockMesh on the files.

Code:

Unknown functionEntry 'eval' in "...system/controlDict" near line 49

Valid functionEntries are :

6 (
codeStream
include
neg
calc
includeIfPresent
includeEtc
)

This refers to a line in the control dictionary:

Code:

timestart    #eval #{ 0.1 * ${/endTime} #};
I am confused why #eval is not working, and also about the difference between #calc and #eval.

I saw something that said #eval was a new feature intended to replace #calc because it was more efficient. Is this correct? I have OpenFoam8 installed so it's not because of an old version.

I tried to replace #eval with #calc in the control dictionary but I am also confused by the apparently different syntaxes used in each case. The examples I have seen seem to suggest that #calc uses quotation marks around the expression whereas #eval uses curly braces. Have I got this correct?

I tried the following:

Code:

timeStart    #calc "0.1*${/endTime}";
but this didn't work either. I think I'm using the wrong syntax. I get the following:

Code:

error: '$' was not declared in this scope
and
Code:

error: expected ')' before '{' token
I'm sure there is an answer to this somewhere on the internet, but I'm struggling to find what I'm looking for. Any help would be appreciated! :)

Thanks,

P.S. I am using the windows subsystem for Linux to run Ubuntu.

Yann October 26, 2020 03:24

Hello Jeffrey,

You are right, #eval is a pretty recent feature meant to replace the #calc feature. This feature has been released in OpenFOAM-v1912 (see release notes)

This feature is only available in the ESI-OpenCFD branch (openfoam.com) and this is why you cannot use it with OpenFOAM-8 which is developed by the OpenFOM Foundation branch (openfoam.org)

The easiest way to learn how to use OpenFOAM is to start with the tutorials available for the version you are using.
The tutorial you linked in your first post is from the ESI-OpenCFD branch so you should better run it with the last version from this branch (OpenFOAM-v2006) OR find the equivalent tutorial in OpenFOAM-8 (see here)

Have fun!
Yann

NotDrJeff October 26, 2020 09:20

Thank you Yann! I had no idea there were two different versions. I will try to use the ESI-openCFD version.

olesen November 7, 2020 04:42

Quote:

Originally Posted by Yann (Post 785967)
Hello Jeffrey,

You are right, #eval is a pretty recent feature meant to replace the #calc feature. This feature has been released in OpenFOAM-v1912 (see release notes)

Hi Yann,
Good answer and overview!

Just additional notes. There is some more information in the upgrade guide, the interesting part being the timings - since you skip the compiler step completely!
Also useful to note that this is part of the entire expressions infrastructure, which adds several swak4foam features, and also gives an expression-based Function1 or PatchFunction1 that be immediately used with many different existing boundary conditions.

olesen November 7, 2020 04:44

Quote:

Originally Posted by NotDrJeff (Post 785865)
P.S. I am using the windows subsystem for Linux to run Ubuntu.

Precompiled for ubuntu:
https://develop.openfoam.com/Develop...ompiled/debian


All times are GMT -4. The time now is 04:09.