On 2014-01-07 16:01, Nico Schlömer wrote:
If dolfin-convert gets an HDF5 writer, then we should already have gmsh -> h5.


I have written an XML -> HDF5 writer (https://bitbucket.org/garth.wells/dolfin-xml-hdf5-converter). I don't plan to merge it into dolfin-convert for now because dolfin-convert is a mess. The XML -> HDF5 writer has been carefully optimised to be as fast as possible with virtually no memory footprint. It handles files that do not fit into RAM.

Garth


--Nico

On Sat, Jan 4, 2014 at 7:06 PM, Chris Richardson <[email protected]> wrote:
The only issue I can see is the need to do two conversions when starting with e.g. a gmsh format... gmsh -> xml -> h5

I suppose that just raises the need for a more general conversion tool.

Chris

On 3 Jan 2014 21:43, =?ISO-8859-1?Q?Nico_Schl=F6mer?= <[email protected]> wrote:

For what it's worth, as a user I always found the mere existence of
yet another mesh file format confusing. XDMF supports lossless I/O for meshes, so naturally I'm in favor of this approach. (Not sure how well
mesh generators support XDMF, but there certainly is a chance for
better support than the custom XML format.)

--Nico

On Fri, Jan 3, 2014 at 7:27 PM, Garth N. Wells <[email protected]> wrote:
> The handling of XML IO in parallel in DOLFIN is presently inconsistent and 
extremely slow for large files. Moreover, the code is clumsy. Now that we have 
proper parallel IO support via HDF5 (and XDMF) and MPI-IO, I would like to propose 
that XML IO be simplified to be serial only.  Only XML meshes are presently read 
in  a memory scalable fashion. To read meshes in parallel, supporting the below 
two implementations is suggested:
>
> 1. Recommended approach: Use XDMF/HDF5 format. To convert existing meshes:
>     - (simple) If mesh fits into memory, read XML mesh into DOLFIN and use 
DOLFIN to write XDMF file.
>     - (general) Use new dolfin-xml-to-hdf5 Python script to convert XML files 
to XDMF/HDF5. Script uses SAX XML parser, so memory limitations are not a problem 
for large meshes.
>
> 2. Supported approach: DOLFIN reads XML mesh file on one process only and 
distributes mesh to all processes. This will be considerably faster than the 
present parallel implementation, which uses a slow SAX parser, but it is limited 
to problems for which the mesh fits into memory on a process.
>
> Most users will require no code changes but will see a speed-up. For large 
XML files that don’t into memory on one process, HDF5/XDMF should really be used 
because it is orders of magnitude faster for large problems. The proposed change 
means that the XML SAX parser can be removed and libxml will no longer be a DOLFIN 
dependency.
>
> Any objections?
>
> Garth
> _______________________________________________
> fenics mailing list
> [email protected]
> http://fenicsproject.org/mailman/listinfo/fenics
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to