DiscretizePDE[cdata,mdata,sd,dep]
メソッドデータ mdata と解データ sd に基づく偏微分方程式の係数データ cdata の依存性 dep の一部を離散化して,DiscretizedPDEDataオブジェクトを生成する.
DiscretizePDE
DiscretizePDE[cdata,mdata,sd,dep]
メソッドデータ mdata と解データ sd に基づく偏微分方程式の係数データ cdata の依存性 dep の一部を離散化して,DiscretizedPDEDataオブジェクトを生成する.
詳細とオプション
- DiscretizePDEは,DiscretizedPDEDataオブジェクトを返す.
- 係数データ cdata は,InitializePDECoefficientsによって生成されるPDECoefficientDataオブジェクトである.
- メソッドデータ mdata は,InitializePDEMethodDataを通して生成される,FEMMethodData等の偏微分方程式のメソッドデータオブジェクトである.
- 依存性 dep は,次のいずれかでよい.
-
"Discrete" 離散変数に依存する線形係数 "IndexedDiscrete" 指標付きの離散変数に依存する線形係数 "Nonlinear" 非線形係数 "Parametric" パラメータには依存するが,時間には依存しない線形係数 "Stationary" 独立空間変数には依存するが,時間やパラメータには依存しない線形係数 "Transient" - 時間に依存する線形係数
- DiscretizePDE[cdata,mdata,sd]は,DiscretizePDE[cdata,mdata,sd,"Stationary"]に等しい.
- vd および sd の"Space"成分は,それぞれNumericalRegionオブジェクトとして表わされる空間変数および空間メッシュに設定されなければならない.
- vd の"DependentVariables"成分は,引数を持たない未知の関数名のリストに設定されなければならない.
- 時間依存問題については,vd および sd の"Time"成分は,それぞれ時間変数および現行の積分時間に設定されなければならない.
- 時間積分の際に,離散時間においてのみ変化する離散変数あるいは指標付き離散変数に関する時間依存問題については,vd および sd の"Discrete"および/または"IndexedDiscrete"の成分は,それぞれ離散変数と初期離散値に設定されるべきである.
- 解の過程で変化しないパラメータの問題については,vd および sd の"Parameters"成分は,それぞれパラメトリック変数と初期パラメトリック変数に設定されるべきである.
- 次のオプションを与えることができる.
-
"AssembleSystemMatrices" Automatic 系の行列をアセンブルするかどうか "PartialSystemMatricesAssembly" Automatic 系の行列のどの部分をアセンブルするか "SaveFiniteElements" False 計算された要素を保存するかどうか
例題
すべて開く すべて閉じる例 (1)
Needs["NDSolve`FEM`"]NumericalRegionを設定する:
nr = ToNumericalRegion[Rectangle[{0, 0}, {1, 1 / 2}]]vd = NDSolve`VariableData[{"DependentVariables", "Space"} -> {{u}, {x, y}}];
sd = NDSolve`SolutionData[{"Space"} -> {nr}];cdata = InitializePDECoefficients[vd, sd, "DiffusionCoefficients" -> {{-IdentityMatrix[2]}}];初期化された偏微分方程式の係数を,メソッドデータと解データに基づいて離散化する:
mdata = InitializePDEMethodData[vd, sd];
DiscretizePDE[cdata, mdata, sd]スコープ (2)
DiscretizePDE[cdata, mdata, sd] === DiscretizePDE[cdata, mdata, sd, "Stationary"]対の偏微分方程式の変数データおよび偏微分方程式係数を設定する:
vd2 = vd;
NDSolve`SetSolutionDataComponent[vd2, "DependentVariables", {u, v}];
methodData2 = InitializePDEMethodData[vd2, sd];
initPDECoeff2 = InitializePDECoefficients[vd2, sd, "DiffusionCoefficients" -> -{{{{(100000/91), 0}, {0, (5000/13)}}, {{0, (30000/91)}, {(5000/13), 0}}}, {{{0, (5000/13)}, {(30000/91), 0}}, {{(5000/13), 0}, {0, (100000/91)}}}}];メソッドデータと解データに基づいて,偏微分方程式係数の初期化された系を離散化する:
DiscretizePDE[initPDECoeff2, methodData2, sd]オプション (3)
"SaveFiniteElements" (1)
finiteElements = DiscretizePDE[cdata, mdata, sd, "SaveFiniteElements" -> True]finiteElements["StiffnessElements"]//ShortfiniteElements["LoadElements"]偏微分方程式の寄与係数が指定されていない場合には,要素は何も計算されない.
finiteElements["DampingElements"]finiteElements["MassElements"]finiteElements["StiffnessMatrix"]"AssembleSystemMatrices" (1)
"PartialSystemMatricesAssembly" (1)
偏微分方程式を部分的に離散化するためには,メッシュ要素をアセンブルされるブロックに分割しなければならない:
mdata2 = InitializePDEMethodData[vd, sd, Method -> {"FiniteElement", "MeshOptions" -> {"MeshElementBlocks" -> 5}}];mdata2["ElementMesh"]dpde1 = DiscretizePDE[cdata, mdata2, sd, "PartialSystemMatricesAssembly" -> {1, 2, 5}]MatrixPlot[dpde1["StiffnessMatrix"]]dpde2 = DiscretizePDE[cdata, mdata2, sd, "PartialSystemMatricesAssembly" -> {3, 4}]MatrixPlot[dpde2["StiffnessMatrix"]]dpde = DiscretizePDE[cdata, mdata2, sd]部分的にアセンブルされた系の行列の総和が,全体としてアセンブルされた系の行列に等しいことを確かめる:
dpde["StiffnessMatrix"] == dpde1["StiffnessMatrix"] + dpde2["StiffnessMatrix"]考えられる問題 (1)
DiscretizePDEが有限要素を保存する場合のために,系の行列は作成されない:
dPDE = DiscretizePDE[cdata, mdata, sd, "SaveFiniteElements" -> True]dPDE["StiffnessMatrix"]dPDE = DiscretizePDE[cdata, mdata, sd, "SaveFiniteElements" -> True, "AssembleSystemMatrices" -> True]dPDE["StiffnessMatrix"]dPDE["StiffnessElements"]//Shortテクニカルノート
関連するガイド
-
▪
- 有限要素法
テキスト
Wolfram Research (2014), DiscretizePDE, Wolfram言語関数, https://reference.wolfram.com/language/FEMDocumentation/ref/DiscretizePDE.html.
CMS
Wolfram Language. 2014. "DiscretizePDE." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/FEMDocumentation/ref/DiscretizePDE.html.
APA
Wolfram Language. (2014). DiscretizePDE. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/FEMDocumentation/ref/DiscretizePDE.html
BibTeX
@misc{reference.wolfram_2026_discretizepde, author="Wolfram Research", title="{DiscretizePDE}", year="2014", howpublished="\url{https://reference.wolfram.com/language/FEMDocumentation/ref/DiscretizePDE.html}", note=[Accessed: 19-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_discretizepde, organization={Wolfram Research}, title={DiscretizePDE}, year={2014}, url={https://reference.wolfram.com/language/FEMDocumentation/ref/DiscretizePDE.html}, note=[Accessed: 19-August-2026]}