← Back to team overview

dolfin team mailing list archive

Re: New Function implementation

 

Thanks.

-- 
Anders


On Tue, Oct 14, 2008 at 07:21:11PM -0400, Shawn Walker wrote:
> That worked.  I had to modify it in another file as well.  Here is the  
> patch:
>
> Hope it works!
>
> - Shawn
>
> On Wed, 15 Oct 2008, Anders Logg wrote:
>
>> Yes, see if that works. Try changing to dolfin::pow() everywhere where
>> you get an error. If that works, submit a patch.
>>
>>
>>
>> On Tue, Oct 14, 2008 at 06:05:24PM -0400, Shawn Walker wrote:
>>> I've got version 4.1.2 20071124.  I guess that is it.
>>>
>>> It looks like the error has to do with specifying which pow to use.  Is
>>> it possible to force the dolfin::pow?
>>>
>>> - Shawn
>>>
>>> On Tue, 14 Oct 2008, Anders Logg wrote:
>>>
>>>> This is all caused by the pow() functions in real.h which have been
>>>> added since GMP types do not work with std::pow().
>>>>
>>>> This does not give me any problems (g++ 4.2.3) so it's difficult for
>>>> me to debug. Let me know which compiler you are using so I can
>>>> reproduce the bug. (Or even better help me fix it...)
>>>>
>>>>
>>>>
>>>> On Tue, Oct 14, 2008 at 04:03:18PM -0400, Shawn Walker wrote:
>>>>> I now get a new bug with an ODE demo.  Should I just disable the ODE
>>>>> demos?
>>>>>
>>>>> /usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
>>>>> c++ -o demo/ode/courtemanche/cpp/main.o -c -Wall -pipe -ansi -Werror
>>>>> -DDEBUG -g -DNDEBUG -O2 -DPACKAGE_VERSION=\"0.8.0\" -DHAS_PETSC=1
>>>>> -DHAS_SLEPC=1 -DHAS_UMFPACK=1 -DHAS_GTS=1 -DHAS_CHOLMOD=1
>>>>> -fno-strict-aliasing -I. -I. -Idolfin -I/home/walker/build/include
>>>>> -I/usr/include/boost -I/usr/include/libxml2
>>>>> -I/home/walker/src/petsc-2.3.3-p13/bmake/linux-gnu-cxx-debug
>>>>> -I/home/walker/src/petsc-2.3.3-p13/include -I/home/walker/build/include
>>>>> -I/home/walker/build/lib -Idemo -I/home/walker/src/slepc-2.3.3
>>>>> -I/home/walker/src/slepc-2.3.3/include
>>>>> -I/home/walker/src/petsc-2.3.3-p13/bmake/linux-gnu-cxx-debug
>>>>> -I/home/walker/src/petsc-2.3.3-p13/include -I/home/walker/build/include
>>>>> -I/home/walker/build/lib -Idemo -I/usr/include/suitesparse
>>>>> -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
>>>>> -I/home/walker/build/include -I/usr/include/suitesparse
>>>>> demo/ode/courtemanche/cpp/main.cpp
>>>>> demo/ode/courtemanche/cpp/main.cpp: In member function oid
>>>>> Courtemanche::computeCurrents(const double*)
>>>>> demo/ode/courtemanche/cpp/main.cpp:170: error: call of overloaded
>>>>> ow(double, double)is ambiguous
>>>>> /usr/include/bits/mathcalls.h:154: note: candidates are: double
>>>>> pow(double, double)
>>>>> ./dolfin/common/real.h:71: note:                 dolfin::real
>>>>> dolfin::pow(dolfin::real, dolfin::real)
>>>>> ./dolfin/common/real.h:59: note:                 dolfin::real
>>>>> dolfin::pow(dolfin::real, dolfin::uint)
>>>>> demo/ode/courtemanche/cpp/main.cpp: In member function oid
>>>>> Courtemanche::computeGateCoefficients(const double*)
>>>>> demo/ode/courtemanche/cpp/main.cpp:255: error: call of overloaded
>>>>> ow(double, double)is ambiguous
>>>>> /usr/include/bits/mathcalls.h:154: note: candidates are: double
>>>>> pow(double, double)
>>>>> ./dolfin/common/real.h:71: note:                 dolfin::real
>>>>> dolfin::pow(dolfin::real, dolfin::real)
>>>>> ./dolfin/common/real.h:59: note:                 dolfin::real
>>>>> dolfin::pow(dolfin::real, dolfin::uint)
>>>>> scons: *** [demo/ode/courtemanche/cpp/main.o] Error 1
>>>>> scons: building terminated because of errors.
>>>>>
>>>>> - Shawn
>>>>>
>>>>> On Tue, 14 Oct 2008, Anders Logg wrote:
>>>>>
>>>>>> I guess it's the same bug as Nuno David Lopes reported earlier.
>>>>>> It works fine for me, but I just pushed an attempt to fix this. See if
>>>>>> it helps.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Oct 14, 2008 at 03:34:43PM -0400, Shawn Walker wrote:
>>>>>>> I will definitely look at it.  I think it is a good idea.
>>>>>>>
>>>>>>> However, I recently tried to compile, and I got an error with file used
>>>>>>> for dG.  I can reproduce it if you want.
>>>>>>>
>>>>>>> - Shawn
>>>>>>>
>>>>>>> On Tue, 14 Oct 2008, Anders Logg wrote:
>>>>>>>
>>>>>>>> I've finished up the new implementation of the Function class.
>>>>>>>> It's untested, but I'm pretty sure it works... :-) I'm very happy with
>>>>>>>> the way it turned out.
>>>>>>>>
>>>>>>>> Anyway, it would be good if anyone interested would review the design
>>>>>>>> and implementation (in detail, including function names etc).
>>>>>>>>
>>>>>>>> The Function class is central so it would be good if we could agree on
>>>>>>>> a design and keep it stable for some time (like we've managed with the
>>>>>>>> linear algebra interfaces).
>>>>>>>>
>>>>>>>> The main changes compared to the old/current design are as follows:
>>>>>>>>
>>>>>>>> 1. Introduction of a FunctionSpace class. A FunctionSpace is defined
>>>>>>>> by a Mesh, a FiniteElement and a DofMap.
>>>>>>>>
>>>>>>>> 2. Removal of the class hierarchy. Only one class Function remains.
>>>>>>>> This acts dynamically either as a user-defined function (if the vector
>>>>>>>> of coefficients is null) or as the old DiscreteFunction.
>>>>>>>>
>>>>>>>> 3. The proliferation of constructors has been removed. There is
>>>>>>>> essentially only one constructor, namely
>>>>>>>>
>>>>>>>>  v = Function(V)
>>>>>>>>
>>>>>>>> An additional class named Constant should be added to handle constant
>>>>>>>> functions, overloading eval() and providing a bunch of constructors
>>>>>>>> (scalar, vector, tensor).
>>>>>>>>
>>>>>>>> When we've settled on the design/implementation of Function and
>>>>>>>> FunctionSpace, we need to do a round of editing of the DofMap class.
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>>


Attachment: signature.asc
Description: Digital signature


References