[Trilinos-Users] Aztec, DD-prec and reuse
Simone Deparis
deparis at MIT.EDU
Wed Jan 4 11:47:57 MST 2006
Mike,
Mike Heroux wrote:
> Simone,
>
> One general comment:
>
> You might consider using Ifpack for preconditioners for AztecOO. Ifpack has
> a much cleaner design and provides far more preconditioning capabilities.
> In contrast, the interface to AztecOO's native preconditioners is and will
> always be clumsy for advanced use cases. This is because we have to live
> within the constraints of the underlying Aztec capabilities which are not
> object-oriented and quite fragile under changes.
I understand. If I can not solve this issue, I'll migrate to ifpack
> Regarding AZ_reuse:
>
> Sorry to mislead you. You should set options[AZ_pre_calc] = AZ_reuse
> *after* the first call to Iterate, but before the second. You should not
> set options[AZ_pre_calc] = AZ_reuse *at all* if using the
> Construct/DestroyPreconditioner() methods, since this setting is handled for
> you.
Ok. But I get the error also when using
Construct/DestroyPreconditioner() and *not* set options[AZ_pre_calc]
(which as yuo say is handeld by ConstrucPreconditioner()
Is it possible that the preconditioner is destroyed anyway?:
in fact Iterate() calls AZ_solve which at the end calls
AZ_precond_destroy. So I understand that the preconditioner is destroyed.
In iterate:
if (prec_allocated == 1) {
AZ_precond_destroy(&Prec_);
Prec_ = 0;
prec_allocated = 0;
}
where:
void AZ_precond_destroy(AZ_PRECOND **precond)
{
if ( (*precond) == NULL) return;
if ( (*precond)->print_string != NULL) AZ_free(
(*precond)->print_string);
AZ_free(*precond);
*precond = NULL;
}
Am I wrong?
Simone
More information about the Trilinos-Users
mailing list