Dear all,
I’m currently reproducing a paper: Sabino et.al 2020. It’s background in physics is the vortex-induced vibration of a spring-mounted, damped, rigid circular cylinder, immersed in a Newtonian viscous flow and capable of moving in the direction orthogonal to the unperturbed flow.
This is my script and log files: wqliu.zip (688.2 KB)
I have simplified the script as much as possible. I guess the error is in the matrix entered into EPSSolve(). But I don’t know the exact reason for the error.
Dear @prj,
Thank you very much for your quick reply.
My FreeFem++ version is 4.13 and I’m running on Windows 11. Although the FreeFem++ official website has been updated to version 4.14, it is currently a pre-release, and there is no windows version. In fact, I did find that my macro_ddm.idp file was different from that in FreeFem-sources. For example, the difference between macro DmeshBuild() and DmeshCreate(). I’m not sure what the difference is, but I think the functionality embodied in the scripts is the same.
Thanks again for your help. Although I don’t understand the meaning of MatNest and MatConvert(), my script is running. There may still be some problems with the scripts, but I will continue to debug it. In addition , can you help me understand the meaning of MatNest and MatConvert().
Dear prj,
Thank you so much for your assistance. I think the scripts has the effect I wanted. And these references help me understand MatConvert() and MatNest. But now I have some new questions. In my script, EPSSolve() take the following sparams:
Of course, during testing I found that iterations would not converge if I used -st_pc_type cholesky. So I used -st_pc_type lu, and I got really good results because of it.
I can understand the meaning of some of these sparams, but these sparams are transferred from other scripts. Is there a specific reference to introduce all the sparams of EPSSolve()?
I have a new question about EPSSolve. I;m reading this help manual slepc.pdf. I find the Advanced Usage of EPS described in Chapter 2, section 6. Section 2.6.1 is about entering an initial guess into EPS.
This gives me a little insight that I can assign the calculated eigenmode to the next eigenvalue as an initial guess. In SLEPc, they provide the command EPSSetInitialSpace(EPS eps, PetscInt n, Vec is[]). However, I did not find similar examples in FreeFem.
In the source file FreeFem-sources/plugin/mpi/SLEPc-code.hpp, there have the command EPSSetInitialSpace()– EPSSetInitialSpace(). Therefore, I believe it is possible to add an initial guess for EPSSolve() in FreeFem. Can you give me a typical example. Thank you in advance!