CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Post-Processing (https://www.cfd-online.com/Forums/openfoam-post-processing/)
-   -   How to extract the data of all cells in the domain (https://www.cfd-online.com/Forums/openfoam-post-processing/226785-how-extract-data-all-cells-domain.html)

openfoamer93 May 7, 2020 14:06

How to extract the data of all cells in the domain
 
Hi

It is a simple question. Suppose that we have a 2D domain
That consists of 9 cells for example (imagine a square of 9 cells)

Then I want to extract the data of the temperature field at each cell and the corresponding data of another field (say mixture fraction Z) in that way I have the full data of each cell in terms of (Tcell,Zcell)


How to do this?

HPE May 7, 2020 17:36

I am not sure if I understood your question, so my apologies.

Information within a numerical domain can be interrogated by many means in OpenFOAM: e.g. sample, and probe utilities. Please do search them.

openfoamer93 May 7, 2020 19:59

Amazing that really worked. To extract the whole information of the field in a mesh: select > filter > data analysis > probe location > press ok whatever the settings are > then chang the tab "showing" and select your mesh. Finally, save in a csv file.

All the best

zhangyan May 8, 2020 03:44

If I correctly understand your demand, there is a utility to deal with such things in my GitHub:
https://github.com/ZhangYanTJU/foam2Columns
It supports any number of fields and transforms them to this format:
Code:

L1: x y z var1 var2 ...
L2: x y z var1 var2 ...
.
.
.
Ln: x y z var1 var2 ...

where n is the cell number, and var1(p), var2(T) are the input variables:
Code:

foam2Columns -fields "(p T)"

openfoamer93 May 8, 2020 22:08

Quote:

Originally Posted by zhangyan (Post 769367)
If I correctly understand your demand, there is a utility to deal with such things in my GitHub:
https://github.com/ZhangYanTJU/foam2Columns
It supports any number of fields and transforms them to this format:
Code:

L1: x y z var1 var2 ...
L2: x y z var1 var2 ...
.
.
.
Ln: x y z var1 var2 ...

where n is the cell number, and var1(p), var2(T) are the input variables:
Code:

foam2Columns -fields "(p T)"


What an elegant function is this! That exactly what I meant. Also, this function does more than I need which it also specifies the location x y z. The method I mentioned in my comment also works but it is not as easy as this function! So awesome, I will give it a try for sure 👌🏻

openfoamer93 May 8, 2020 22:10

That is why I like OpenFOAM. The room for improvement is endless! And collaboration is very effective in the scientific community 🙏

kerim May 13, 2020 13:08

How to extract the data of all cells in the domain
 
Dear zhangyan,
I downloaded foam2Columns into home/run folder. After unzipping and compiling I used it for dambreak case. Using the foam2Columns -fields "(p_rgh)" gives me all info that was proposed. But the execution of the foam2Columns -fields "(alfa.water)" gives nothing.
In another words everything is fine for p_rgh? not for alfa.water. I am using openfoam 7 on ubuntu 16.04 LTS
Any kind of help is highly appreciated.
Kerim

zhangyan May 14, 2020 05:17

Quote:

Originally Posted by kerim (Post 770281)
Dear zhangyan,
I downloaded foam2Columns into home/run folder. After unzipping and compiling I used it for dambreak case. Using the foam2Columns -fields "(p_rgh)" gives me all info that was proposed. But the execution of the foam2Columns -fields "(alfa.water)" gives nothing.
In another words everything is fine for p_rgh? not for alfa.water. I am using openfoam 7 on ubuntu 16.04 LTS
Any kind of help is highly appreciated.
Kerim

Dear Kerim,
1. Did you type it right? Isn't it alpha.water?
2. Now the foam2Cloumns tool only supports for volScalarField. Is alpha.water a volScalarField?

kerim May 14, 2020 10:54

5 Attachment(s)
Quote:

Originally Posted by zhangyan (Post 770406)
Dear Kerim,
1. Did you type it right? Isn't it alpha.water?
2. Now the foam2Cloumns tool only supports for volScalarField. Is alpha.water a volScalarField?

Dear zhangyan,
1. Yes I did it right.

2. alfa.water is volScalarField.

By the way, after execution of the command

foam2Columns -fields "(alfa.water)" in the terminal I got a file alphaPhi0.water. But it is not that file I am looking for. Frakly speaking I don't understand what kind of file I got.

Please see attachments for more information.
Kerim

Attachment 77624

Attachment 77625

Attachment 77626

Attachment 77627

Attachment 77628

kerim May 14, 2020 11:23

2 Attachment(s)
Dear zhangyan,


I just used foam2Cloumns tool for bouyantCavity case which uses buoyantSimpleFoam solver. Direct application of foam2Cloumns tool gives an error
keyword PIMPLE is undefined in dictionary "/home/kerim/run/buoyantCavity/system/fvSolution".


As you know buoyantSimpleFoam solver use only SIMPLE, not PIMPLE.

After changing SIMPLE to PIMPLE I got foam2Columns_p_T file. That is what I was looking for.
Could you explain me why do I have above mentioned error?
Kerim
Attachment 77629

Attachment 77630

zhangyan May 14, 2020 17:53

Quote:

Originally Posted by kerim (Post 770447)
Dear zhangyan,
1. Yes I did it right.

2. alfa.water is volScalarField.

By the way, after execution of the command

foam2Columns -fields "(alfa.water)" in the terminal I got a file alphaPhi0.water. But it is not that file I am looking for. Frakly speaking I don't understand what kind of file I got.

Please see attachments for more information.
Kerim

Attachment 77624

Attachment 77625

Attachment 77626

Attachment 77627

Attachment 77628

In the first picture, you inout alfa.water
But I found it from the last picture, at 0.5 s, you only got alpha.water.
I don't know why you want to try alfa.water.

zhangyan May 14, 2020 17:54

Quote:

Originally Posted by kerim (Post 770455)
Dear zhangyan,


I just used foam2Cloumns tool for bouyantCavity case which uses buoyantSimpleFoam solver. Direct application of foam2Cloumns tool gives an error
keyword PIMPLE is undefined in dictionary "/home/kerim/run/buoyantCavity/system/fvSolution".


As you know buoyantSimpleFoam solver use only SIMPLE, not PIMPLE.

After changing SIMPLE to PIMPLE I got foam2Columns_p_T file. That is what I was looking for.
Could you explain me why do I have above mentioned error?
Kerim
Attachment 77629

Attachment 77630

Thank you for pointing this out.
It will give me a chance to improve this tool.
I'll check it soon.

olesen May 14, 2020 18:57

Quote:

Originally Posted by zhangyan (Post 769367)
If I correctly understand your demand, there is a utility to deal with such things in my GitHub:
https://github.com/ZhangYanTJU/foam2Columns
It supports any number of fields and transforms them to this format:
[CODE]
L1: x y z var1 var2 ...
L2: x y z var1 var2 ...

Looks nice. Dealing with the proper sorting (in parallel) tends to be a bit of a memory hog. If you are interested, you might take a look at the cellCentreSet. It should do something similar with run-time selectable output format.

https://www.openfoam.com/documentati...t.html#details

kerim May 15, 2020 00:25

Quote:

Originally Posted by zhangyan (Post 770518)
In the first picture, you inout alfa.water
But I found it from the last picture, at 0.5 s, you only got alpha.water.
I don't know why you want to try alfa.water.


Dear Zhangyan,


Alfa.water helps to determine the position of free surface between two fluids - water and air. The value of alfa.water=.05 represents free surface and that is why I need to extract from OpenFOAM alfa.water by using foam2Columns tool.
Kerim

kerim May 15, 2020 00:28

Quote:

Originally Posted by zhangyan (Post 770519)
Thank you for pointing this out.
It will give me a chance to improve this tool.
I'll check it soon.

Dear Zangyan,


Thank you very much for your post.
I look forward to hear from you.
Kerim

zhangyan May 15, 2020 04:09

Quote:

Originally Posted by kerim (Post 770539)
Dear Zhangyan,


Alfa.water helps to determine the position of free surface between two fluids - water and air. The value of alfa.water=.05 represents free surface and that is why I need to extract from OpenFOAM alfa.water by using foam2Columns tool.
Kerim

Maybe you can try:
Code:

foam2Columns -fields "(alpha.water)
alpha instead of alfa

kerim May 15, 2020 05:47

5 Attachment(s)
Quote:

Originally Posted by zhangyan (Post 770561)
Maybe you can try:
Code:

foam2Columns -fields "(alpha.water)
alpha instead of alfa


Dear Zhangyan,


Right now I have reinstalled ubuntu 16.04.6 LTS 64 bit, OpenFoam 7 and foam2Columns. Than I copied alpha.water from 0 folder and pasted in terminal. After execution of the command foam2Columns -fields "(alpha.water)" I got foam2Columns_alpha.water file I was looking for.

Frankly speaking I don't understand of the reason of my previous mistakes.

Now everything is OK with foam2Columns tool. Please see the attached figures.

Thanks a lot to you. Your help is highly appreciated.
It will be great to expand foam2Columns for volVectorField quantity like velocity.
Kerim

Attachment 77658

Attachment 77659

Attachment 77660

Attachment 77661

Attachment 77662

zhangyan September 8, 2020 12:47

Hi,
Now it supports for volVectorField!
https://github.com/ZhangYanTJU/foam2Columns

Quote:

Originally Posted by kerim (Post 770572)
Dear Zhangyan,


Right now I have reinstalled ubuntu 16.04.6 LTS 64 bit, OpenFoam 7 and foam2Columns. Than I copied alpha.water from 0 folder and pasted in terminal. After execution of the command foam2Columns -fields "(alpha.water)" I got foam2Columns_alpha.water file I was looking for.

Frankly speaking I don't understand of the reason of my previous mistakes.

Now everything is OK with foam2Columns tool. Please see the attached figures.

Thanks a lot to you. Your help is highly appreciated.
It will be great to expand foam2Columns for volVectorField quantity like velocity.
Kerim

Attachment 77658

Attachment 77659

Attachment 77660

Attachment 77661

Attachment 77662


kerim September 9, 2020 01:23

Quote:

Originally Posted by zhangyan (Post 782332)
Hi,
Now it supports for volVectorField!
https://github.com/ZhangYanTJU/foam2Columns

Dear zhangyan

Thanks a lot to you. Your help will be highly appreciated bythe OpenFOAM community.

Bodo1993 November 19, 2020 22:21

Quote:

Originally Posted by zhangyan (Post 782332)
Hi,
Now it supports for volVectorField!
https://github.com/ZhangYanTJU/foam2Columns

Hi zhangyan,
I am wondering if foam2Columns works for OpenFOAM v6. I tried to compile the code with wmake but I got the below error.
Code:

Making dependency list for source file foam2Columns.C
g++ -std=c++11 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3  -DNoRepository -ftemplate-depth-100 -I/opt/openfoam6/src/finiteVolume/lnInclude -I/opt/openfoam6/src/meshTools/lnInclude -I/opt/openfoam6/src/sampling/lnInclude -I/opt/openfoam6/src/lagrangian/basic/lnInclude -IlnInclude -I. -I/opt/openfoam6/src/OpenFOAM/lnInclude -I/opt/openfoam6/src/OSspecific/POSIX/lnInclude  -fPIC -c foam2Columns.C -o Make/linux64GccDPInt32Opt/foam2Columns.o
foam2Columns.C: In function ‘int main(int, char**)’:
foam2Columns.C:109:21: error: ‘fileType’ has not been declared
                    fileType::directory
                    ^~~~~~~~
/opt/openfoam6/wmake/rules/General/transform:25: recipe for target 'Make/linux64GccDPInt32Opt/foam2Columns.o' failed
make: *** [Make/linux64GccDPInt32Opt/foam2Columns.o] Error 1


zhangyan November 21, 2020 13:20

Quote:

Originally Posted by Bodo1993 (Post 788293)
Hi zhangyan,
I am wondering if foam2Columns works for OpenFOAM v6. I tried to compile the code with wmake but I got the below error.
Code:

Making dependency list for source file foam2Columns.C
g++ -std=c++11 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3  -DNoRepository -ftemplate-depth-100 -I/opt/openfoam6/src/finiteVolume/lnInclude -I/opt/openfoam6/src/meshTools/lnInclude -I/opt/openfoam6/src/sampling/lnInclude -I/opt/openfoam6/src/lagrangian/basic/lnInclude -IlnInclude -I. -I/opt/openfoam6/src/OpenFOAM/lnInclude -I/opt/openfoam6/src/OSspecific/POSIX/lnInclude  -fPIC -c foam2Columns.C -o Make/linux64GccDPInt32Opt/foam2Columns.o
foam2Columns.C: In function ‘int main(int, char**)’:
foam2Columns.C:109:21: error: ‘fileType’ has not been declared
                    fileType::directory
                    ^~~~~~~~
/opt/openfoam6/wmake/rules/General/transform:25: recipe for target 'Make/linux64GccDPInt32Opt/foam2Columns.o' failed
make: *** [Make/linux64GccDPInt32Opt/foam2Columns.o] Error 1



Hi Bodo,
You may try to replace
Code:

fileType::directory
with
Code:

fileName::Type::DIRECTORY
.

Bodo1993 November 23, 2020 16:53

Hello zhangyan,
Thanks a lot. It works now.
I have noticed that you also contributed to "conditionalAverage", I am wondering if I can ask you about it here.
Looking forward to hearing from you.

zhangyan November 25, 2020 07:49

Quote:

Originally Posted by Bodo1993 (Post 788620)
Hello zhangyan,
Thanks a lot. It works now.
I have noticed that you also contributed to "conditionalAverage", I am wondering if I can ask you about it here.
Looking forward to hearing from you.

We are open to questions. Please go to the right place.

Bodo1993 November 26, 2020 12:25

Quote:

Originally Posted by zhangyan (Post 788813)
We are open to questions. Please go to the right place.

Thanks. I opened a thread here: https://www.cfd-online.com/Forums/op...tml#post788977

Looking forward to hearing from you.


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