我們如何修改matlab PDE工具箱代碼來實現週期邊界條件?Matlab PDE工具箱週期性邊界條件
回答
我能夠在2016a中實現週期性邊界條件,以便在pde工具箱中使用。這花了不少時間,因爲沒有記錄太多的函數和數據結構。請注意我的域是一個三維立方體,但這裏的方法也適用於2D。 (我已經測試過拋物線和雙曲問題)。似乎應該通過改變PDE工具箱的「H」矩陣來實現週期邊界條件,但是我還沒有能夠得到這種方法來處理橢圓,拋物線或雙曲問題。
下面是用於實現拋物線和雙曲線問題週期性邊界條件(使用PDE工具箱線的方法)的方法:
使用點的Delaunay三角網創建一個網格(確保接觸域的邊界的節點具有在相反面上「匹配」的節點)。請注意,不能使用pde工具箱爲3D立方體生成的網格節點,因爲它們沒有適當的週期性結構。
將週期性邊界條件視爲時間相關的狄利克雷邊界條件。你可能會遇到一些麻煩讓matlab在時間依賴的邊界條件下處理(我不得不在這裏忽略細節)。然而,在這裏的是,我在applyBoundaryCondition()函數所使用的功能如下:
函數[bcMatrix]
%用於楠= tdependentdiri(地區,州),以 「欺騙」 MATLAB成處理的邊界條件爲時間依賴的狄利克雷
如果(isnan(state.time))
bcMatrix = NaN;
別的
bcMatrix = state.u;
端
端
- 更新FAS數據(內generateMesh從genmeshinternal()())。不幸的是,我們無法看到genmeshinternal())的代碼。然而,fas是包含六個條目的單元格,其中每個條目都是2xN矩陣。每個條目的第二行。第一行指定一個面在域邊界上的四面體。第二行指定哪個節點(四面體)位於域的內部。編寫一個算法來更新網格的fas。實際上,您需要更新以下行(在generateMesh()內)中的每個變量(使用網格數據):
- 節點和邊界值(隨時間變化)的「週期性映射」應在callValueFuncOnFace()內完成。基本上你需要在它的週期性合作伙伴的位置(由pbc_indx這裏表示)來改變邊界上當前解決值的值:
[nodes,fas,tet,Hmax,Hmin] = genmeshinternal(self。幾何形狀,HMAX,HMIN,geomOrder);
請注意,節點和tet由delaunay三角剖分照顧。
state.u = self.uN(:,pbc_indx); %self.uN保存當前時間的解決方案
我把這個正確的行後面寫着: appRegion = self.applicationRegion(xyzPts(:,i),faceNormals(:,i));
可能有一個更簡單的方法,但至少這個最終的作品。
- 1. 具有周期性邊界條件的數據的直方圖
- 2. 使用週期性邊界條件模糊3D numpy陣列
- 3. 週期性邊界條件 - 有限差分
- 4. 帶週期性邊界條件的最近鄰居搜索
- 5. 使用週期性邊界條件計算接觸/配位數
- 6. matlab工具箱
- 7. 如何在MATLAB pde工具箱中區分人臉?
- 8. 在Java中執行週期性邊界條件的最快方法
- 9. 如何用週期性,螺旋等邊界條件可視化點陣?
- 10. Matlab聚類工具箱
- 11. 在PDE工具箱中使用時間依賴(熱源)
- 12. 在matlab相機校準工具箱中顯示世界座標
- 13. 用於生成邊界條件的單元測試工具
- 14. 實現2D拉普拉斯在用Cython週期性邊界counditions
- 15. 在考慮週期邊界條件的同時優化Python距離計算
- 16. 生命週期工具套件
- 17. Matlab中的統計工具箱
- 18. MATLAB NN工具箱:錯誤使用trainlm
- 19. Matlab中的報告工具箱
- 20. matlab中的圖像處理工具箱
- 21. 速度Matlab並行工具箱GPU?
- 22. MATLAB墨菲的HMM工具箱
- 23. Matlab符號工具箱語法錯誤
- 24. matlab神經網絡工具箱
- 25. 如何安裝MATLAB的工具箱
- 26. Matlab工具箱中的存根測試
- 27. matlab編碼器+工具箱+ laplace轉換
- 28. 攝像機校準MATLAB工具箱
- 29. MATLAB優化工具箱例如
- 30. MATLAB - 全局優化工具箱