Wolfram 有限元法 | 值得嘗試的事情

透過點擊程式碼內部並按下
+
可以編輯並執行任何程式碼.
有限元法. 對於初學者和專家,Wolfram 有限元法經由提供多重物理量偏微分方程模型、求解器和無縫後處理函數來取得您的設計行為,並與高級幾何和視覺化功能完全整合。

流體動力學

建立一個納維爾-史托克斯方程式 ,其中符號雷諾數 ℛℯ,流體速度
u
和
v
以及壓力
p
:
執行
In[]:=
vars={{u[x,y],v[x,y],p[x,y]},{x,y}};​​pars=<|"ReynoldsNumber"->ℛℯ|>;
建立一個中間有孔的幾何圖形:
執行
In[]:=
Ω=RegionDifference[Rectangle[],Disk[{1/2,1/2},1/5]];
定義 PDE 和邊界條件:
執行
In[]:=
pde=FluidFlowPDEComponent[vars,pars]=={0,0,0};​​bcs={DirichletCondition[{u[x,y]1,v[x,y]0},y1],DirichletCondition[{u[x,y]0,v[x,y]0},y<1],DirichletCondition[p[x,y]0,x0&&y0]};
根據參數 ℛℯ 建立一個納維爾-史托克斯解算器:
執行
In[]:=
navierStokesSolver=ParametricNDSolveValue[{pde,bcs},{u[x,y],v[x,y],p[x,y]},{x,y}∈Ω,ℛℯ,Method{"FiniteElement","InterpolationOrder"{u2,v2,p1}}];
求解雷諾數 ℛℯ=100 的納維爾-史托克斯方程式:
執行
In[]:=
{xVelocity,yVelocity,pressure}=navierStokesSolver[100];
繪製流體速度的流動圖:
執行
In[]:=
StreamPlot[{xVelocity,yVelocity},{x,y}∈Ω]

更多嘗試

◼
  • 使用雷諾數,ℛℯ,等於 1000(此方法在約 5000 之前應該收斂良好)。
  • ◼
  • 在解決方案區域中移孔洞來改變幾何形狀。
  • ◼
  • 新增第二個參數來改變頂部邊界條件的流速。
  • 下一步

    瀏覽流體動力學應用模型及專著或 FluidFlowPDEComponent 參考網頁。

    耦合傳熱和質量傳輸

    多重物理模型將同一物理系統的不同方面結合為一個耦合模型。例如依據溫度和濃度的化學反應:
    heattransfermodel
    ︷
    ∂T(t,x)
    ∂t
    +∇·(-k∇T(t,x))-Q
    =
    0
    masstransportmodel
    ︷
    ∂c(t,x)
    ∂t
    +∇·(-d∇c(t,x))-R
    =
    0
    求解在
    x∈[0,1]
    區間上的耦合熱量和質量輸送模型。
    設定熱傳質輸模型變數溫度
    T
    、濃度
    c
    和時間
    t
    :
    執行
    In[]:=
    hvars={T[t,x],t,{x}};​​mvars={c[t,x],t,{x}};
    指定耦合溫度和濃度的模型參數,包括熱傳導率
    k
    、質量擴散率
    d
    、熱源
    Q
    和質量源
    R
    :
    執行
    In[]:=
    pars=<|"ThermalConductivity"0.01,"DiffusionCoefficient"0.01,"HeatSource"0.2*R,"MassSource"R,R->-10^-3*T[t,x]*c[t,x]|>;
    設定耦合的 PDE 和初始條件:
    執行
    In[]:=
    pdes={HeatTransferPDEComponent[hvars,pars]0,MassTransportPDEComponent[mvars,pars]0};​​ics={T[0,x]200+800x,c[0,x]800};
    求解模型:
    執行
    In[]:=
    {Tfun,cfun}=NDSolveValue[{pdes,ics},{T,c},{t,0,10},{x}∈Line[{{0},{1}}]];
    探索解答如何隨時間演變:
    執行
    In[]:=
    ManipulatePlot{cfun[t,x],Tfun[t,x]},{x}∈Line[{{0},{1}}],
    ,{{t,1.3},0,10},
    

    更多嘗試

    ◼
  • 修改初始條件或參數 R。
  • ◼
  • 在兩個空間維度中設定、解決和視覺化問題。
  • 下一步

    瀏覽傳熱應用模型和專著、質量傳輸應用模型和專著或 HeatTransferPDEComponent 或 MassTransportPDEComponent 參考網頁。

    量子力學

    建立具有諧波勢的一維時間相關問題:
    執行
    In[]:=
    vars={Ψ[t,x],t,{x}};​​pars=<|"ReducedPlanckConstant"->1,"SchrodingerPotential"->
    2
    x
    2
    |>;
    定義 PDE,以相干態作為初始條件:
    執行
    In[]:=
    pde=SchrodingerPDEComponent[vars,pars]==0;​​ic=Ψ[0,x]==
    1
    4
    1
    π
    -
    2
    (x-1)
    2
    
    ;
    求解得到的模型:
    執行
    In[]:=
    solution=NDSolveValue[{pde,ic},Ψ,{t,0,20},{x,-4,4}]
    視覺化在經典轉折點之間振盪的相干態:
    執行
    In[]:=
    AnimatePlot
    2
    Norm[solution[t,x]]
    ,
    2
    x
    2
    ,{x,-4,4},
    ,{t,0,20},
    

    更多嘗試

    ◼
  • 改變位勢和初始狀態來研究散射問題。
  • ◼
  • 計算與時間無關的漢米頓的特徵函數。
  • ◼
  • 在二維或三維空間中建立量子系統模型。
  • 下一步

    瀏覽物理應用模型和專著或 SchrodingerPDEComponent 參考網頁。