CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Community Contributions (https://www.cfd-online.com/Forums/openfoam-community-contributions/)
-   -   [swak4Foam] funkySetFields (https://www.cfd-online.com/Forums/openfoam-community-contributions/68513-funkysetfields.html)

Chioma September 22, 2009 19:34

funkySetFields
 
Hello everyone,

Please can someone help me out. My geometry is a simple cylinder with boundaries as base, wall and top. The boundary condition for velocity field at the base is (0.5y,0.5x,0). I realized that I have to use funkySetFields in order to introduce such conditions. This I did using the dictionary option, a sample of my dictionary is

expression
(
base
field U;
expression "vector (0.5*pos().y, 0.5*pos().x, 0)";
)
it worked but unfortunately, it computed for the whole cylinder which has a total of 154000 cells.
I am presently trying to use "conditions" so that the expression is only applied at the base. I used
conditions "pos().z=0", but I keep getting an error of invalid character.

I decided to give this condition since there is no z component at the base.

Please, I need a command which applies this condition only to the base and not the whole geometry.

Thanks

gschaider September 23, 2009 09:02

Quote:

Originally Posted by Chioma (Post 230199)
Hello everyone,

Please can someone help me out. My geometry is a simple cylinder with boundaries as base, wall and top. The boundary condition for velocity field at the base is (0.5y,0.5x,0). I realized that I have to use funkySetFields in order to introduce such conditions. This I did using the dictionary option, a sample of my dictionary is

expression
(
base
field U;
expression "vector (0.5*pos().y, 0.5*pos().x, 0)";
)
it worked but unfortunately, it computed for the whole cylinder which has a total of 154000 cells.
I am presently trying to use "conditions" so that the expression is only applied at the base. I used
conditions "pos().z=0", but I keep getting an error of invalid character.

I decided to give this condition since there is no z component at the base.

Please, I need a command which applies this condition only to the base and not the whole geometry.

Thanks

You need the -keepPatches-option. Have a look at
http://openfoamwiki.net/index.php/Co...t-Room_Example
where the usage is demonstrated.

An alternative would be the groovyBC, but as your boundary condition is stationary this would be like going after mice with an atom-bomb

Chioma September 23, 2009 14:52

Thanks so much, I will look into it and hopefully I would get my expected results.

bunni July 25, 2011 17:30

Using dictionary
 
Hi,

I installed funkySetFields last week, and have been having some fun playing around with it, on OF 1.6

I've successfully set up the dictionary version for specifying two different fluids:
simple example to make waves.

FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object funkySetFieldsDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //



expressions
(
Alpha1
{
field alpha1;
expression "1";
condition "pos().y>= 0.5";

}
);


-----------

My question is this: how would I used the dictionary to specify velocity?

I did manage to set velocity with a command line approach:

funkySetFields -field U -expression 'vector(0,10*pos().y,0)' -condition "pos().y > 0.5" -time 0

but I'd like to know how to do it via a dictionary. Whatever I tried didn't work!

TIA

gschaider July 25, 2011 18:33

Quote:

Originally Posted by bunni (Post 317459)
Hi,

I installed funkySetFields last week, and have been having some fun playing around with it, on OF 1.6

I've successfully set up the dictionary version for specifying two different fluids:
simple example to make waves.

FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object funkySetFieldsDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //



expressions
(
Alpha1
{
field alpha1;
expression "1";
condition "pos().y>= 0.5";

}
);


-----------

My question is this: how would I used the dictionary to specify velocity?

The same way you did for alpha1:

Code:

field U;
Quote:

Originally Posted by bunni (Post 317459)
I did manage to set velocity with a command line approach:

funkySetFields -field U -expression 'vector(0,10*pos().y,0)' -condition "pos().y > 0.5" -time 0

but I'd like to know how to do it via a dictionary. Whatever I tried didn't work!

Could you be bit more specific about "whatever"?

SD@TUB December 6, 2011 07:15

Initialize field alpha
 
Hello,

Before opening a new thread, I post my problem of initializing field alpha with expression from http://openfoamwiki.net/index.php/Co...on_Sloping_Bed right here.
When using funkySetFields, I get following error message:
Code:

/*---------------------------------------------------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM Extend Project: Open source CFD        |
|  \\    /  O peration    | Version:  1.6-ext                              |
|  \\  /    A nd          | Web:      www.extend-project.de                |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
Build  : 1.6-ext-632b4ce56df2
Exec  : funkySetFields -time 0
Date  : Dec 06 2011
Time  : 12:50:06
Host  : pc1
PID    : 15447
Case  : /home/tmp/testCase
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

Time = 0
 Using funkySetFieldsDict



Part: internalAlphaField
 Putting "faceAverage((fpos().z + surf(0.5) * fproj().z) <= (surf(0.0)) ? surf(1.0) : ((fpos().z - surf(0.5) * fproj().z) > surf(0.0) ? surf(0.0) : (surf(0.5) - fpos().z / (fproj().z + surf(0.00000001)))))" into field alpha1 at t = "0" if condition "true" is true
 Keeping patches unaltered



--> FOAM FATAL ERROR:
Unknown patch field type zeroGradient

Valid patchField types are :

12
(
processor
overlapGgi
wedge
fixedValue
empty
calculated
regionCoupling
cyclicGgi
ggi
symmetryPlane
sliced
cyclic
)


    From function fvsPatchField<Type>::New(const word&, const fvPatch&, const DimensionedField<Type, surfaceMesh>)
    in file lnInclude/newFvsPatchField.C at line 61.

FOAM exiting

Within alpha1 dict, I use zeroGradient BC for several patches. That should be OK, because setFields works as expected.
I am using swak4Foam with 1.6-ext, see header above for more details.

Maybe someone has any clue, what is wrong here?


Stefan

gschaider December 6, 2011 13:56

Quote:

Originally Posted by SD@TUB (Post 334848)
Hello,

Before opening a new thread, I post my problem of initializing field alpha with expression from http://openfoamwiki.net/index.php/Co...on_Sloping_Bed right here.
When using funkySetFields, I get following error message:
Code:

/*---------------------------------------------------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM Extend Project: Open source CFD        |
|  \\    /  O peration    | Version:  1.6-ext                              |
|  \\  /    A nd          | Web:      www.extend-project.de                |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
Build  : 1.6-ext-632b4ce56df2
Exec  : funkySetFields -time 0
Date  : Dec 06 2011
Time  : 12:50:06
Host  : pc1
PID    : 15447
Case  : /home/tmp/testCase
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0

Time = 0
 Using funkySetFieldsDict



Part: internalAlphaField
 Putting "faceAverage((fpos().z + surf(0.5) * fproj().z) <= (surf(0.0)) ? surf(1.0) : ((fpos().z - surf(0.5) * fproj().z) > surf(0.0) ? surf(0.0) : (surf(0.5) - fpos().z / (fproj().z + surf(0.00000001)))))" into field alpha1 at t = "0" if condition "true" is true
 Keeping patches unaltered



--> FOAM FATAL ERROR:
Unknown patch field type zeroGradient

Valid patchField types are :

12
(
processor
overlapGgi
wedge
fixedValue
empty
calculated
regionCoupling
cyclicGgi
ggi
symmetryPlane
sliced
cyclic
)


    From function fvsPatchField<Type>::New(const word&, const fvPatch&, const DimensionedField<Type, surfaceMesh>)
    in file lnInclude/newFvsPatchField.C at line 61.

FOAM exiting

Within alpha1 dict, I use zeroGradient BC for several patches. That should be OK, because setFields works as expected.
I am using swak4Foam with 1.6-ext, see header above for more details.

Maybe someone has any clue, what is wrong here?


Stefan

Hmm. Tried your expression and it works for me. I think I have an idea what happens here (an overzealous template that is convinced that surfaceFields have zeroGradient-patches) and I think I already fixed that .... just don't know when and whether it is in the latest release. Which version of swak4Foam are you using? The latest from the SVN?

Bernhard

SD@TUB December 7, 2011 03:53

Thank you Bernhard for quick reply, svn info of my swak4Foam states:
Code:

Pfad: swak4Foam
URL: https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Breeder_1.7/libraries/swak4Foam
Basis des Projektarchivs: https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend
UUID des Projektarchivs: e4e07f05-0c2f-0410-a05a-b8ba57e0c909
Revision: 1919
Knotentyp: Verzeichnis
Plan: normal
Letzter Autor: bgschaid
Letzte geänderte Rev: 1919
Letztes Änderungsdatum: 2011-10-03 22:40:31 +0200 (Mo, 03. Okt 2011)

I will update swak4Foam and see if it works.

gschaider December 7, 2011 04:56

Quote:

Originally Posted by SD@TUB (Post 334965)
Thank you Bernhard for quick reply, svn info of my swak4Foam states:
Code:

Pfad: swak4Foam
URL: https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Breeder_1.7/libraries/swak4Foam
Basis des Projektarchivs: https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend
UUID des Projektarchivs: e4e07f05-0c2f-0410-a05a-b8ba57e0c909
Revision: 1919
Knotentyp: Verzeichnis
Plan: normal
Letzter Autor: bgschaid
Letzte geänderte Rev: 1919
Letztes Änderungsdatum: 2011-10-03 22:40:31 +0200 (Mo, 03. Okt 2011)

I will update swak4Foam and see if it works.

That is the latest RELEASED version. Try the development version (the one downloaded with hg) which is substantially newer and might (not toally sure) fix your problem (but also might have other problems)

SD@TUB December 7, 2011 10:12

Could this error be related to the simpleFunctionObjects-library? I did not explicitly compile this library before compiling swak4Foam.
The error only occur, if I use 'faceAverage' expression.

gschaider December 7, 2011 14:28

Quote:

Originally Posted by SD@TUB (Post 335034)
Could this error be related to the simpleFunctionObjects-library? I did not explicitly compile this library before compiling swak4Foam.

No. The problem occurs in FieldValueExpressionDriver which is part of swak4FoamParsers which doesn't depend on any other libraries

Quote:

Originally Posted by SD@TUB (Post 335034)
The error only occur, if I use 'faceAverage' expression.

The problem is one of the intermediate surfaceScalarFields (when that gets created)


All times are GMT -4. The time now is 02:44.