MATLAB Answers

PDE Toolbox: evaluateGradient for legacy workflow or convert legacy solution to PDE solution

조회 수: 2(최근 30일)
Maxime Krier
Maxime Krier 2020년 2월 11일
댓글: Hanwen Zhang 2021년 3월 5일
I am solving a scalar, time independent PDE in 2d with mesh refinement with the adaptmesh function from the legacy workflow.
Now, I would like to evaluate the gradient of my solution u in an arbitrary point, say .
For the legacy worklflow, I found the function pdegrad, which lets me evaluate the gradient in the triangle centroids of my mesh. However I need a function similar to evaluateGradient. Is there a similar function for the legacy workflow?
If not, is there another easy way to solve my problem? My only idea would be to convert my legacy solution u to a PDE solution of the recommended workflow. Is there an elegant way to achieve this? My idea up to now is to solve a "PDE"
with the recommended workflow, where is an interpolant of my solution u and Ω is my domain. However this seems way to complicated for me.
Thanks for your help

채택된 답변

Ravi Kumar
Ravi Kumar 2020년 2월 12일
Hi Maxime,
You can create a result object of the kind you need using the solution from the legacy solver and the createPDEResults function. Once you have a results object you get the evaluateGradient with it, so you should be good to go.
Note the warning on the createPDEResults is to note that new solvers produce the results object directly and there is no use of this function. However, in your use case this would simplify your work after you get the solution form the legacy solver.
Regards,
Ravi
  댓글 수: 1
Hanwen Zhang
Hanwen Zhang 2021년 3월 5일
Hi Ravi,
When you create a results object you will need to convert [p,e,t] tripe in adaptmesh output to FEMesh object. Could you give some tips on that?
Thanks,
Hanwen

댓글을 달려면 로그인하십시오.

추가 답변(0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by