Analiză de element finit – exemplu 1

De la YO3ITI
(Redirecționat de la Pentru un polinom)
Salt la: navigare, căutare

Analiza de element finit pentru o regiune definită de expresia unde și . Se încarcă pachetul pentru analiza de element finit:

Needs["NDSolve`FEM`"]

Se definește regiunea supusă analizei; vom folosi semnul de negare pentru a realiza o intersecție cu planul definit. Fără acest semn, regiunea de interes va fi un segment de cerc, ceea ce nu ne dorim:

Ω = ImplicitRegion[((x - 5)^2 + (y - 5)^2 <= 9), {{x, 0, 5}, {y, 0, 10}}];
implicit region segment cerc
Ω = ImplicitRegion[! ((x - 5)^2 + (y - 5)^2 <= 9), {{x, 0, 5}, {y, 0, 10}}];

Se generează imaginea:

RegionPlot[Ω, AspectRatio -> Automatic]
implicit region omega

Se definește un operator Laplace și se aplică un algoritm FEA cu un criteriu de convergență Dirichlet:

op = -Laplacian[u[x, y], {x, y}] - 20;
Subscript[Γ, D] = {DirichletCondition[u[x, y] == 0, x == 0 && 8 <= y <= 10], DirichletCondition[u[x, y] == 100, (x - 5)^2 + (y - 5)^2 == 3^2]};

Se rezolvă pentru criteriul de convergență ales; se generează imaginea pe intervalul

ufun = NDSolveValue[{op == 0, Subscript[Γ, D]}, u, {x, y}  Ω]
ContourPlot[ufun[x, y], {x, y}  Ω, ColorFunction -> "Temperature", AspectRatio -> Automatic]
implicit region thermal