[petsc-users] Set matrix column to vector
Lawrence Mitchell
lawrence.mitchell at imperial.ac.uk
Tue Sep 2 03:55:44 CDT 2014
On 02/09/14 09:41, Florian Lindner wrote:
> Am 01.09.2014 16:11, schrieb Matthew Knepley:
>
>> I recommend running using the debugger so you can get a stack trace, and
>> perhaps see
>> exactly what the problem is. You can also run under valgrind as the error
>> says.
>
> This of course I tried, but had no real success. It crashes in
> ISLocalToGlobalMappingApply, on the first line: PetscInt i,bs =
> mapping->bs,Nmax = bs*mapping->n;
>
> It crashes only when using MatSetValuesLocal, not when using MatSetValues.
>
> I've created an example that compiles just fine:
> http://pastebin.com/iEkLK9DZ
You never create a local to global mapping and set it on the matrix, so
that mapping is NULL inside ISLocalToGlobalMappingApply.
You need to do something like:
ISLocalToGlobalMappingCreate(..., &rmapping);
ISLocalToGlobalMappingCreate(..., &cmapping);
MatSetLocalToGlobalMapping(mat, rmapping, cmapping);
Then you can use MatSetValuesLocal.
Cheers,
Lawrence
More information about the petsc-users
mailing list