CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   ParaView (https://www.cfd-online.com/Forums/paraview/)
-   -   [OpenFOAM] plot cp on airfoils (https://www.cfd-online.com/Forums/paraview/116922-plot-cp-airfoils.html)

s.m April 28, 2013 04:55

plot cp on airfoils
 
3 Attachment(s)
hi everyone,
i wana plot the pressureCoeffs on NACA4412 airfoil, i resd in the forum that i can use PlotOnIntersectionCurves in paraview, my question is that, how can i use PlotOnIntersectionCurves in paraview? i don't know what normal i should use, x y or z ? i put my VTK file of the airfoil and the forceCoeffs on it in the following, would you please please give me some advice to use PlotOnIntersectionCurves? thank you very very much

s.m April 28, 2013 08:53

plot cp on airfoils
 
2 Attachment(s)
Quote:

Originally Posted by musahossein (Post 421653)
Many thanks for your explanation. Now I get the picture.

hi musahossein and wyldckat
i am working on airfoils and i need to plot the "pressureCoeffs" on the airfoil. as you said i add these lines to my controlDict and i get the result with two format vtk and raw for the latestTime,i'll put them in attachment, how should i plot this result???
please help me:)
wallPressure
{
type surfaces;
functionObjectLibs ("libsampling.so");
surfaceFormat raw; // vtk;
outputControl outputTime;
interpolationScheme cellPoint;

fields (
p
);
surfaces
(
airfoil_airfoil
{
type patch;
patches ("airfoil.*");
interpolate true;
triangulate false;
}

s.m April 28, 2013 10:36

plot cp on airfoils
 
hi Dear Foamers
anybody isn't here to say me how can i plot "pressureCoeffs" on a airfoil?????
i am tired of looking for the answer of this question everywhere:(
i found many way to plot this figure but none of didn't give me a final result.
please please help me,
thank you very much:)

wyldckat April 28, 2013 13:28

1 Attachment(s)
Hi Saeideh Mohamadi,

I moved the second post from http://www.cfd-online.com/Forums/ope...ntroldict.html and the first one from the ParaView forum, because you've opened this new thread and it made more sense to keep these questions together.

  1. Start ParaView and open the VTK file you attached.
  2. Select the item "p_airfoil_airfoil.vtk" on the "Pipeline Browser".
  3. Then on the menu, choose "Filters -> Alphabetical -> Plot On Intersection Curves".
  4. Click on the "Y Normal" button and then on the "Apply" button.
  5. Attached is an example of what it looks like.
Best regards,
Bruno

s.m April 29, 2013 13:16

Quote:

Originally Posted by wyldckat (Post 423664)
Hi Saeideh Mohamadi,

I moved the second post from http://www.cfd-online.com/Forums/ope...ntroldict.html and the first one from the ParaView forum, because you've opened this new thread and it made more sense to keep these questions together.

  1. Start ParaView and open the VTK file you attached.
  2. Select the item "p_airfoil_airfoil.vtk" on the "Pipeline Browser".
  3. Then on the menu, choose "Filters -> Alphabetical -> Plot On Intersection Curves".
  4. Click on the "Y Normal" button and then on the "Apply" button.
  5. Attached is an example of what it looks like.
Best regards,
Bruno

hi wyldckat, thanks a lot, i did what you said me, and i get a figure similar to your fingure.
i have a question from the figure that is resulted from "Plot On Intersection Curves" in the paraview, what is the value of x axis stand for?
is it chord length? i mean your chord length is 2.5 that the x axis show us 2.5?
i want comparison my result with experimental result, so i need to figure that "y axis" is "pressureCoeffs" and the "x axis" is e.g "x/chord" if the chord is along the x axis.
thanks again for giving me advise dear wyldcka:)

wyldckat April 29, 2013 18:28

Hi Saeideh Mohamadi,

Sorry, I forgot to mention that you can configure in the tab "Display", the values to be plotted on the graph. There you can choose what values to be used for X and what values to be used for Y.

As for calculating specific values, such as the "x/chord", you'll need to first apply the filter "Calculator". In other words:
  1. Open the VTK file.
  2. Apply the filter "Calculator" and specify that you want to calculate "CoordsX/2.5".
  3. Then apply the filter "Plot On Intersection Curves".
For more information about the "Calculator" filter: http://www.paraview.org/Wiki/ParaVie...ide/Calculator

Best regards,
Bruno

s.m April 30, 2013 10:43

Quote:

Originally Posted by wyldckat (Post 424022)
Hi Saeideh Mohamadi,

Sorry, I forgot to mention that you can configure in the tab "Display", the values to be plotted on the graph. There you can choose what values to be used for X and what values to be used for Y.

As for calculating specific values, such as the "x/chord", you'll need to first apply the filter "Calculator". In other words:
  1. Open the VTK file.
  2. Apply the filter "Calculator" and specify that you want to calculate "CoordsX/2.5".
  3. Then apply the filter "Plot On Intersection Curves".
For more information about the "Calculator" filter: http://www.paraview.org/Wiki/ParaVie...ide/Calculator

Best regards,
Bruno

hi Bruno, thank you very much for kind guiding us:)

i read in a forum; the pressure value that openFoam gives us after finishing the analysis, is "p/rho" not only "p", is it right?
now i have a question,
as i solve the incompressible flow over an airfoil, so the pressure that i give after finishing the analysis is "gauge pressure", therefore the theoretical formula for cp that is
" cp=(p-pinf)/(0.5*rho*Uinlet^2) " is reduced for my analysis to
" cp=(p guage)/(0.5*Uinlet^2) ?
i mean that for using the calculator that is in the paraview, i should write
" p/0.5*Uinlet^2" ?
your answer really help me, thanks again Bruno.

wyldckat April 30, 2013 18:52

Hi Saeideh,

Yes, in incompressible solvers the "p" field is actually "pressure/rho" and it is relative to the global pressure, so basically it is "pressure gauge / rho" as you wrote.

And yes, it makes perfect sense the symbolic calculation you've made... although you forgot the parenthesis on the last equation:
Code:

p/(0.5*Uinlet^2)
Best regards,
Bruno

s.m May 1, 2013 13:09

Quote:

Originally Posted by wyldckat (Post 424289)
Hi Saeideh,

Yes, in incompressible solvers the "p" field is actually "pressure/rho" and it is relative to the global pressure, so basically it is "pressure gauge / rho" as you wrote.

And yes, it makes perfect sense the symbolic calculation you've made... although you forgot the parenthesis on the last equation:
Code:

p/(0.5*Uinlet^2)
Best regards,
Bruno

tank you very very much Dear Bruno:)

