Ok, then I am not sure we have a solution for the problem without having some conditional compilation for 32 bit machines.
Johan On 02/21/2013 08:41 PM, Garth N. Wells wrote: > 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: <[email protected]> > 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 <[email protected]> > > > ------------------------------------------------------------ > revno: 7462 > committer: Johan Hake <[email protected]> > 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() > > > > _______________________________________________ > Mailing list: https://launchpad.net/~dolfin > Post to : [email protected] > Unsubscribe : https://launchpad.net/~dolfin > More help : https://help.launchpad.net/ListHelp > _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

