Read multiple solution of a cgns file with paraview
Dear All,
I am trying to read a cgns file which has multiple solutions. Tecplot can read it with no problems by simply selecting the relevant zone. But both paraview and VisIt can only read the first solution set. Is there any way to read all the solution fields of the cgns file? Regards, Christos |
Quote:
Did you find a solution to this problem? I bumped into the same problem and can't seem to find the solution... Cheers, Felipe |
Greetings to all!
@Felipe: If you can provide a small example file, I can have a look into this. And knowing what application was used to generate the CGNS data, would also make it easier to diagnose what can be done. Nonetheless, I'm guessing that with ParaView, it's best to export each time snapshot into independent files, and then open the group. For example, export the CGNS data into these files: Code:
data_001.cgns It could also be something like this: Code:
data_000.cgns Bruno |
Quote:
I am working together with Felipe on that problem, we created one master cgns file that contains the grid coordinates and connectivity array (unstructured, hexa-8 mesh) and then we have created several flow solutions which link to the master cgns file (since it is an unsteady DNS simulation, we wanted to split the files to make them handable). this is all done in fortran. you can have a look here: www.siteless.de/CGNS.tar.gz it contains the master cgns file, 3 example flow solutions and the fortran subroutine how it is created (master and flow solution). the idea is to link from the master file to the flow solution (not the other way around since the timesteps are also stored in the master cgns file and everything should be available in that file) we would be glad if you have any ideas to what the problem could be kind regards, tom |
Hi Tom,
I've done some research on the code that ParaView uses and the critical class is "avtCGNSFileFormat", which is part of the VistIt-Bridge, located in the folder "Utilities/VisItBridge/databases/CGNS" in ParaView's source code. The code is maintained outside of ParaView, for which there is a mirror here: https://github.com/robertmaynard/Vis...databases/CGNS This VisIt Bridge is roughly explained here: http://www.paraview.org/Wiki/VisIt_Database_Bridge The most recent version of this source code is at VisIt's repository: http://portal.nersc.gov/svn/visit/tr...atabases/CGNS/ - but it didn't change much. The problem is that this class (whichever version) cannot open more than one file at a time and it does not have a way to interconnect between several instances of the same class. The way I see it, you've got a few ways to address this issue:
Best regards, Bruno |
Thanks for looking into that! However, we failed one step before that, when actually creating the links inside the file. Linking from the flow solution data to the geometry works fine but linking from the geometry to the flow solution failed. Since paraview seems to support cgns links (when flow solution links to geometry, i.e. the flow solution file contains only the flow solution and the geometry is in the linked, separate, file) I suspected that the other way around shouldn't give any problems, but as i've said, we've failed at creating the actual links. And since this is all done for DNS simulation, writing the grid at every time step (we are talking about ~10^8 cells) is not feasible.
But your information are non the less very valuable, I was running into some VisIt compatibility problems before, seems to be because of what you just mentioned. |
Hi Tom,
Mmm... then I suggest that you have a look into XDMF (XML + HDF5): http://en.wikipedia.org/wiki/XDMF Of course you could also try and create a new XDMF format that relies on CGNS for heavy data, but... someone did try this back in 2006, where CGNS was using HDF5: http://www.paraview.org/pipermail/pa...ry/002445.html :eek: but this is waaaay too messy... Best regards, Bruno |
CGNS and Paraview
Hi all,
I'm having the same problem reading the data with Paraview. I have several cgns files which were created using CGNS 3.2.1 cgns_1.cgns cgns_2.cgns cgns_3.cgns ... cgns_500.cgns When I try to load them as a group, Paraview only loads the first time, and is not able to advance in time using the time controls. I get the following message from PV: *** Warning:The file being read is more recent that the CGNS library used *** Has anyone found a way to fix this issue? Thanks, Tony |
Hi Tony,
Quote:
In your case, a few questions:
Best regards, Bruno |
Hi Bruno,
Thanks for your reply. 1. Each file has both mesh and data. 2. Each file has one time frame. I'm trying now to write the time history onto the CGNS file and have only one file with all the time history. I'll report back soon. Thanks, Tony |
Quote:
Code:
c--write time dependence |
cgns_to_vtk
Hi all,
So after spending too much time on this I've decided the best way to go is the following. I use the utility cgns_to_vtk to convert the files to VTK and that should load them into paraview without too much trouble. I use the following bash script to go through all the files and convert them. Code:
for file in ./*.cgns Cheers, Tony |
Seeking help with similar issue
Hey Guys,
I observed that the discussion here seemed relevant to my problem. So sharing it here. I am solving a 2D hyperbolic PDE, which gives me a solution in 'x' and 'y' direction for each node on the mesh, for each time step. Therefore, if I freeze the time step, I have a solution vector in 'x', and 'y', for the whole mesh, i.e., a single value in both 'x' and 'y' direction, for each node on mesh. It looks like this when the solution is initially viewed in Paraview at a certain time step. Observe any one frame of the below. http://i66.tinypic.com/8y8c9j.png You can notice the 'x' and 'y' solution for all points (nodes). The no. of rows is the total no. of nodes on mesh. Then, I convert this vtk file to .csv, and import it to MATLAB, where I run some post processing on the 'x' and 'y' solution vectors. Now, I have replaced the originally imported solution vectors 'x' and 'y', with some new values. I wanted to take back these new solutions to Paraview again for plotting. So I used a tool called vtktrisurf in MATLAB. The problem was that this tool only takes 1 solution vector, i.e., I can either give the 'x' solution vector or 'y'. So, I used pythagoras theorem on respective elements of 'x' and 'y' solutions, to generate a single vector. The vtk was created, and the simulation in PARAVIEW was exactly what I was hoping to see. However, when I use pythagoras theorem, I convert all negative components of the solution to positive. It will show me what I want to see when there is no scalar warping. However, when I warp it with scalar in Paraview, it shows the entire profile in positive values. That is not actually true, because there were negative values in the solution. Long story short, how can I view the correct simulation. Maybe the answer goes back to the point where I convert my matrix in MATLAB to vtk. I also have the option of creating a separate vtk for 'x' solution and separate for 'y'. In that case, is there a way to superpose them in Paraview to view the correct profile? How to join them to get a single datum? If you look at the image below (also attached), you see the 'group solution', 'x - solution, 'y - solution', and the original solution. So, now from here, how can I join the 'x' and 'y' solution and view something like the original solution? I would really appreciate your time and help! http://i64.tinypic.com/2ryq39w.png Thanks a lot! Chaitanya |
I think the paraview mailing list (http://www.paraview.org/mailing-lists/) is a better place to ask for a solution. Are you using this script here: https://uk.mathworks.com/matlabcentr...t/vtktrisurf.m ? I'm not familiar with the VTK format but wouldn't it be easiest to simply modify this file to suit your needs (i.e. output the vector/scalars you want in the first place)?
|
RE
Thanks for your reply Tom! Yes, that is exactly the tool I m using. As I described the problem in my question, could you kindly suggest how would you modify the file? I can send you a sample .csv, if you could spare some time.
Thanks a lot for your time! Chaitanya |
In the most recent version 5.4.1, Paraview supports loading of multiple CGNS files at a time. Paraview "groups" cgns files with the same prefix but different numbering. By Clicking File > Open... you are able to open the whole group or single files. In my case, I have cgns files from a transient run of Ansys CFX. It was not necessary to also import the *_mesh.cgns file from Ansys.
|
All times are GMT -4. The time now is 17:31. |