Dear all, I have a finite volume code inspired from TS example ex11.c (with a riemann solver, etc...). So far, I used only explicit time stepping through the TSSSP, and to set the RHS of my hyperbolic system I used :
TSSetType(ts, TSSSP); DMTSSetRHSFunctionLocal(dm, DMPlexTSComputeRHSFunctionFVM <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/DMPlexTSComputeRHSFunctionFVM.html#DMPlexTSComputeRHSFunctionFVM>, &ctx); after setting the right Riemann solver in the TS associated to the DM. Now, in some cases where the physics is stationary, I would like to reach the steady state faster and use an implicit timestepping operator to do so. After looking through the examples, especially TS examples ex48.c and ex53.c, I simply tried to set TSSetType(ts, TSBEULER); DMTSSetIFunctionLocal(dm, DMPlexTSComputeIFunctionFEM <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/DMPlexTSComputeIFunctionFEM.html#DMPlexTSComputeIFunctionFEM>, &ctx); DMTSSetIJacobianLocal(dm, DMPlexTSComputeIJacobianFEM <https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/DMPlexTSComputeIJacobianFEM.html#DMPlexTSComputeIJacobianFEM>, &ctx); instead of the previous calls. It compiles fine, and it runs. However, nothing happens : it behaves like there is no time evolution at all, the solution does not change from its initial state. >From the source code, it is my understanding that the DMPlexTSComputeIFunctionFEM and DMPlexTSComputeIJacobianFEM methods, in spite of their names, call respectively DMPlexComputeResidual_Internal and DMPlexComputeJacobian_Internal that can handle a FVM discretization. What am I missing ? Are there other steps to take before I can simply try to run with a finite volume discretization and an implicit time stepping algorithm ? Thank you very much for your help in advance ! Thibault Bridel-Bertomeu — Eng, MSc, PhD Research Engineer CEA/CESTA 33114 LE BARP Tel.: (+33)557046924 Mob.: (+33)611025322 Mail: thibault.bridelberto...@gmail.com