Wolfram FEM | 試してみよう

コードはどれも,コード内をクリックしてから,編集したり,
+
を押して実行したりできます.
有限要素法 WolframのFEMは,初心者から専門家までを対象に,高度な幾何学および可視化機能と完全に統合されたマルチフィジックス偏微分方程式モデル,ソルバ,シームレスな後処理関数を提供することで設計の動作を捉えます.

流体力学

記号的なレイノルズ数 ℛℯ,流体速度
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]];
偏微分方程式および境界条件を定義する:
実行
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までは良好に収束するはずである).
  • ◼
  • 解領域内の穴を移動することによって幾何学的構造が変更できる.
  • ◼
  • 第2パラメータを追加して,上部境界条件における流速を変更する.
  • 次のステップ

    流体力学の応用モデルおよびモノグラフまたは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]|>;
    連成された偏微分方程式および初期条件を設定する:
    実行
    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
    |>;
    コヒーレント状態を初期条件とする偏微分方程式を定義する:
    実行
    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のページを参照することができる.