Skip to content
This repository has been archived by the owner on Mar 1, 2023. It is now read-only.

Add GMRES linear solver #330

Merged
merged 17 commits into from
Jul 31, 2019
Merged

Add GMRES linear solver #330

merged 17 commits into from
Jul 31, 2019

Conversation

mwarusz
Copy link
Contributor

@mwarusz mwarusz commented Jul 24, 2019

Aside from GMRES another notable change is that iterative solvers now use relative tolerance
for the convergence criterion.

@mwarusz
Copy link
Contributor Author

mwarusz commented Jul 24, 2019

bors try

bors bot added a commit that referenced this pull request Jul 24, 2019
@bors
Copy link
Contributor

bors bot commented Jul 24, 2019

try

Build failed

@simonbyrne
Copy link
Member

Out of curiosity, any reason we can't use IterativeSolvers.jl?

@mwarusz
Copy link
Contributor Author

mwarusz commented Jul 29, 2019

@simonbyrne

I have considered IterativeSolvers.jl but using it would require a lot of work to adapt our data structures and also require some changes inside IterativeSolvers.jl. For example their GMRES
is not generic with respect to the Krylov vector type since it stores them in a Matrix{T}

https://github.com/JuliaMath/IterativeSolvers.jl/blob/17ef2613dff1d80724886797160ee01bd1bd2c71/src/gmres.jl#L7

We would need to mimic the action of our linear operator as a matrix vector multiply,
implement views of MPIStateArrays and some BLAS operations on them. Reusing the
same solver on different time steps also did not seem straightforward.

@simonbyrne
Copy link
Member

Good to know, thanks.

mwarusz added 2 commits July 29, 2019 14:11
to hopefully get rid of differences coming from different BLAS implementations.
@mwarusz
Copy link
Contributor Author

mwarusz commented Jul 29, 2019

bors try

bors bot added a commit that referenced this pull request Jul 29, 2019
@bors
Copy link
Contributor

bors bot commented Jul 30, 2019

try

Build failed

  • CLIMA

@jkozdon
Copy link

jkozdon commented Jul 30, 2019

bors try

bors bot added a commit that referenced this pull request Jul 30, 2019
@bors
Copy link
Contributor

bors bot commented Jul 30, 2019

try

Build succeeded

@jkozdon
Copy link

jkozdon commented Jul 30, 2019

bors r+

bors bot added a commit that referenced this pull request Jul 30, 2019
330: Add GMRES linear solver r=jkozdon a=mwarusz

Aside from GMRES another notable change is that iterative solvers now use relative tolerance
for the convergence criterion.

Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
@bors
Copy link
Contributor

bors bot commented Jul 30, 2019

Build failed

@simonbyrne
Copy link
Member

bors r+

bors bot added a commit that referenced this pull request Jul 31, 2019
330: Add GMRES linear solver r=simonbyrne a=mwarusz

Aside from GMRES another notable change is that iterative solvers now use relative tolerance
for the convergence criterion.

Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
@bors
Copy link
Contributor

bors bot commented Jul 31, 2019

Build failed

  • CLIMA

@jkozdon
Copy link

jkozdon commented Jul 31, 2019

bors r+

bors bot added a commit that referenced this pull request Jul 31, 2019
330: Add GMRES linear solver r=jkozdon a=mwarusz

Aside from GMRES another notable change is that iterative solvers now use relative tolerance
for the convergence criterion.

Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
@bors
Copy link
Contributor

bors bot commented Jul 31, 2019

Build succeeded

@bors bors bot merged commit e687953 into master Jul 31, 2019
@bors bors bot deleted the mw/linearsolvers branch July 31, 2019 03:11
smarras79 pushed a commit to smarras79/CLIMA that referenced this pull request Nov 18, 2019
330: Add GMRES linear solver r=jkozdon a=mwarusz

Aside from GMRES another notable change is that iterative solvers now use relative tolerance
for the convergence criterion.

Co-authored-by: Maciej Waruszewski <mwarusz@igf.fuw.edu.pl>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants