New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ruge–Stüben solver for complex-valued matrix #327
Comments
This pyamg/pyamg/amg_core/ruge_stuben.h Lines 721 to 733 in 1fd1ef6
|
A breakdown: import pyamg
A = pyamg.gallery.gauge_laplacian(100)
S = pyamg.strength.classical_strength_of_connection(A, norm='abs') # works, although norm='min' requires real-number
splitting = pyamg.classical.classical.split.RS(S) # works, since S is real
pyamg.classical.interpolate.direct_interpolation(A, S, splitting) # TypeError at rs_direct_interpolation_pass2() |
pyamg/pyamg/amg_core/ruge_stuben.h Lines 755 to 764 in ece7eb3
|
Sorry for the delay. I see no problem generalizing to complex. Note that this is not RS interpolation, this is a simpler version, but the same principle applies, that the pointwise formula can be extended more or less directly to complex values. As Scott points out in his paper, the efficacy will depend on the problem. If you're interested in making a PR similar to the Julia package though please do. For strength I think we would want to use absolute value rather than comparison w/ real part, but this option already exists for real numbers so should not be hard to generalize to complex. @lukeolson thoughts? |
smoothed_aggregation_solver
supports complex-valued matrix (without converting to equivalent real form), as shown in this demo, butruge_stuben_solver
seems to take real-valued matrix only:Error message goes like:
This seems a software limitation, instead of a mathematical requirement? The RS-AMG interpolation formula should work for complex matrix naturally, based on the references:
Are there any non-trivial modifications required, in order to apply RS-type AMG for complex matrices?
The text was updated successfully, but these errors were encountered: