dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #15044
Re: reset_tensor in assemble
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
Follow ups
References