← Back to team overview

dolfin team mailing list archive

Re: SORSolver dependency in real.cpp

 

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?

--
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



Follow ups

References