For single-node work, gbtrf and gbtrs are your friends here. Apparently we 
do have those wrapped in base/linalg/lapack.jl already, but there are no 
tests for them right now, and no higher-level lufact to connect them to 
owing to the lack of a banded type.


On Tuesday, August 11, 2015 at 5:41:31 PM UTC-7, Jared Crean wrote:
>
> Its a nonsymmetric linear solve.  Issue 8240 looks great, FE problems will 
> be much easier to do when that is finished.  I am working on a large 
> (eventually parallel) CFD solver that will use Petsc (I'm working on 
> wrappers here:  https://github.com/JaredCrean2/PETSc.jl) for the linear 
> solves.  UMPFPACK is sufficiently efficient for debugging and running 
> small, single processor problems.
>
> Jared Crean
>
> On Tuesday, August 11, 2015 at 7:56:56 PM UTC-4, Tony Kelman wrote:
>>
>> If it's dense within the band, then what you really want is issue 8240. 
>> Are you dealing with symmetric positive definite, symmetric indefinite, or 
>> nonsymmetric? Eigenproblems or linear system solves? There are LAPACK 
>> methods for banded matrices that should be more efficient than using 
>> Cholmod or UMFPACK here, since they don't need to do anywhere near as much 
>> integer arithmetic as SuiteSparse would (to represent a band matrix in CSC 
>> format). We just don't have a Julia type for band matrices yet or ccall 
>> wrappers around the corresponding LAPACK methods. I'm not sure whether 
>> Jiahao made much progress on any prototypes, but banded matrices could 
>> easily be worked on outside of base at first.
>>
>>
>> On Tuesday, August 11, 2015 at 4:42:18 PM UTC-7, Jared Crean wrote:
>>>
>>> Its a classical dense-within-the-band matrix (from a Finite Element 
>>> problem).
>>>
>>> I want access to the solvers that are already supported by 
>>> SparseMatrixCSC, and interfacing them to another new type seems like a lot 
>>> of work.  If there were an abstract CSC matrix type, this could be made 
>>> much easier.  I've been hoping issues #8001, #9906, and #9928 would lead in 
>>> that direction, but so far they haven't.
>>>
>>> The syntax is really what I am after with the overriding of the 
>>> methods.  Using a macro is a safer alternative.  I'll have to try that at 
>>> some point.
>>>
>>> Jared Crean
>>>
>>> On Tuesday, August 11, 2015 at 7:25:06 PM UTC-4, Tony Kelman wrote:
>>>>
>>>> For storing explicit zeros you're best off modifying nzvals directly.
>>>>
>>>> In what way are you specializing your banded getindex method? Is this a 
>>>> classical banded but dense-within-the-band matrix, or general CSC sparse 
>>>> but with additional knowledge that no nonzeros ever have i and j different 
>>>> by more than the bandwidth? You're probably better off either making a new 
>>>> type for this that just wraps a SparseMatrixCSC for storage and either 
>>>> stores or is parameterized by the bandwidth, or using a different method 
>>>> other than getindex for this. If you'll miss the syntax, you could write a 
>>>> macro to locally replace getindex with your specialized version.
>>>>
>>>>
>>>> On Tuesday, August 11, 2015 at 1:00:58 PM UTC-7, Jared Crean wrote:
>>>>>
>>>>> For a problem I am working on, I need to be able to store explicit 
>>>>> zeros in a SparseMatrixCSC.  While the storage format supports this, the 
>>>>> setindex! method does not. Also, for banded sparse matricies I can define 
>>>>> a 
>>>>> much more efficient getindex method than the generic one.  When I define 
>>>>> my 
>>>>> own method (importing the one from Base and then creating a method with 
>>>>> the 
>>>>> same signature as the existing one) I get warnings of the type:
>>>>>
>>>>>
>>>>> Warning: Method definition 
>>>>> getindex(Base.SparseMatrix.SparseMatrixCSC{#T<:Any, Ti<:Integer}, 
>>>>> Integer, 
>>>>> Integer) in module SparseMatrix at sparse/sparsematrix.jl:1232 
>>>>> overwritten 
>>>>> in module PDESolverCommon at 
>>>>> /users/creanj/.julia/v0.4/PDESolverCommon/src/sparse.jl:63.
>>>>>
>>>>> My question is in what contexts is the method overwritten?  In my 
>>>>> local context (the REPL session where I use the one I created).  Do 
>>>>> functions within Base use the one in Base or the local one?
>>>>>
>>>>> Jared Crean
>>>>>
>>>>>
>>>>>

Reply via email to