[petsc-users] How to activate the modified Gram-Schmidt orthogonalization process in Fortran?

Zhuo Chen chenzhuotj at gmail.com
Thu Sep 10 20:41:30 CDT 2020


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/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200910/59e9a2f6/attachment.html>


More information about the petsc-users mailing list