[petsc-users] How to activate the modified Gram-Schmidt orthogonalization process in Fortran?
Zhuo Chen
chenzhuotj at gmail.com
Fri Sep 11 14:04:24 CDT 2020
Hi Hong,
Thank you very much for the plan.
Though it may be obvious to many Petsc gurus. I would like to summarize my
solution to activate the modified Gram-Schmidt orthogonalization process in
Fortran now. It may help some new Petsc users.
Option 1: append the -ksp_gmres_modifiedgramschmidt at runtime, the code
would look like
call KSPSetType(ksp,KSPGMRES,ierr);CHKERRQ(ierr)
call KSPSetFromOptions(ksp,ierr);CHKERRQ(ierr)
and to run the program, use
mpiexec -np 2 ./run -ksp_gmres_modifiedgramschmidt
Option 2: use PetscOptionsSetValue()
call KSPSetType(ksp,KSPGMRES,ierr);CHKERRQ(ierr)
call KSPSetFromOptions(ksp,ierr);CHKERRQ(ierr)
call
PetscOptionsSetValue(PETSC_NULL_OPTIONS,'-ksp_gmres_modifiedgramschmidt','1',ierr);CHKERRQ(ierr)
and to run the program, use
mpiexec -np 2 ./run
Best.
On Fri, Sep 11, 2020 at 9:05 AM Zhang, Hong <hzhang at mcs.anl.gov> wrote:
> Zhuo,
> I'll try to get it done after the incoming release. My hands are full with
> more urgent tasks at moment. I'll let you know after I'm done.
> Thanks for your patience.
> Hong
>
> ------------------------------
> *From:* Zhuo Chen <chenzhuotj at gmail.com>
> *Sent:* Thursday, September 10, 2020 8:41 PM
> *To:* Zhang, Hong <hzhang at mcs.anl.gov>
> *Cc:* petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>
> *Subject:* Re: [petsc-users] How to activate the modified Gram-Schmidt
> orthogonalization process in Fortran?
>
> Hi Hong,
>
> According to that very old thread, KSPGMRESSetOrthogonalization was not
> implemented in Fortran. I did as you suggested and the compiler will tell
> me
>
> undefined reference to `kspgmressetorthogonalization_'
>
> I think I will use the -ksp_gmres_modifiedgramschmidt method. Thank you so
> much!
>
> On Thu, Sep 10, 2020 at 7:32 PM Zhang, Hong <hzhang at mcs.anl.gov> wrote:
>
> Zhuo,
> Call
> KSPSetType(ksp,KSPGMRES);
>
> KSPGMRESSetOrthogonalization(ksp,KSPGMRESModifiedGramSchmidtOrthogonalization);
> Hong
>
> ------------------------------
> *From:* Zhuo Chen <chenzhuotj at gmail.com>
> *Sent:* Thursday, September 10, 2020 8:17 PM
> *To:* Zhang, Hong <hzhang at mcs.anl.gov>
> *Cc:* petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>
> *Subject:* Re: [petsc-users] How to activate the modified Gram-Schmidt
> orthogonalization process in Fortran?
>
> Hi Hong,
>
> Thank you very much for your help.
>
> It seems that if I simply append -ksp_gmres_modifiedgramschmidt the
> warning goes away. However
> KSPGMRESSetOrthogonalization(ksp,KSPGMRESModifiedGramSchmidtOrthogonalization,ierr)
> has another issue.
>
> Error: Symbol ‘kspgmresmodifiedgramschmidtorthogonalization’ at (1) has no
> IMPLICIT type
>
> Is it because the argument is too long? I am using gcc 8.4.0 instead of
> ifort
>
> On Thu, Sep 10, 2020 at 7:08 PM Zhang, Hong <hzhang at mcs.anl.gov> wrote:
>
> Zhuo,
> Run your code with option '-ksp_gmres_modifiedgramschmidt'. For example,
> petsc/src/ksp/ksp/tutorials
> mpiexec -n 2 ./ex2 -ksp_view -ksp_gmres_modifiedgramschmidt
> KSP Object: 2 MPI processes
> type: gmres
> restart=30, using Modified Gram-Schmidt Orthogonalization
> happy breakdown tolerance 1e-30
> maximum iterations=10000, initial guess is zero
> tolerances: relative=0.000138889, absolute=1e-50, divergence=10000.
> left preconditioning
> using PRECONDITIONED norm type for convergence test
> PC Object: 2 MPI processes
> type: bjacobi
> ...
>
> You can
> call KSPGMRESSetOrthogonalization(ksp,KSPGMRESModifiedGramSchmidtOrthogonalization)
> in your program.
>
> Hong
>
> ------------------------------
> *From:* petsc-users <petsc-users-bounces at mcs.anl.gov> on behalf of Zhuo
> Chen <chenzhuotj at gmail.com>
> *Sent:* Thursday, September 10, 2020 7:52 PM
> *To:* petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>
> *Subject:* [petsc-users] How to activate the modified Gram-Schmidt
> orthogonalization process in Fortran?
>
> Dear Petsc users,
>
> I found an ancient thread discussing this problem.
>
> https://lists.mcs.anl.gov/pipermail/petsc-users/2011-October/010607.html
>
> However, when I add
>
> call KSPSetType(ksp,KSPGMRES,ierr);CHKERRQ(ierr)
> call
> PetscOptionsSetValue(PETSC_NULL_OPTIONS,'-ksp_gmres_modifiedgramschmidt','1',ierr);CHKERRQ(ierr)
>
> the program will tell me
>
> WARNING! There are options you set that were not used!
> WARNING! could be spelling mistake, etc!
> There is one unused database option. It is:
> Option left: name:-ksp_gmres_modifiedgramschmidt value: 1
>
> I would like to know the most correct way to activate the modified
> Gram-Schmidt orthogonalization process in Fortran. Thank you very much!
>
> Best regards.
>
>
>
>
> --
> Zhuo Chen
> Department of Physics
> University of Alberta
> Edmonton Alberta, Canada T6G 2E1
> http://www.pas.rochester.edu/~zchen25/
>
>
>
> --
> Zhuo Chen
> Department of Physics
> University of Alberta
> Edmonton Alberta, Canada T6G 2E1
> http://www.pas.rochester.edu/~zchen25/
>
>
>
> --
> Zhuo Chen
> Department of Physics
> University of Alberta
> Edmonton Alberta, Canada T6G 2E1
> http://www.pas.rochester.edu/~zchen25/
>
--
Zhuo Chen
Department of Physics
University of Alberta
Edmonton Alberta, Canada T6G 2E1
http://www.pas.rochester.edu/~zchen25/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200911/daf78bde/attachment.html>
More information about the petsc-users
mailing list