This will cause a problem on 32-bit systems where std::size_t is a typedef for unsigned int. The use of long unsigned int was deliberate.
Garth ---------- Forwarded message ---------- From: <nore...@launchpad.net> Date: 21 February 2013 19:38 Subject: [Branch ~dolfin-core/dolfin/trunk] Rev 7462: Changed unsigned long int to std::size_t in File interface fixing To: Garth Wells <gn...@cam.ac.uk> ------------------------------------------------------------ revno: 7462 committer: Johan Hake <hake....@gmail.com> branch nick: work-trunk timestamp: Thu 2013-02-21 20:35:38 +0100 message: Changed unsigned long int to std::size_t in File interface fixing problem with outputting MeshFunction<std::size_t> to file modified: dolfin/io/GenericFile.cpp dolfin/io/GenericFile.h dolfin/io/HDF5Interface.h dolfin/io/VTKFile.cpp dolfin/io/VTKFile.h dolfin/io/XDMFFile.cpp dolfin/io/XDMFFile.h dolfin/io/XMLFile.h dolfin/swig/io/pre.i test/unit/io/python/XDMF.py -- lp:dolfin https://code.launchpad.net/~dolfin-core/dolfin/trunk Your team DOLFIN Core Team is subscribed to branch lp:dolfin. To unsubscribe from this branch go to https://code.launchpad.net/~dolfin-core/dolfin/trunk/+edit-subscription === modified file 'dolfin/io/GenericFile.cpp' --- dolfin/io/GenericFile.cpp 2012-12-04 20:34:24 +0000 +++ dolfin/io/GenericFile.cpp 2013-02-21 19:35:38 +0000 @@ -73,9 +73,9 @@ read_not_impl("MeshFunction<int>"); } //----------------------------------------------------------------------------- -void GenericFile::operator>> (MeshFunction<unsigned long int>& mesh_function) +void GenericFile::operator>> (MeshFunction<std::size_t>& mesh_function) { - read_not_impl("MeshFunction<unsigned long int>"); + read_not_impl("MeshFunction<std::size_t>"); } //----------------------------------------------------------------------------- void GenericFile::operator>> (MeshFunction<unsigned int>& mesh_function) @@ -98,9 +98,9 @@ read_not_impl("MeshValueCollection<int>"); } //----------------------------------------------------------------------------- -void GenericFile::operator>> (MeshValueCollection<unsigned long int>& mesh_markers) +void GenericFile::operator>> (MeshValueCollection<std::size_t>& mesh_markers) { - read_not_impl("MeshValueCollection<unsigned long int>"); + read_not_impl("MeshValueCollection<std::size_t>"); } //----------------------------------------------------------------------------- void GenericFile::operator>> (MeshValueCollection<unsigned int>& mesh_markers) @@ -202,10 +202,9 @@ { write_not_impl("MeshFunction<int>"); } -//----------------------------------------------------------------------------- -void GenericFile::operator<< (const MeshFunction<unsigned long int>& mesh_function) +void GenericFile::operator<< (const MeshFunction<std::size_t>& mesh_function) { - write_not_impl("MeshFunction<unsigned long int>"); + write_not_impl("MeshFunction<std::size_t>"); } //----------------------------------------------------------------------------- void GenericFile::operator<< (const MeshFunction<unsigned int>& mesh_function) @@ -228,9 +227,9 @@ write_not_impl("MeshValueCollection<int>"); } //----------------------------------------------------------------------------- -void GenericFile::operator<< (const MeshValueCollection<unsigned long int>& mesh_markers) +void GenericFile::operator<< (const MeshValueCollection<std::size_t>& mesh_markers) { - write_not_impl("MeshValueCollection<unsigned long int>"); + write_not_impl("MeshValueCollection<std::size_t>"); } //----------------------------------------------------------------------------- void GenericFile::operator<< (const MeshValueCollection<unsigned int>& mesh_markers) === modified file 'dolfin/io/GenericFile.h' --- dolfin/io/GenericFile.h 2012-12-19 17:29:40 +0000 +++ dolfin/io/GenericFile.h 2013-02-21 19:35:38 +0000 @@ -59,12 +59,12 @@ virtual void operator>> (GenericDofMap& dofmap); virtual void operator>> (LocalMeshData& data); virtual void operator>> (MeshFunction<int>& mesh_function); - virtual void operator>> (MeshFunction<unsigned long int>& mesh_function); + virtual void operator>> (MeshFunction<std::size_t>& mesh_function); virtual void operator>> (MeshFunction<unsigned int>& mesh_function); virtual void operator>> (MeshFunction<double>& mesh_function); virtual void operator>> (MeshFunction<bool>& mesh_function); virtual void operator>> (MeshValueCollection<int>& mesh_markers); - virtual void operator>> (MeshValueCollection<unsigned long int>& mesh_markers); + virtual void operator>> (MeshValueCollection<std::size_t>& mesh_markers); virtual void operator>> (MeshValueCollection<unsigned int>& mesh_markers); virtual void operator>> (MeshValueCollection<double>& mesh_markers); virtual void operator>> (MeshValueCollection<bool>& mesh_markers); @@ -87,12 +87,12 @@ virtual void operator<< (const GenericDofMap& dofmap); virtual void operator<< (const LocalMeshData& data); virtual void operator<< (const MeshFunction<int>& mesh_function); - virtual void operator<< (const MeshFunction<unsigned long int>& mesh_function); + virtual void operator<< (const MeshFunction<std::size_t>& mesh_function); virtual void operator<< (const MeshFunction<unsigned int>& mesh_function); virtual void operator<< (const MeshFunction<double>& mesh_function); virtual void operator<< (const MeshFunction<bool>& mesh_function); virtual void operator<< (const MeshValueCollection<int>& mesh_markers); - virtual void operator<< (const MeshValueCollection<unsigned long int>& mesh_markers); + virtual void operator<< (const MeshValueCollection<std::size_t>& mesh_markers); virtual void operator<< (const MeshValueCollection<unsigned int>& mesh_markers); virtual void operator<< (const MeshValueCollection<double>& mesh_markers); virtual void operator<< (const MeshValueCollection<bool>& mesh_markers); === modified file 'dolfin/io/HDF5Interface.h' --- dolfin/io/HDF5Interface.h 2012-12-19 17:29:40 +0000 +++ dolfin/io/HDF5Interface.h 2013-02-21 19:35:38 +0000 @@ -458,7 +458,7 @@ template<> inline void HDF5Interface::add_attribute_value(const hid_t dset_id, const std::string attribute_name, - const std::vector<unsigned long int>& attribute_value) + const std::vector<std::size_t>& attribute_value) { // Create a vector dataspace @@ -526,7 +526,7 @@ template<> inline void HDF5Interface::get_attribute_value(const hid_t attr_type, const hid_t attr_id, - unsigned long int& attribute_value) + std::size_t& attribute_value) { // FIXME: more complete check of type dolfin_assert(H5Tget_class(attr_type) == H5T_INTEGER); @@ -588,7 +588,7 @@ template<> inline void HDF5Interface::get_attribute_value(const hid_t attr_type, const hid_t attr_id, - std::vector<unsigned long int>& attribute_value) + std::vector<std::size_t>& attribute_value) { // FIXME: more complete check of type dolfin_assert(H5Tget_class(attr_type) == H5T_INTEGER); @@ -622,7 +622,7 @@ { return H5T_NATIVE_UINT; } //----------------------------------------------------------------------------- template <> - inline hid_t HDF5Interface::hdf5_type<unsigned long int>() + inline hid_t HDF5Interface::hdf5_type<std::size_t>() { return H5T_NATIVE_ULONG; } //----------------------------------------------------------------------------- === modified file 'dolfin/io/VTKFile.cpp' --- dolfin/io/VTKFile.cpp 2013-02-05 19:34:25 +0000 +++ dolfin/io/VTKFile.cpp 2013-02-21 19:35:38 +0000 @@ -128,7 +128,7 @@ mesh_function_write(meshfunction); } //---------------------------------------------------------------------------- -void VTKFile::operator<<(const MeshFunction<unsigned long int>& meshfunction) +void VTKFile::operator<<(const MeshFunction<std::size_t>& meshfunction) { mesh_function_write(meshfunction); } === modified file 'dolfin/io/VTKFile.h' --- dolfin/io/VTKFile.h 2012-12-04 11:29:59 +0000 +++ dolfin/io/VTKFile.h 2013-02-21 19:35:38 +0000 @@ -52,7 +52,7 @@ void operator<< (const Mesh& mesh); void operator<< (const MeshFunction<bool>& meshfunction); void operator<< (const MeshFunction<unsigned int>& meshfunction); - void operator<< (const MeshFunction<unsigned long int>& meshfunction); + void operator<< (const MeshFunction<std::size_t>& meshfunction); void operator<< (const MeshFunction<int>& meshfunction); void operator<< (const MeshFunction<double>& meshfunction); void operator<< (const Function& u); === modified file 'dolfin/io/XDMFFile.cpp' --- dolfin/io/XDMFFile.cpp 2013-02-11 15:13:49 +0000 +++ dolfin/io/XDMFFile.cpp 2013-02-21 19:35:38 +0000 @@ -453,7 +453,7 @@ write_mesh_function(meshfunction); } //---------------------------------------------------------------------------- -void XDMFFile::operator<< (const MeshFunction<unsigned long int>& meshfunction) +void XDMFFile::operator<< (const MeshFunction<std::size_t>& meshfunction) { write_mesh_function(meshfunction); } === modified file 'dolfin/io/XDMFFile.h' --- dolfin/io/XDMFFile.h 2012-12-04 11:29:59 +0000 +++ dolfin/io/XDMFFile.h 2013-02-21 19:35:38 +0000 @@ -77,7 +77,7 @@ void operator<< (const MeshFunction<bool>& meshfunction); void operator<< (const MeshFunction<int>& meshfunction); void operator<< (const MeshFunction<unsigned int>& meshfunction); - void operator<< (const MeshFunction<unsigned long int>& meshfunction); + void operator<< (const MeshFunction<std::size_t>& meshfunction); void operator<< (const MeshFunction<double>& meshfunction); private: === modified file 'dolfin/io/XMLFile.h' --- dolfin/io/XMLFile.h 2012-12-19 19:10:49 +0000 +++ dolfin/io/XMLFile.h 2013-02-21 19:35:38 +0000 @@ -89,9 +89,9 @@ { write_mesh_function(output, "uint"); } // MeshFunction (uint) - void operator>> (MeshFunction<unsigned long int>& input) + void operator>> (MeshFunction<std::size_t>& input) { read_mesh_function(input, "uint"); } - void operator<< (const MeshFunction<unsigned long int>& output) + void operator<< (const MeshFunction<std::size_t>& output) { write_mesh_function(output, "uint"); } // MeshFunction (int) @@ -118,10 +118,10 @@ void operator<< (const MeshValueCollection<unsigned int>& output) { write_mesh_value_collection(output, "uint"); } - // MeshValueCollection (unsigned long int) - void operator>> (MeshValueCollection<unsigned long int>& input) + // MeshValueCollection (std::size_t) + void operator>> (MeshValueCollection<std::size_t>& input) { read_mesh_value_collection(input, "uint"); } - void operator<< (const MeshValueCollection<unsigned long int>& output) + void operator<< (const MeshValueCollection<std::size_t>& output) { write_mesh_value_collection(output, "uint"); } // MeshValueCollection (int) === modified file 'dolfin/swig/io/pre.i' --- dolfin/swig/io/pre.i 2012-12-04 20:34:24 +0000 +++ dolfin/swig/io/pre.i 2013-02-21 19:35:38 +0000 @@ -17,7 +17,7 @@ // along with DOLFIN. If not, see <http://www.gnu.org/licenses/>. // // First added: 2012-11-01 -// Last changed: 2012-11-01 +// Last changed: 2013-02-21 %ignore dolfin::GenericFile::operator>> (std::vector<int>& x); %ignore dolfin::GenericFile::operator>> (std::vector<std::size_t>& x); === modified file 'test/unit/io/python/XDMF.py' --- test/unit/io/python/XDMF.py 2013-02-05 16:34:21 +0000 +++ test/unit/io/python/XDMF.py 2013-02-21 19:35:38 +0000 @@ -30,14 +30,17 @@ def test_save_1d_mesh(self): mesh = UnitIntervalMesh(32) File("output/mesh.xdmf") << mesh + XDMFFile("output/mesh.xdmf") << mesh def test_save_2d_mesh(self): mesh = UnitSquareMesh(32, 32) File("output/mesh_2D.xdmf") << mesh + XDMFFile("output/mesh_2D.xdmf") << mesh def test_save_3d_mesh(self): mesh = UnitCubeMesh(8, 8, 8) File("output/mesh_3D.xdmf") << mesh + XDMFFile("output/mesh_3D.xdmf") << mesh class XDMF_Vertex_Function_Output(unittest.TestCase): """Test output of vertex-based Functions to XDMF files""" @@ -47,18 +50,21 @@ u = Function(FunctionSpace(mesh, "Lagrange", 2)) u.vector()[:] = 1.0 File("output/u.xdmf") << u + XDMFFile("output/u.xdmf") << u def test_save_2d_scalar(self): mesh = UnitSquareMesh(16, 16) u = Function(FunctionSpace(mesh, "Lagrange", 2)) u.vector()[:] = 1.0 File("output/u.xdmf") << u + XDMFFile("output/u.xdmf") << u def test_save_3d_scalar(self): mesh = UnitCubeMesh(8, 8, 8) u = Function(FunctionSpace(mesh, "Lagrange", 2)) u.vector()[:] = 1.0 File("output/u.xdmf") << u + XDMFFile("output/u.xdmf") << u def test_save_2d_vector(self): mesh = UnitSquareMesh(16, 16) @@ -66,6 +72,7 @@ c = Constant((1.0, 2.0)) u.interpolate(c) File("output/u_2dv.xdmf") << u + XDMFFile("output/u.xdmf") << u def test_save_3d_vector(self): mesh = UnitCubeMesh(1, 1, 1) @@ -73,6 +80,7 @@ c = Constant((1.0, 2.0, 3.0)) u.interpolate(c) File("output/u_3Dv.xdmf") << u + XDMFFile("output/u.xdmf") << u def test_save_3d_vector_series(self): mesh = UnitCubeMesh(8, 8, 8) @@ -87,18 +95,32 @@ u.vector()[:] = 3.0 file << (u, 0.3) + del file + + file = XDMFFile("output/u_3D.xdmf") + + u.vector()[:] = 1.0 + file << (u, 0.1) + + u.vector()[:] = 2.0 + file << (u, 0.2) + + u.vector()[:] = 3.0 + file << (u, 0.3) def test_save_2d_tensor(self): mesh = UnitSquareMesh(16, 16) u = Function(TensorFunctionSpace(mesh, "Lagrange", 2)) u.vector()[:] = 1.0 File("output/tensor.xdmf") << u + XDMFFile("output/tensor.xdmf") << u def test_save_3d_tensor(self): mesh = UnitCubeMesh(8, 8, 8) u = Function(TensorFunctionSpace(mesh, "Lagrange", 2)) u.vector()[:] = 1.0 File("output/u.xdmf") << u + XDMFFile("output/u.xdmf") << u class XDMF_MeshFunction_Output(unittest.TestCase): """Test output of Meshes to XDMF files""" @@ -110,6 +132,7 @@ for cell in cells(mesh): mf[cell] = cell.index() File("output/mf_1D.xdmf") << mf + XDMFFile("output/mf_1D.xdmf") << mf def test_save_2D_cell_function(self): mesh = UnitSquareMesh(32, 32) @@ -117,6 +140,7 @@ for cell in cells(mesh): mf[cell] = cell.index() File("output/mf_2D.xdmf") << mf + XDMFFile("output/mf_2D.xdmf") << mf def test_save_3D_cell_function(self): mesh = UnitCubeMesh(8, 8, 8) @@ -124,6 +148,7 @@ for cell in cells(mesh): mf[cell] = cell.index() File("output/mf_3D.xdmf") << mf + XDMFFile("output/mf_3D.xdmf") << mf def test_save_2D_facet_function(self): mesh = UnitSquareMesh(32, 32) @@ -131,6 +156,7 @@ for facet in facets(mesh): mf[facet] = facet.index() File("output/mf_facet_2D.xdmf") << mf + XDMFFile("output/mf_facet_2D.xdmf") << mf def test_save_3D_facet_function(self): mesh = UnitCubeMesh(8, 8, 8) @@ -138,6 +164,7 @@ for facet in facets(mesh): mf[facet] = facet.index() File("output/mf_facet_3D.xdmf") << mf + XDMFFile("output/mf_facet_3D.xdmf") << mf def test_save_3D_edge_function(self): mesh = UnitCubeMesh(8, 8, 8) @@ -145,6 +172,7 @@ for edge in edges(mesh): mf[edge] = edge.index() File("output/mf_edge_3D.xdmf") << mf + XDMFFile("output/mf_edge_3D.xdmf") << mf def test_save_2D_vertex_function(self): mesh = UnitSquareMesh(32, 32) @@ -152,6 +180,7 @@ for vertex in vertices(mesh): mf[vertex] = vertex.index() File("output/mf_vertex_2D.xdmf") << mf + XDMFFile("output/mf_vertex_2D.xdmf") << mf def test_save_3D_vertex_function(self): mesh = UnitCubeMesh(8, 8, 8) @@ -159,6 +188,7 @@ for vertex in vertices(mesh): mf[vertex] = vertex.index() File("output/mf_vertex_3D.xdmf") << mf + XDMFFile("output/mf_vertex_3D.xdmf") << mf if __name__ == "__main__": unittest.main()
=== modified file 'dolfin/io/GenericFile.cpp' --- dolfin/io/GenericFile.cpp 2012-12-04 20:34:24 +0000 +++ dolfin/io/GenericFile.cpp 2013-02-21 19:35:38 +0000 @@ -73,9 +73,9 @@ read_not_impl("MeshFunction<int>"); } //----------------------------------------------------------------------------- -void GenericFile::operator>> (MeshFunction<unsigned long int>& mesh_function) +void GenericFile::operator>> (MeshFunction<std::size_t>& mesh_function) { - read_not_impl("MeshFunction<unsigned long int>"); + read_not_impl("MeshFunction<std::size_t>"); } //----------------------------------------------------------------------------- void GenericFile::operator>> (MeshFunction<unsigned int>& mesh_function) @@ -98,9 +98,9 @@ read_not_impl("MeshValueCollection<int>"); } //----------------------------------------------------------------------------- -void GenericFile::operator>> (MeshValueCollection<unsigned long int>& mesh_markers) +void GenericFile::operator>> (MeshValueCollection<std::size_t>& mesh_markers) { - read_not_impl("MeshValueCollection<unsigned long int>"); + read_not_impl("MeshValueCollection<std::size_t>"); } //----------------------------------------------------------------------------- void GenericFile::operator>> (MeshValueCollection<unsigned int>& mesh_markers) @@ -202,10 +202,9 @@ { write_not_impl("MeshFunction<int>"); } -//----------------------------------------------------------------------------- -void GenericFile::operator<< (const MeshFunction<unsigned long int>& mesh_function) +void GenericFile::operator<< (const MeshFunction<std::size_t>& mesh_function) { - write_not_impl("MeshFunction<unsigned long int>"); + write_not_impl("MeshFunction<std::size_t>"); } //----------------------------------------------------------------------------- void GenericFile::operator<< (const MeshFunction<unsigned int>& mesh_function) @@ -228,9 +227,9 @@ write_not_impl("MeshValueCollection<int>"); } //----------------------------------------------------------------------------- -void GenericFile::operator<< (const MeshValueCollection<unsigned long int>& mesh_markers) +void GenericFile::operator<< (const MeshValueCollection<std::size_t>& mesh_markers) { - write_not_impl("MeshValueCollection<unsigned long int>"); + write_not_impl("MeshValueCollection<std::size_t>"); } //----------------------------------------------------------------------------- void GenericFile::operator<< (const MeshValueCollection<unsigned int>& mesh_markers) === modified file 'dolfin/io/GenericFile.h' --- dolfin/io/GenericFile.h 2012-12-19 17:29:40 +0000 +++ dolfin/io/GenericFile.h 2013-02-21 19:35:38 +0000 @@ -59,12 +59,12 @@ virtual void operator>> (GenericDofMap& dofmap); virtual void operator>> (LocalMeshData& data); virtual void operator>> (MeshFunction<int>& mesh_function); - virtual void operator>> (MeshFunction<unsigned long int>& mesh_function); + virtual void operator>> (MeshFunction<std::size_t>& mesh_function); virtual void operator>> (MeshFunction<unsigned int>& mesh_function); virtual void operator>> (MeshFunction<double>& mesh_function); virtual void operator>> (MeshFunction<bool>& mesh_function); virtual void operator>> (MeshValueCollection<int>& mesh_markers); - virtual void operator>> (MeshValueCollection<unsigned long int>& mesh_markers); + virtual void operator>> (MeshValueCollection<std::size_t>& mesh_markers); virtual void operator>> (MeshValueCollection<unsigned int>& mesh_markers); virtual void operator>> (MeshValueCollection<double>& mesh_markers); virtual void operator>> (MeshValueCollection<bool>& mesh_markers); @@ -87,12 +87,12 @@ virtual void operator<< (const GenericDofMap& dofmap); virtual void operator<< (const LocalMeshData& data); virtual void operator<< (const MeshFunction<int>& mesh_function); - virtual void operator<< (const MeshFunction<unsigned long int>& mesh_function); + virtual void operator<< (const MeshFunction<std::size_t>& mesh_function); virtual void operator<< (const MeshFunction<unsigned int>& mesh_function); virtual void operator<< (const MeshFunction<double>& mesh_function); virtual void operator<< (const MeshFunction<bool>& mesh_function); virtual void operator<< (const MeshValueCollection<int>& mesh_markers); - virtual void operator<< (const MeshValueCollection<unsigned long int>& mesh_markers); + virtual void operator<< (const MeshValueCollection<std::size_t>& mesh_markers); virtual void operator<< (const MeshValueCollection<unsigned int>& mesh_markers); virtual void operator<< (const MeshValueCollection<double>& mesh_markers); virtual void operator<< (const MeshValueCollection<bool>& mesh_markers); === modified file 'dolfin/io/HDF5Interface.h' --- dolfin/io/HDF5Interface.h 2012-12-19 17:29:40 +0000 +++ dolfin/io/HDF5Interface.h 2013-02-21 19:35:38 +0000 @@ -458,7 +458,7 @@ template<> inline void HDF5Interface::add_attribute_value(const hid_t dset_id, const std::string attribute_name, - const std::vector<unsigned long int>& attribute_value) + const std::vector<std::size_t>& attribute_value) { // Create a vector dataspace @@ -526,7 +526,7 @@ template<> inline void HDF5Interface::get_attribute_value(const hid_t attr_type, const hid_t attr_id, - unsigned long int& attribute_value) + std::size_t& attribute_value) { // FIXME: more complete check of type dolfin_assert(H5Tget_class(attr_type) == H5T_INTEGER); @@ -588,7 +588,7 @@ template<> inline void HDF5Interface::get_attribute_value(const hid_t attr_type, const hid_t attr_id, - std::vector<unsigned long int>& attribute_value) + std::vector<std::size_t>& attribute_value) { // FIXME: more complete check of type dolfin_assert(H5Tget_class(attr_type) == H5T_INTEGER); @@ -622,7 +622,7 @@ { return H5T_NATIVE_UINT; } //----------------------------------------------------------------------------- template <> - inline hid_t HDF5Interface::hdf5_type<unsigned long int>() + inline hid_t HDF5Interface::hdf5_type<std::size_t>() { return H5T_NATIVE_ULONG; } //----------------------------------------------------------------------------- === modified file 'dolfin/io/VTKFile.cpp' --- dolfin/io/VTKFile.cpp 2013-02-05 19:34:25 +0000 +++ dolfin/io/VTKFile.cpp 2013-02-21 19:35:38 +0000 @@ -128,7 +128,7 @@ mesh_function_write(meshfunction); } //---------------------------------------------------------------------------- -void VTKFile::operator<<(const MeshFunction<unsigned long int>& meshfunction) +void VTKFile::operator<<(const MeshFunction<std::size_t>& meshfunction) { mesh_function_write(meshfunction); } === modified file 'dolfin/io/VTKFile.h' --- dolfin/io/VTKFile.h 2012-12-04 11:29:59 +0000 +++ dolfin/io/VTKFile.h 2013-02-21 19:35:38 +0000 @@ -52,7 +52,7 @@ void operator<< (const Mesh& mesh); void operator<< (const MeshFunction<bool>& meshfunction); void operator<< (const MeshFunction<unsigned int>& meshfunction); - void operator<< (const MeshFunction<unsigned long int>& meshfunction); + void operator<< (const MeshFunction<std::size_t>& meshfunction); void operator<< (const MeshFunction<int>& meshfunction); void operator<< (const MeshFunction<double>& meshfunction); void operator<< (const Function& u); === modified file 'dolfin/io/XDMFFile.cpp' --- dolfin/io/XDMFFile.cpp 2013-02-11 15:13:49 +0000 +++ dolfin/io/XDMFFile.cpp 2013-02-21 19:35:38 +0000 @@ -453,7 +453,7 @@ write_mesh_function(meshfunction); } //---------------------------------------------------------------------------- -void XDMFFile::operator<< (const MeshFunction<unsigned long int>& meshfunction) +void XDMFFile::operator<< (const MeshFunction<std::size_t>& meshfunction) { write_mesh_function(meshfunction); } === modified file 'dolfin/io/XDMFFile.h' --- dolfin/io/XDMFFile.h 2012-12-04 11:29:59 +0000 +++ dolfin/io/XDMFFile.h 2013-02-21 19:35:38 +0000 @@ -77,7 +77,7 @@ void operator<< (const MeshFunction<bool>& meshfunction); void operator<< (const MeshFunction<int>& meshfunction); void operator<< (const MeshFunction<unsigned int>& meshfunction); - void operator<< (const MeshFunction<unsigned long int>& meshfunction); + void operator<< (const MeshFunction<std::size_t>& meshfunction); void operator<< (const MeshFunction<double>& meshfunction); private: === modified file 'dolfin/io/XMLFile.h' --- dolfin/io/XMLFile.h 2012-12-19 19:10:49 +0000 +++ dolfin/io/XMLFile.h 2013-02-21 19:35:38 +0000 @@ -89,9 +89,9 @@ { write_mesh_function(output, "uint"); } // MeshFunction (uint) - void operator>> (MeshFunction<unsigned long int>& input) + void operator>> (MeshFunction<std::size_t>& input) { read_mesh_function(input, "uint"); } - void operator<< (const MeshFunction<unsigned long int>& output) + void operator<< (const MeshFunction<std::size_t>& output) { write_mesh_function(output, "uint"); } // MeshFunction (int) @@ -118,10 +118,10 @@ void operator<< (const MeshValueCollection<unsigned int>& output) { write_mesh_value_collection(output, "uint"); } - // MeshValueCollection (unsigned long int) - void operator>> (MeshValueCollection<unsigned long int>& input) + // MeshValueCollection (std::size_t) + void operator>> (MeshValueCollection<std::size_t>& input) { read_mesh_value_collection(input, "uint"); } - void operator<< (const MeshValueCollection<unsigned long int>& output) + void operator<< (const MeshValueCollection<std::size_t>& output) { write_mesh_value_collection(output, "uint"); } // MeshValueCollection (int) === modified file 'dolfin/swig/io/pre.i' --- dolfin/swig/io/pre.i 2012-12-04 20:34:24 +0000 +++ dolfin/swig/io/pre.i 2013-02-21 19:35:38 +0000 @@ -17,7 +17,7 @@ // along with DOLFIN. If not, see <http://www.gnu.org/licenses/>. // // First added: 2012-11-01 -// Last changed: 2012-11-01 +// Last changed: 2013-02-21 %ignore dolfin::GenericFile::operator>> (std::vector<int>& x); %ignore dolfin::GenericFile::operator>> (std::vector<std::size_t>& x); === modified file 'test/unit/io/python/XDMF.py' --- test/unit/io/python/XDMF.py 2013-02-05 16:34:21 +0000 +++ test/unit/io/python/XDMF.py 2013-02-21 19:35:38 +0000 @@ -30,14 +30,17 @@ def test_save_1d_mesh(self): mesh = UnitIntervalMesh(32) File("output/mesh.xdmf") << mesh + XDMFFile("output/mesh.xdmf") << mesh def test_save_2d_mesh(self): mesh = UnitSquareMesh(32, 32) File("output/mesh_2D.xdmf") << mesh + XDMFFile("output/mesh_2D.xdmf") << mesh def test_save_3d_mesh(self): mesh = UnitCubeMesh(8, 8, 8) File("output/mesh_3D.xdmf") << mesh + XDMFFile("output/mesh_3D.xdmf") << mesh class XDMF_Vertex_Function_Output(unittest.TestCase): """Test output of vertex-based Functions to XDMF files""" @@ -47,18 +50,21 @@ u = Function(FunctionSpace(mesh, "Lagrange", 2)) u.vector()[:] = 1.0 File("output/u.xdmf") << u + XDMFFile("output/u.xdmf") << u def test_save_2d_scalar(self): mesh = UnitSquareMesh(16, 16) u = Function(FunctionSpace(mesh, "Lagrange", 2)) u.vector()[:] = 1.0 File("output/u.xdmf") << u + XDMFFile("output/u.xdmf") << u def test_save_3d_scalar(self): mesh = UnitCubeMesh(8, 8, 8) u = Function(FunctionSpace(mesh, "Lagrange", 2)) u.vector()[:] = 1.0 File("output/u.xdmf") << u + XDMFFile("output/u.xdmf") << u def test_save_2d_vector(self): mesh = UnitSquareMesh(16, 16) @@ -66,6 +72,7 @@ c = Constant((1.0, 2.0)) u.interpolate(c) File("output/u_2dv.xdmf") << u + XDMFFile("output/u.xdmf") << u def test_save_3d_vector(self): mesh = UnitCubeMesh(1, 1, 1) @@ -73,6 +80,7 @@ c = Constant((1.0, 2.0, 3.0)) u.interpolate(c) File("output/u_3Dv.xdmf") << u + XDMFFile("output/u.xdmf") << u def test_save_3d_vector_series(self): mesh = UnitCubeMesh(8, 8, 8) @@ -87,18 +95,32 @@ u.vector()[:] = 3.0 file << (u, 0.3) + del file + + file = XDMFFile("output/u_3D.xdmf") + + u.vector()[:] = 1.0 + file << (u, 0.1) + + u.vector()[:] = 2.0 + file << (u, 0.2) + + u.vector()[:] = 3.0 + file << (u, 0.3) def test_save_2d_tensor(self): mesh = UnitSquareMesh(16, 16) u = Function(TensorFunctionSpace(mesh, "Lagrange", 2)) u.vector()[:] = 1.0 File("output/tensor.xdmf") << u + XDMFFile("output/tensor.xdmf") << u def test_save_3d_tensor(self): mesh = UnitCubeMesh(8, 8, 8) u = Function(TensorFunctionSpace(mesh, "Lagrange", 2)) u.vector()[:] = 1.0 File("output/u.xdmf") << u + XDMFFile("output/u.xdmf") << u class XDMF_MeshFunction_Output(unittest.TestCase): """Test output of Meshes to XDMF files""" @@ -110,6 +132,7 @@ for cell in cells(mesh): mf[cell] = cell.index() File("output/mf_1D.xdmf") << mf + XDMFFile("output/mf_1D.xdmf") << mf def test_save_2D_cell_function(self): mesh = UnitSquareMesh(32, 32) @@ -117,6 +140,7 @@ for cell in cells(mesh): mf[cell] = cell.index() File("output/mf_2D.xdmf") << mf + XDMFFile("output/mf_2D.xdmf") << mf def test_save_3D_cell_function(self): mesh = UnitCubeMesh(8, 8, 8) @@ -124,6 +148,7 @@ for cell in cells(mesh): mf[cell] = cell.index() File("output/mf_3D.xdmf") << mf + XDMFFile("output/mf_3D.xdmf") << mf def test_save_2D_facet_function(self): mesh = UnitSquareMesh(32, 32) @@ -131,6 +156,7 @@ for facet in facets(mesh): mf[facet] = facet.index() File("output/mf_facet_2D.xdmf") << mf + XDMFFile("output/mf_facet_2D.xdmf") << mf def test_save_3D_facet_function(self): mesh = UnitCubeMesh(8, 8, 8) @@ -138,6 +164,7 @@ for facet in facets(mesh): mf[facet] = facet.index() File("output/mf_facet_3D.xdmf") << mf + XDMFFile("output/mf_facet_3D.xdmf") << mf def test_save_3D_edge_function(self): mesh = UnitCubeMesh(8, 8, 8) @@ -145,6 +172,7 @@ for edge in edges(mesh): mf[edge] = edge.index() File("output/mf_edge_3D.xdmf") << mf + XDMFFile("output/mf_edge_3D.xdmf") << mf def test_save_2D_vertex_function(self): mesh = UnitSquareMesh(32, 32) @@ -152,6 +180,7 @@ for vertex in vertices(mesh): mf[vertex] = vertex.index() File("output/mf_vertex_2D.xdmf") << mf + XDMFFile("output/mf_vertex_2D.xdmf") << mf def test_save_3D_vertex_function(self): mesh = UnitCubeMesh(8, 8, 8) @@ -159,6 +188,7 @@ for vertex in vertices(mesh): mf[vertex] = vertex.index() File("output/mf_vertex_3D.xdmf") << mf + XDMFFile("output/mf_vertex_3D.xdmf") << mf if __name__ == "__main__": unittest.main()
_______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp