Kent Andre wrote:
> On ti., 2009-09-01 at 17:16 +0100, Garth N. Wells wrote:
>> Kent Andre wrote:
>>> Hi,
>>> A.zero() is called both when reset_tensor is true and false
>>> in Assembler::init_global_tensor.
>>>
>>> The code is as follows:
>>>
>>> void Assembler::init_global_tensor(GenericTensor& A,
>>> const Form& a,
>>> UFC& ufc, bool reset_tensor)
>>> {
>>> if (reset_tensor)
>>> {
>>> ...
>>> }
>>> else
>>> A.zero();
>>> }
>>>
>>> Is this on purpose or is it a bug ?
>> The code is correct. 'A.zero()' zeroes the entries but preserves the
>> non-zero structure of the matrix.
>>
>> Garth
>>
>
> Then maybe reset_sparsity_pattern is a better name ?
>
We could extend the assembler interface to
assemble(GenericTensor& A, const Form& a,
bool reset_tensor_sparsity=true, bool add_values=false);
I'm not a big fan of booleans though because they make no sense to the
reader in the calling code, e,g. what does
assemble(A, a, true, true);
mean? We could use the parameter system instead.
Garth
> (I would like to not zero out the matrix before assembly,
> but I guess I can do this by some backend-spesific code where
> I add the matrices together afterwords.)
>
>
> Kent
>
_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev