This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

Importing large output files from cluster: Viewing a single frame

0 votes

I am saving my output in XDMF format and some of my simulation outputs take up nearly 90GB, when run for very fine meshes on hundreds of cores. It is not feasible to import files that big from the cluster. Is there a way to view just a single XDMF frame for a certain time step, without importing the whole file? That should tell me if parallel running is not creating garbage and giving me a meaningful output. I am thinking of the following 3 approaches:

  • Saving in pvd format instead of XDMF and then copying only the .vtu and pvtu. for a particular time step. The number of .vtu files in this case will of course be equal to the no. of processors. However, I don't know if .pvd is a good format for parallel processing.

  • Saving XDMF by skipping a few time steps and saving solutions at intervals, but I don't think it would make much of a difference. Moreover, it takes time to get a job accepted for high number of cores and I want to have access to the complete output after checking its correctness using a single frame. I can compress the XDMF though.

  • Is there a way to use the paraview installed in cluster itself? I don't want to use the GUI, because I tried that once and it hangs everything when you load a file that big.

The way I save my output right now is:

  XDMFFile file1(mesh->mpi_comm(), "dispDP1.xdmf");
  XDMFFile file2(mesh->mpi_comm(), "pDP1.xdmf");

  unsigned int step = 0;
  unsigned int steps = 100;

  while (step < steps)
  {
    // First step
    if (near(t, 0.0)){
    } else
    //** Update steps **
    file1.write(*u);
    //**constitutive_update steps**
    file2.write(eps_eq);
    t += dt;
    step++;
  }
asked Sep 29, 2016 by Chaitanya_Raj_Goyal FEniCS User (4,150 points)
edited Sep 29, 2016 by Chaitanya_Raj_Goyal
...