Tobias Adam December 3, 2013 10:21

plot cp on airfoils
 
Hello

I tried to follow the instructions of this thread.

Poorely I get an error-message when I use Saeideh MohamadiŽs code for the wallPressure function.
The Run-time Post-processing code:
Code:

wallPressure
      {
        type surfaces;
        functionObjectLibs ("libsampling.so");
        surfaceFormat vtk; // raw;
        outputControl timeStep;
        outputInterval 2;
        interpolationScheme cellPoint;

        fields (p);
      surfaces (BLADE
        {
          type patch;
      patches ("BLADE");
        interpolate true;
        triangulate false;
      } ); }

The error-message:
Code:

--> FOAM FATAL ERROR:
More than one patch accessing the same transform but not of the same sign.
patch:SYM1 transform:0 sign:1  current transforms:(1 0 0)

    From function Foam::label Foam::globalIndexAndTransform::addToTransformIndex
(
const label,
const label,
const bool
) const

    in file lnInclude/globalIndexAndTransformI.H at line 240.

FOAM exiting

The error message refers to one of my periodic boundaries "SYM1"
I get the same error message when I use foamToVTK. So I wonder how to get the surface-information of the airfoil!

My questions now are:
1. How can I make wallpressure work or anyhow get information of the surface-pressure, or if the next one is easier to solve
2. Is there another possibility to plot cp on airfoils

Thank you very much

Best regards Tobi

Tobias Adam December 11, 2013 11:05

Next problem to be solved
 
Hey
I solved my problem as I did not do the steps with the VTK-file, but with my normal Foam-file.
To be sure to get the data of the airfoil I only activated the mesh-region "BLADE" in the mesh-region window.
I generated Values for cp with the calculator filter and did the Plot On Intersection Curves as described above.

Poorely I still donŽt know how to rescale the x-axis, so that I get x/chord-length ( y/chord-length for my case).
Furthermore IŽd like to plot the graphs for the suction- and pressure-side separately (in one diagram).
Is there any possibility to do so?

Best regards Tobi

wyldckat January 5, 2014 16:38

3 Attachment(s)
Greetings Tobias,

Quote:

Originally Posted by Tobias Adam (Post 465940)
Poorely I still donŽt know how to rescale the x-axis, so that I get x/chord-length ( y/chord-length for my case).
Furthermore IŽd like to plot the graphs for the suction- and pressure-side separately (in one diagram).
Is there any possibility to do so?

In theory:
  1. Use the calculator to calculate the position over X by the chord value, as shown in the first attachment.
  2. In the second attachment is shown how to configure the first plot.
  3. In the third attachment is shown how to configure the second plot. You can rename the name for the legend. Simply double click on the name under the column "Legend Name".
Best regards,
Bruno

Tobias Adam January 15, 2014 09:18

