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