NexGenAnalytics / Trilinos

Primary repository for the Trilinos Project
https://trilinos.org/
Other
0 stars 2 forks source link

Belos: Provide `Tpetra` version of LSQR examples #163

Closed tlamonthezie closed 1 year ago

tlamonthezie commented 1 year ago

Hello @stmcgovern

The new PrecLSQRTpetraExFile example would require to add ifpack2 as dependency for Belos but it would add a circular dependency. It is due to the fact that in Ifpack2 depnds on Belos (only for some tests and examples as I can see)

I think there are 2 possibilities if we want to have a new Tpetra version of this example:

I think the option A is easier to apply but the option B might be more logic even if we have to modify 2 packages at once. @stmcgovern could you please give me some guidance on that or ask Belos and Ifpack2 package owners ? Or is there maybe a place where to add tests and examples external to thse 2 packages to prevent the circular dependency ?

As I am writing this comment I am working on making the example working by ignoring the dependency problem but we will have to know how to make it work at build stage to not have dependency issue.

stmcgovern commented 1 year ago

Hello @stmcgovern

The new PrecLSQRTpetraExFile example would require to add ifpack2 as dependency for Belos but it would add a circular dependency. It is due to the fact that in Ifpack2 depnds on Belos (only for some tests and examples as I can see)

I think there are 2 possibilities if we want to have a new Tpetra version of this example:

* Option A: Add `PrecLSQRTpetraExFile` to `Ifpack2` examples

* Option B: Add `PrecLSQRTpetraExFile` to `Belos` examples + move Belos/Ifpack2 tests and examples from `Ifpack2` to `Belos` package + change dependencies (make belos depend on Ifpack2 instead of the inverse, like it is the case with Ifpack)

I think the option A is easier to apply but the option B might be more logic even if we have to modify 2 packages at once. @stmcgovern could you please give me some guidance on that or ask Belos and Ifpack2 package owners ? Or is there maybe a place where to add tests and examples external to thse 2 packages to prevent the circular dependency ?

As I am writing this comment I am working on making the example working by ignoring the dependency problem but we will have to know how to make it work at build stage to not have dependency issue.

@hkthorn and @jennloe do you have any suggestions about the strategies @tlamonthezie has proposed?