Hello everyone :-)

Thank you Bruno for your help! I still didnŽt achieve to seperate the two plots, but nevertheless the plot looks quite good.

IŽve got one last question to this topic:

Is there a possibility to get the data arrays, which are used for the plot, as coupled point data in a data sheet with two rows? One row for the cp and one for the y/chord?
IŽd like to use it in a calculator program like excel to compare my cp values with values from older simulations.

Thanks for your help!

Best regard Tobias :-)

wyldckat January 16, 2014 15:57

Hi Tobias,

Quote:

Originally Posted by Tobias Adam (Post 470146)
Is there a possibility to get the data arrays, which are used for the plot, as coupled point data in a data sheet with two rows? One row for the cp and one for the y/chord?
IŽd like to use it in a calculator program like excel to compare my cp values with values from older simulations.

Have you tried:
  1. Select the plot data entry on the "Pipeline Browser", respective to the plot you are seeing.
  2. Menu -> File -> Save Data
  3. Save as ".csv"
  4. Open the CSV file in Excel or Open/LibreOffice Calc.
Best regards,
Bruno

Tobias Adam January 17, 2014 08:18

Hi Bruno,

Thanks again for your advice, it helped me a lot!
IŽm sorry for making demands on your time! This problem was realy easy to solve!

Kind regards,
Tobi

Alhasan June 9, 2015 12:37

Dear Bruno,

I am stuck in one such similar Cp problems, I want to calculate the Lift and Drag from Cp of my airfoil. But my airfoil is one single patch. is there anyway to spererate it into upper and lower patch ? and extract Cp Seperately for upper and lower surfaces. I cant do this in the meshing software since it is ICEM and it take association as one single patch. so the entire airfoil is one patch.

I want to extract the data for upper and lower surface of the airfoil seperately, but when I do it using Surface Extract it comes in its own format and I am not able to isolate the upper and lower surface seperately for post processing

Any suggestion,
Thanks for your time and Effort,
Hasan K.J

wyldckat June 12, 2015 19:12

Quick answer: http://www.cfd-online.com/Forums/ope...tml#post392721 post #9

wyldckat July 25, 2015 15:10

Greetings to all!

I was asked this week via PM about how to open VTK files that were generated with sample. Since this post was referenced in the PM, I'll add the steps I've taken for diagnosing the problem so that all can access this information.

When we sample data with sample or a sampling function object and if the data is saved in VTK format, e.g.:
Code:

setFormat vtk;
Let's use a practical example. The tutorial "heatTransfer/buoyantSimpleFoam/buoyantCavity" from OpenFOAM 2.3.x is a good example of how to use the utility sample... a bit of a strange example, but it's a good one nonetheless.
If we run the script "./Allrun" for that tutorial (make sure you're using your own copy of the original tutorial, see chapter 2 from the OpenFOAM User Guide), it will generate the folder:
Code:

postProcessing/sets/1000/
In that folder you will find several files with the extension ".xy", e.g. "y0.1_T.xy".

Now, for saving the results to VTK, instead of raw, edit the file "system/sampleDict" and change the line:
Code:

setFormat raw;
to:
Code:

setFormat vtk;
Save and close the file.

Now run:
Code:

sample -latestTime
In the folder "postProcessing/sets/1000/" you should now be able to find several ".vtk" files. Now run:
Code:

paraview
You can also run paraFoam or use a ParaView window that is already open. The reason why I'm stating that you should run paraview, is for making sure you don't get confused with what you're looking for.

Then:
  1. Use the menu "File -> Open" and open the file "postProcessing/sets/1000/y0.1_T.vtk".
  2. Click on the "Apply" button.
  3. With the entry "y0.1_T.vtk" selected in the Pipeline Browser, go to the menu "Filters -> Alphabetical -> Plot Data".
  4. Click on the "Apply" button once again.
  5. Now you should be able to see the plot for the values.
Anything beyond this is left to you, who is reading this, to test things on your own ;)



Best regards,
Bruno

CrisMoreira July 25, 2015 17:03

Thank you Bruno.

It worked for me. :)

Is there a way to see, in ParaView, the position of the gauges?

Regards,

Cristina

wyldckat July 25, 2015 17:15

1 Attachment(s)
Hi Cristina,

Quote:

Originally Posted by CrisMoreira (Post 556978)
Is there a way to see, in ParaView, the position of the gauges?

Do you mean the legends (namely the dimensioned colour bars)? If so, you can move then with the mouse just by click and drag... mmm, at least in the 3D display. For 2D plots, see the attached image (it's for ParaView 4.1.0).

If this isn't what you meant, please provide an image that shows what you're referring to.

Best regards,
Bruno


All times are GMT -4. The time now is 21:12.