No, but it should be easy to extend if one assumes the same partition
when reading as at the time of writing. Then it will just be a matter
of appropriate naming of the files (append process number).

--
Anders


On Wed, Apr 28, 2010 at 10:21:00AM +0100, Garth N. Wells wrote:
> Does this work in parallel?
>
> Garth
>
> -------- Original Message --------
> Subject: [Branch ~dolfin-core/dolfin/main] Rev 4698: Work on
> extending BinaryFile to handle meshes. Input/output of arrays
> implemented
> Date: Tue, 27 Apr 2010 21:44:21 -0000
> From: [email protected]
> Reply-To: [email protected]
> To: Garth Wells <[email protected]>
>
> ------------------------------------------------------------
> revno: 4698
> committer: Anders Logg <[email protected]>
> branch nick: dolfin-dev
> timestamp: Tue 2010-04-27 23:07:58 +0200
> message:
>   Work on extending BinaryFile to handle meshes. Input/output of
> arrays implemented
>   in common functions (not yet used).
> modified:
>   demo/adaptivity/time-series/cpp/main.cpp
>   dolfin/io/BinaryFile.cpp
>   dolfin/io/BinaryFile.h
>
>

> === modified file 'demo/adaptivity/time-series/cpp/main.cpp'
> --- demo/adaptivity/time-series/cpp/main.cpp  2010-04-03 04:57:11 +0000
> +++ demo/adaptivity/time-series/cpp/main.cpp  2010-04-27 21:07:58 +0000
> @@ -2,7 +2,7 @@
>  // Licensed under the GNU LGPL Version 2.1.
>  //
>  // First added:  2009-11-11
> -// Last changed: 2009-11-11
> +// Last changed: 2010-04-27
>  //
>  // This program demonstrates the use of the TimeSeries
>  // class for storing a series of meshes and vectors.
> @@ -19,7 +19,6 @@
>    // Create a mesh and a vector
>    UnitSquare unitsquare_mesh(2, 2);
>    Mesh mesh(unitsquare_mesh);
> -
>    Vector x;
>
>    // Add a bunch of meshes and vectors to the series
> @@ -34,6 +33,12 @@
>      series.store(new_mesh, t);
>      series.store(x, t);
>
> +    //for (dolfin::uint i = 0; i < x.size(); i++)
> +    //  x.setitem(i, (t + 1.0)*static_cast<double>(i));
> +    for (dolfin::uint i = 0; i < x.size(); i++)
> +      x.setitem(i, 3.0);
> +    info(x, true);
> +
>      mesh = new_mesh;
>      t += 0.2;
>    }
> @@ -42,6 +47,8 @@
>    series.retrieve(mesh, 0.3);
>    series.retrieve(x, 0.3);
>
> +  info(x, true);
> +
>    // Plot mesh
>    plot(mesh);
>
>
> === modified file 'dolfin/io/BinaryFile.cpp'
> --- dolfin/io/BinaryFile.cpp  2010-03-09 23:40:57 +0000
> +++ dolfin/io/BinaryFile.cpp  2010-04-27 21:07:58 +0000
> @@ -2,7 +2,7 @@
>  // Licensed under the GNU LGPL Version 2.1.
>  //
>  // First added:  2009-11-11
> -// Last changed: 2010-02-10
> +// Last changed: 2010-04-27
>
>  #include <dolfin/log/log.h>
>  #include <istream>
> @@ -115,3 +115,44 @@
>    warning("Writing mesh in binary format not implemented.");
>  }
>  
> //-----------------------------------------------------------------------------
> +dolfin::uint BinaryFile::read_uint(std::ifstream& file) const
> +{
> +  uint value = 0;
> +  file.read((char*) &value, sizeof(uint));
> +  return value;
> +}
> +//-----------------------------------------------------------------------------
> +void BinaryFile::read_array(uint n, uint* values,
> +                            std::ifstream& file) const
> +{
> +  for (uint i = 0; i < n; ++i)
> +    file.read((char*) (values + i), sizeof(uint));
> +}
> +//-----------------------------------------------------------------------------
> +void BinaryFile::read_array(uint n, double* values,
> +                            std::ifstream& file) const
> +{
> +  for (uint i = 0; i < n; ++i)
> +    file.read((char*) (values + i), sizeof(double));
> +}
> +//-----------------------------------------------------------------------------
> +void BinaryFile::write_uint(uint value,
> +                            std::ofstream& file) const
> +{
> +  file.write((char*) &value, sizeof(uint));
> +}
> +//-----------------------------------------------------------------------------
> +void BinaryFile::write_array(uint n, const uint* values,
> +                             std::ofstream& file) const
> +{
> +  for (uint i = 0; i < n; ++i)
> +    file.write((char*) &values[i], sizeof(uint));
> +}
> +//-----------------------------------------------------------------------------
> +void BinaryFile::write_array(uint n, const double* values,
> +                             std::ofstream& file) const
> +{
> +  for (uint i = 0; i < n; ++i)
> +    file.write((char*) &values[i], sizeof(double));
> +}
> +//-----------------------------------------------------------------------------
>
> === modified file 'dolfin/io/BinaryFile.h'
> --- dolfin/io/BinaryFile.h    2010-02-10 18:13:32 +0000
> +++ dolfin/io/BinaryFile.h    2010-04-27 21:07:58 +0000
> @@ -2,7 +2,7 @@
>  // Licensed under the GNU LGPL Version 2.1.
>  //
>  // First added:  2009-11-11
> -// Last changed: 2010-02-10
> +// Last changed: 2010-04-27
>
>  #ifndef __BINARY_FILE_H
>  #define __BINARY_FILE_H
> @@ -56,6 +56,26 @@
>      /// Write mesh
>      void operator<< (const Mesh& mesh);
>
> +  private:
> +
> +    // Read uint
> +    uint read_uint(std::ifstream& file) const;
> +
> +    // Read array (uint)
> +    void read_array(uint n, uint* values, std::ifstream& file) const;
> +
> +    // Read array (double)
> +    void read_array(uint n, double* values, std::ifstream& file) const;
> +
> +    // Write uint
> +    void write_uint(uint value, std::ofstream& file) const;
> +
> +    // Write array (uint)
> +    void write_array(uint n, const uint* values, std::ofstream& file) const;
> +
> +    // Write array (double)
> +    void write_array(uint n, const double* values, std::ofstream& file) 
> const;
> +
>    };
>
>  }
>
>

> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~dolfin
> More help   : https://help.launchpad.net/ListHelp

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Mailing list: https://launchpad.net/~dolfin
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~dolfin
More help   : https://help.launchpad.net/ListHelp

Reply via email to