Skip to content
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

MueLu: Use of ShiftedLaplacian with long long GO #13815

Open
maartenarnst opened this issue Feb 17, 2025 · 5 comments
Open

MueLu: Use of ShiftedLaplacian with long long GO #13815

maartenarnst opened this issue Feb 17, 2025 · 5 comments

Comments

@maartenarnst
Copy link
Contributor

maartenarnst commented Feb 17, 2025

Currently, the ShiftedLaplacian preconditioner is enabled in MueLu only when Tpetra is instantiated with the int global ordinal.

It is also not clear whether tests using the ShiftedLaplacian preconditioner are still exercised by the Trilinos test pipelines. Because it seems that there are inconsistencies such as

  • Galeri::Xpetra::Parameters<GO> matrixParameters_helmholtz(clp, nx, ny, nz, "Helmholtz3D", 0, stretchx, stretchy, stretchz,
    h, delta, PMLXL, PMLXR, PMLYL, PMLYR, PMLZL, PMLZR, omega, 0.0, mx, my, mz, model);

  • Parameters(Teuchos::CommandLineProcessor& clp, GO nx = 16, GO ny = -1, GO nz = -1, const std::string& matrixType = "Laplace1D",
    int keepBCs = 0, double stretchx = 1.0, double stretchy = 1.0, double stretchz = 1.0,
    double Kxx = 1.0, double Kxy = 0.0, double Kyy = 1.0, double dt = 1.0, const std::string& meshType = "tri",
    double h = 1.0, double delta = 0.0,
    int PMLXL = 0, int PMLXR = 0, int PMLYL = 0, int PMLYR = 0, int PMLZL = 0, int PMLZR = 0,
    double omega = 2.0*M_PI, double shift = 0.5, GO mx = -1, GO my = -1, GO mz = -1, int model = 0)

I.e. the kxx, kxy parameters and so on are not passed by the Helmholtz test, which leads to a compilation error in our build.

May be related to:

We are wondering

  • what the underlying cause is for not allowing the ShiftedLaplacian preconditioner for other global ordinals? Is it just a question of generalising the ifdef protections and enabling things in the eti?
  • what is currently the recommended preconditioner to use for the Helmholtz equation?

Thanks in advance.

@cgcgcg @jhux2

@romintomasetti @GaleAxiom

Copy link

Automatic mention of the @trilinos/muelu team

@jhux2
Copy link
Member

jhux2 commented Feb 17, 2025

Adding @rstumin.

@rstumin
Copy link
Contributor

rstumin commented Feb 17, 2025

I don't believe anyone is using the ShiftedLaplacian code ... so it is not clear to me whether it serves a useful purpose as a test?

@maartenarnst
Copy link
Contributor Author

Just to clarify our question a bit more. We are looking for a preconditioner to solve Helmholtz problems in our Trilinos-based FE code. We saw the shifted Laplacian in Muelu. In our code, we use the default GO in Tpetra, which is typically long long (and not int). And so our question is not really about the status of the test in Muelu. Our question is whether/how the shifted Laplacian can work with GO other than int. And more generally, we wonder what is the currently recommended preconditioner for Helmholtz problems in Trilinos.

@cgcgcg
Copy link
Contributor

cgcgcg commented Feb 17, 2025

I would be surprised if there is anything specific to GO=int. So it might be quite easy to enable long long. But this code was never fully integrated and by now probably has other issues that would need to be fixed. On the other hand, we added some capabilities for using Krylov solvers as level smoothers that could come in handy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants