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

Reply via email to