Anders Logg wrote: > On Tue, Dec 04, 2007 at 07:12:41PM +0000, Garth N. Wells wrote: >> >> Kristian Oelgaard wrote: >>> Quoting DOLFIN <[EMAIL PROTECTED]>: >>> >>> I think this changeset broke PyDOLFIN >>> >>> tialized -MT _dolfin_la-dolfin_wrap.lo -MD -MP -MF >>> .deps/_dolfin_la-dolfin_wrap.Tpo -c dolfin_wrap.cpp -fPIC -DPIC -o >>> .libs/_dolfin_la-dolfin_wrap.o >>> ./../src/kernel/mesh/dolfin/MeshFunction.h: In member function 'void >>> dolfin::MeshFunction<T>::broadcast() const [with T = int]': >>> dolfin_wrap.cpp:80706: instantiated from here >>> ./../src/kernel/mesh/dolfin/MeshFunction.h:184: error: no matching function >>> for >>> call to 'dolfin::MPIMeshCommunicator::broadcast(const >>> dolfin::MeshFunction<int>&)' >>> ./../src/kernel/mesh/dolfin/MPIMeshCommunicator.h:35: note: candidates are: >>> static void dolfin::MPIMeshCommunicator::broadcast(const dolfin::Mesh&) >>> ./../src/kernel/mesh/dolfin/MPIMeshCommunicator.h:41: note: >>> static void dolfin::MPIMeshCommunicator::broadcast(const >>> dolfin::MeshFunction<unsigned int>&) >>> >> This should be fixed now. >> >> I added member functions to MeshFunction for broadcast and receive which >> were wrappers for MPIMeshCommunicator::broadcast(..)/receive(..), >> analogous to Mesh::broadcast()/receive(). The problem is that >> MeshFunction is a templated class. >> >> To keep a consistent interface, I see two options: >> >> a) Create specialisations of MeshFunction::broadcast()/receive(); or >> >> b) Remove the Mesh::broadcast()/receive() wrapper functions and call >> MPIMeshComminicator::broadcast(..)/receive(..) directly. > > Option (b) that you implemented looks good.
OK. To be consistent I'll remove the functions Mesh::receive() and Mesh:broadcast(). Garth > _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
