-
Notifications
You must be signed in to change notification settings - Fork 148
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
[Issue]Caught amgx exception: SelectorFactory 'PMIS' has not been registered #315
Comments
Hello @kkmund146 , I'm not familiar with PETSc code and it's options, so maybe https://gitlab.com/petsc/petsc/-/issues might be a good place to start troubleshooting such issue. Thanks, |
There should be no issue with the order, as it does attempt to solve without encountering this error for other models. I am also able to successfully do the AMGX example in PETSc. I am actually getting this now when using the following database keys: -pc_amgx_amg_method AGGREGATION I will attach the outlog, errlog, and toolkits as before. |
@kkmund146 I just noticed in both cases that AGGREGATION multigrid is used, for which PMIS is not an option, you can see it here:
so the configuration that PETSc provides to AMGX is not correct. If you can provide configuration that is used to initialize solver I can advise on how to correct this issue, otherwise I would suggest opening an issue with PETSc ( https://gitlab.com/petsc/petsc/-/issues ), since their code is configuring AMGX solver. Thanks, |
@marsaev I believe this is what you were looking for, see attached. |
@kkmund146 |
@marsaev: if (!partial_setup_allowed) { PetscFunctionBegin; |
Can you dump the contents of those variables? |
@marsaev I am attempting to do this by adding a print statement, as in the following example: if (!partial_setup_allowed) { I am not seeing any output in the console. Is there another way to do this? |
@marsaev A few other things I noticed while looking at the error message and outlog that may help:
[/externalpackages/petsc/src/src/ksp/pc/impls/amgx/amgx.cxx] This path actually does not exist, as amgx.cxx is at /externalpackages/petsc/src/ksp/pc/impls/amgx/amgx.cxx.
Thanks |
Can you replace it with:
There is a small chance PETSc suppresses printf and you can try writing this to file, but other than that - if you don't see output - that means this code is not reached and AMGX configured somewhere else. Unfortunately I cannot answer your PETSc questions. |
This is the content of amgx->cfg_contents.c_str() ==================================================================================== config_version=2,determinism_flag=1,exact_coarse_solve=1,solver(amg)=AMG,amg:algorithm=AGGREGATION,amg:cycle=V,amg:smoother(smooth)=BLOCK_JACOBI,smooth:relaxation_factor=0.900000,amg:selector=PMIS,amg:presweeps=1,amg:postsweeps=1,amg:max_levels=100,amg:dense_lu_num_rows=1,amg:strength_threshold=0.500000,amg:coarse_solver=DENSE_LU_SOLVER,amg:max_iters=1,amg:monitor_residual=0 ..... Caught amgx exception: SelectorFactory 'PMIS' has not been registered =================================================================================== |
I am attempting to implement AmgX's algebraic multigrid preconditioner in Petsc. When I include the following optional database keys
-pc_amgx_amg_method CLASSICAL
I encounter the following error
Caught amgx exception: SelectorFactory 'PMIS' has not been registered
I have attached the outlog, errlog and toolkits files for your reference. Does anyone know what caused this error and how to resolve it?
Thanks.
PIG6e4_HO-CLASSICAL outlog.pdf
PIG6e4_HO-CLASSICAL toolkits.pdf
PIG6e4_HO-CLASSICAL errorlog.pdf
The text was updated successfully, but these errors were encountered: