|
[Sponsors] |
![]() |
![]() |
#1 |
Member
Tony Ladd
Join Date: Aug 2013
Posts: 48
Rep Power: 13 ![]() |
I am using a coded BC for an initial condition and a boundary condition (U.txt). I define omega as a parameter at the top of the file and then use it in setting the internal field via #codestream and in a rotating wall bc. I would also like to use it in a codedBC but the variable is not seen in the code. So $omega*y is interpreted as *y (an error of course). It works fine with a value (2) hardwired in (as in U.txt).
I understand that it's probably a scoping issue and we have encountered it before with coded BC's. But I was surprised it worked with codestream. My questions are: 1) Why is the scoping different in coded BC and codestream (if that is what it is) 2) Is there any way to get a parameter defined in the BC file into the coded BC. We know how to read parameters from a dictionary but this seems overly complicated. Thanks Tony Last edited by tladd; May 28, 2021 at 18:28. Reason: PS. The case is in the zip file |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Join Date: Apr 2020
Location: UK
Posts: 746
Rep Power: 14 ![]() |
A reasonable question/request, but I guess the problem is that the codestream parts are compiled as a standalone piece of C++ ... which is why they do not see the variable definition at the top of the boundary file.
You probably need to write it as a dictionary, eg omegaParameter Code:
omega 2; Code:
#include "omegaParameter" I haven't tested it, but that seems the "cleanest". Good luck. PS - let us know if that works, since it will undoubtedly be useful for others! |
|
![]() |
![]() |
![]() |
![]() |
#3 | |
Member
Tony Ladd
Join Date: Aug 2013
Posts: 48
Rep Power: 13 ![]() |
Quote:
Actually codestream can process parameters. That was what I found confusing. But my much more C++ literate friend pointed out what's wrong. The dynamic code is put in some uniquely named directory while a coded BC goes in a directory with the bc name. You can look in there to see what happens. In the case of codestream the parameter is replaced by its value, whereas in the coded BC the parameter name just disappears. So I think the coded BC is not being parsed entirely correctly. I will file a bug report. |
||
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
[swak4Foam] How to define boundary condition variables by using previosly defined variables? | pawlo | OpenFOAM Community Contributions | 8 | September 13, 2020 12:37 |
Optimal tolerance and variables scaling settings | 4513645ygq | Main CFD Forum | 0 | July 28, 2020 09:56 |
SU2 violates the lower bound of the FFD design variables | cfdjetman | SU2 | 4 | October 2, 2019 17:15 |
Some variables not loading in Tecplot | nick.l.thomas | Tecplot | 1 | October 25, 2018 18:48 |
Passing fortran variables to C in mixed programmin | Quarkz | Main CFD Forum | 1 | January 9, 2008 07:17 |