フィルターのクリア

How do I refine a subdomain mesh?

3 ビュー (過去 30 日間)
Fergus McIlwaine
Fergus McIlwaine 2017 年 8 月 28 日
回答済み: Ian Jentz 2020 年 10 月 2 日
I'm having issues with refining the Mesh of a Subdomain using R2016a. I'm aware of this question but it does not help with my situation.
I have two subdomains, R1 and E1. I need the R1 mesh to be more refined that E1.
Relevant Model Information:
With 2D geometry (x,y).
The previous answers given to solve this say to return to legacy flow. I'm unable to do this with a parabolic PDE because the legacy solver 'parabolic' does not allow solving on multiple domains.
I can see two possible ways from here:
1) If there was anyway to directly attach [p,e,t] data to a PDEmodel it would make it easy.
2) If there was some way to convert [p,e,t] data to FEMesh object data then the problem would become much simpler. I would take the following steps:
  • Create mesh with initMesh to obtain [p,e,t]
  • Use the legacy function refinemesh to obtain [p1,e1,t1]
  • Convert the newly refined mesh to FEMesh object
  • Solve using pdesolve
A function exists that converts FEMesh object to [p,e,t]: meshToPet. I can't access this function to see how it works; it's just comments.
I've attached a screenshot of the meshToPet function file, can anyone find any other info on how this works? I can't even 'step in' to the file during running.
Thank you for reading!

採用された回答

Svetlana Pease
Svetlana Pease 2017 年 8 月 30 日
編集済み: Svetlana Pease 2017 年 8 月 30 日
Both attaching [p,e,t] data to PDEModel and converting a [p,e,t] mesh to FEMesh are not supported. I recommend creating a finer mesh for both R1 and E1 by using the appropriate value of Hmax, if possible.
Also, parabolic works with subdomains:
Regards,
Svetlana Pease
Technical Writer, MathWorks Documentation Group

その他の回答 (1 件)

Ian Jentz
Ian Jentz 2020 年 10 月 2 日
There is now a port of refinemesh() available for PDEModel. Like refinemesh(), it works for 2D linear triangular geometries only.
The new PDEModel compatible function is refinePDEMmesh().
This is how you would run your problem:
model=createpde;
msh=generateMesh(model);
model = refinePDEMmesh(model);

カテゴリ

Help Center および File ExchangeGeneral PDEs についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by