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

Reply via email to