[petsc-users] algorithm to get pure real eigen valule for general eigenvalue problem(Non-hermitian type)
Zhang Wei
zhang.wei at chalmers.se
Mon Apr 15 16:18:24 CDT 2013
hi
Thanks very much for your help!
Indeed, I am dealing with linearised Navier Stokes. Actually the algorithm is already tested in a FEM code by directly using Arpack. I tried slepc with wrapped Arpack. I noticed that the shit between each iteration is controlled by the number of converged eigenvalue and a predefined portion,which is the same as restart parameter "keep" in krylovschur solver, but can't be changed. While in the FEM code, the shift value is exact one. But I can't find different in the implementation. Could it be the problem?
Yours Sincerely
------------------------
Wei Zhang
Ph.D
Hydrodynamic Group
Dept. of Shipping and Marine Technology
Chalmers University of Technology
Sweden
Phone:+46-31 772 2703
On 15 apr 2013, at 18:33, "Jose E. Roman" <jroman at dsic.upv.es> wrote:
>
> El 15/04/2013, a las 18:02, Zhang Wei escribió:
>
>> Hi Jose.
>> In pa-> MatVecMult(Mat A, Vec x , Vec y). I do three things
>> 1) copy the x as initial value for my fvm code:
>>
>> const PetscScalar *px;
>> PetscScalar *py;
>> PetscErrorCode ierr;
>>
>> PetscFunctionBegin;
>> ierr = VecGetArrayRead(x,&px);CHKERRQ(ierr);
>> ierr = VecGetArray(y,&py);CHKERRQ(ierr);
>>
>> if(loopID>0){
>> copySLEPcDataToField(&px[0]);
>> }
>> 2) In fvm solver, where I implement first order eular method, fourth order RK method and several others.
>> 3) after several timestep. I do sent the field to slepc:
>>
>> copyFieldToSLEPcData(&py[0]);
>> VecAssemblyBegin(y);
>> VecAssemblyEnd(y);
>>
>> From the those files I saved during the time stepping (all those methods), the fvm solver works fine for me. They gives expected things.
>> Actually the numerical methods and accuracy in pa-> MatVecMult doesn't affect the results that much. At least it the shape of eigen vectors do not change with those factors.
>
> I am not an expert in the application, but my understanding is that stability analysis must be based on eigenvalues of the linearized operator A, but if you embed the initial value solver then you will get approximations of eigenvalues of exp(t*A), and that may not be what you want. Maybe you should have a look at a related reference, e.g http://www.mech.kth.se/~shervin/pdfs/2012_arcme.pdf
> See also references under "Computational Fluid Dynamics" in http://www.grycap.upv.es/slepc/material/appli.htm
>
> Jose
>
More information about the petsc-users
mailing list