CASL / Futility

VERA Fortran Utilities
Other
44 stars 20 forks source link

Native Anderson Acceleration #249

Closed jpjones6 closed 4 years ago

jpjones6 commented 4 years ago

Implements a fully native arbitrary depth Anderson acceleration algorithm with efficient (direct) calculation of Anderson coefficients.

jpjones6 commented 4 years ago

New version using vector types and BLAS is up. Caveats:

1) Only RealVectorType and PetcVectorTypes are usable right now. NativeDistributed and Trilinos type vectors are both missing certain interfaces to needed BLAS routines.

2) Creation of the storage vectors is deferred until the first call of the set/reset Anderson routine. Did this because that is the first time a vector is actually handed to Anderson for any purpose. Could alternatively move it to the init routine with the addition of a parameter list entry specifying what vector type will be used. Didn't like that option since that will require consistency between where Anderson is inited and set/reset in the client code....I don't trust that will always happen plus it seems less flexible.