← Back to team overview

dolfin team mailing list archive

Re: SORSolver dependency in real.cpp

 

On 15 December 2010 01:07, Anders Logg <logg@xxxxxxxxx> wrote:
> On Tue, Dec 14, 2010 at 10:13:32PM +0000, Garth N. Wells wrote:
>>
>>
>> On 14/12/10 16:13, Benjamin Kehlet wrote:
>> >On 26 November 2010 00:04, Anders Logg<logg@xxxxxxxxx>  wrote:
>> >>On Thu, Nov 25, 2010 at 11:02:54PM +0000, Garth N. Wells wrote:
>> >>>
>> >>>
>> >>>On 25/11/10 22:48, Benjamin Kehlet wrote:
>> >>>>On 25 November 2010 23:29, Garth N. Wells<gnw20@xxxxxxxxx>    wrote:
>> >>>>>
>> >>>>>
>> >>>>>On 25/11/10 20:17, Anders Logg wrote:
>> >>>>>>
>> >>>>>>On Thu, Nov 25, 2010 at 05:55:36PM +0000, Garth N. Wells wrote:
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>On 25/11/10 17:34, Anders Logg wrote:
>> >>>>>>>>
>> >>>>>>>>On Thu, Nov 25, 2010 at 05:07:40PM +0000, Garth N. Wells wrote:
>> >>>>>>>>>
>> >>>>>>>>>There is a dependency on
>> >>>>>>>>>
>> >>>>>>>>>    dolfin/ode/SORSolver.h
>> >>>>>>>>>
>> >>>>>>>>>in dolfin/common/real.cpp. This seems odd to me. Is there a reason for
>> >>>>>>>>>it?
>> >>>>>>>>>
>> >>>>>>>>>Garth
>> >>>>>>>>
>> >>>>>>>>real.h/cpp provide some basic algorithms that work on high precision
>> >>>>>>>>floats. One of these is the matrix exponential which is computed by a
>> >>>>>>>>rational approximation, hence the need for solving a linear system.
>> >>>>>>>>
>> >>>>>>>>The SORSolver is the only solver in DOLFIN that handles high precision
>> >>>>>>>>floats (uBLAS etc can't be used).
>> >>>>>>>
>> >>>>>>>What is the typical system size?
>> >>>>>>>
>> >>>>>>>Garth
>> >>>>>>
>> >>>>>>We have used it for (dense) matrices of size up to 100 x 100 for
>> >>>>>>computing quadrature weights etc for the cG(100) method.
>> >>>>>>
>> >>>>>
>> >>>>>You could try Armadillo? I guess it can be templated over the higher
>> >>>>>precision floats.
>> >>>>
>> >>>>Yes. With uBLAS the problem was that, even if it is templated, it
>> >>>>relied on non-templated code (eg. stuff in cmath).
>> >>>>Also Peter Gottschling claims that MTL4 can do this. Maybe it is worth a try?
>> >>>>
>> >>>
>> >>>I would try Armadillo since it's already a required dependency, and
>> >>>it's targeted more at dense problems than MTL4 is.
>> >>>
>> >>>Garth
>> >>
>> >>Agree.
>> >>
>> >
>> >It turns out Armadillo can not handle gmp types.
>> >The Armadillo documentation says: "... type can be one of: char, int,
>> >float, double, std::complex<double>, etc.". However, the promising
>> >"etc." does not contain the gmp types.
>>
>> Have you tried it with gmp types?
>
> I think that's what he's saying. He tried whether "etc" worked with
> GMP types and it didn't work. Benjamin?

Exactly.

>
> --
> Anders
>
>
>
>> Garth
>>
>> >So, any other suggestions? Or should we leave as it is (ie. use real*)
>> >and just clean up the code and add comments?
>> >
>> >Benjamin
>



References