CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   ParaView (https://www.cfd-online.com/Forums/paraview/)
-   -   [OpenFOAM] How to load all <case>/surfaces/*/*.vtk at once into Paraview (https://www.cfd-online.com/Forums/paraview/92009-how-load-all-case-surfaces-vtk-once-into-paraview.html)

holodeck10 August 30, 2011 04:40

How to load all <case>/surfaces/*/*.vtk at once into Paraview
 
Dear Foamers,

I am still new to OpenFoam and did not discover full functionallities. So I hope the question is easy for you guys.

I am looking for a fast way to extract slices from interFoam results (total size: ~20-50GB) and calculate fluxes for these areas over time.

The slices are located vertically somwhere inside the domain. Their extend is smaller than the whole lengths or widths of the domain. Cells have various sizes (I used blockMesh with simpleGrading).

- A slow way would be using foamToVTK, loading the results into Paraview, cutting off all parts of the domain which are beside the length of the desired slice, apply the slice filter, use the mesh quality filter to caluclate areas, calculate area*u-component*alpha1, export it to csv and then plot/analyze it using whatever.

- I would still let Paraview do the area/flux calculation, because I don't know an alternative.

- I meanwhile discovered some openFoam tools such as "cellSet", "cellsToZones" and "sample", but I got stucked, when I want to load the aforementioned "slices" which are now surfaces. I have all data, which I want to load into paraview in vtk files, but they are lying in seperate files for each time step and I have no idea how to load them all at once. I also tried various formats using "sample", including foamFile, but don't succeeded.

After that I have 3 questions:

1) Is there a better way to get my fluxes at these slices/surfaces?
2) If not, how can I load all vtk files of the surfaces directory into Paraview?
3) Is there a way to extract directly cell sizes from interFoam results, which can be used for flux calculation?

Thanks for any suggestion!

Best regards
Stefan

Bernhard September 9, 2011 02:11

I don't know if it answers all your questions or not, but I sample the desired slices during runtime with the sampling library. Inside the functions( ); you can put something like this:
Code:

    sliceCentre
    {
        type            surfaces;
        functionObjectLibs
        (
            "libsampling.so"
        );
        outputControl  outputTime;
        outputInterval  1;
        surfaceFormat  vtk;
        fields
        (
            U
            alpha1
        );
        surfaces
        (
            sliceCentre
            {
                type            plane;
                basePoint      (0.0 0.0 0.0);
                normalVector    (0.0 0.0 1.0);
                interpolate    true;
            //    regularise      false;
            }
        );
        interpolationScheme cell;
    }

If you run paraview (in batch mode), you can easily loop over all this output with a python script.

holodeck10 September 9, 2011 03:51

Dear Bernhard,

thanks for your reply. It definitely rises my possibilities to treat this problem. So far, I arrived at the following stage:

- changed the source code in interFoam.C and createFields.H, so that it writes also cellsize. This prevents me from using Paraview, which is a bit slow for my purposes.

- used cellSet, setsToZone and sample in a shell script

That works quite well and I will probably change the source code further so that it calculates fluxes directly.

For all upcoming simulations I would have to extend your functions() section with cellSet and setsToZone. Do you know what is faster, doing cellSet, setsToZone and sample while simulation runs or during post-processing?

Cheers
Stefan

Bernhard September 9, 2011 04:01

For your last question, I don't know which method is faster and whether it is a significant part compared to the total simulation time. However, if you sample during runtime, it may be sufficient to write less data, which also can be an advantage.

holodeck10 September 9, 2011 04:40

True. Thank you for the comment!

Have a good day!
Stefan

canopus June 3, 2015 05:30

Quote:

I have all data, which I want to load into paraview in vtk files, but they are lying in seperate files for each time step and I have no idea how to load them all at once.

How can I load all vtk files of the surfaces directory into Paraview?

Nucleophobe August 22, 2015 13:00

Script to make VTK series readable in Paraview
 
Quote:

Originally Posted by canopus (Post 548654)

How can I load all vtk files of the surfaces directory into Paraview?

Canopus,

Paraview can read a sequence of VTK files, but the VTK filenames must end in an incrementing integer value (e.g., 1,2,3... or 1000,1001,1002...).
See:
http://www.paraview.org/Wiki/Animati...TK_file_series

I use a bash script to rename the VTK files. You'll need to tailor this to your application, but something like:
Code:

#!/bin/bash
count=0
for i in $(ls surfaces); do
    echo "Folder name:" $i
    echo "VTK number:" $count
    cp surfaces/$i/U_interpolatedPlane.vtk VTK_for_Paraview/U_$count.vtk
    let "count++"
done

Hope that helps.
-Nuc

Flowkersma September 15, 2015 07:18

Quote:

How can I load all vtk files of the surfaces directory into Paraview?
You can also load the files with Python. First open one of your surface files with Paraview then open the Python Shell inside Paraview and write

Code:

import os
directory = '/path/to/directory/'

reader = GetActiveSource()
files = [directory + file for file in os.listdir(directory)]

# sort here the files if the order is important
files = sorted(files)

reader.FileNames = files

Now try changing the timestep.

-Mikko

AqeelAhmed168 November 22, 2019 17:52

How can I load all vtk files of the surfaces directory into Paraview?
 
In version 5 and onwards run

foamSequenceVTKFiles

it will automatically put all the vtks from postProcessing directory in a new directory by default named "sequencedVTK"


All times are GMT -4. The time now is 13:53.