Wolfram FEM | Experimente!

Edite e execute qualquer trecho de código clicando dentro do código e pressionando
+
.
Método dos Elementos Finitos. Para iniciantes e especialistas, Wolfram FEM captura o comportamento do seu design fornecendo modelos de equações diferenciais parciais multifísicas, solucionadores e funções de pós-processamento integradas, com recursos avançados de geometria e visualização.

Dinâmica dos Fluidos

Configure a equação de Navier-Stokes com um número de Reynolds simbólico ℛℯ, velocidades do fluido
u
e
v
e pressão
p
:
Executar
In[]:=
vars={{u[x,y],v[x,y],p[x,y]},{x,y}};​​pars=<|"ReynoldsNumber"->ℛℯ|>;
Crie uma geometria com um furo no meio:
Executar
In[]:=
Ω=RegionDifference[Rectangle[],Disk[{1/2,1/2},1/5]];
Defina a PDE e as condições de contorno:
Executar
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]};
Crie um solucionador de Navier-Stokes dependente do parâmetro ℛℯ:
Executar
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}}];
Resolva a equação de Navier-Stokes para um número de Reynolds ℛℯ=100:
Executar
In[]:=
{xVelocity,yVelocity,pressure}=navierStokesSolver[100];
Crie um diagrama de fluxo das velocidades do fluido:
Executar
In[]:=
StreamPlot[{xVelocity,yVelocity},{x,y}∈Ω]

Outros Experimentos

◼
  • Use um número de Reynolds, ℛℯ, equivalente a 1000 (este método deve convergir bem até aproximadamente 5000).
  • ◼
  • Altere a geometria movendo o furo na região da solução.
  • ◼
  • Adicione um segundo parâmetro para alterar a velocidade do fluxo na condição de contorno superior.
  • Próximas Etapas

    Explore os modelos e monografias de aplicações em dinâmica dos fluidos ou a página de referência FluidFlowPDEComponent.

    Transferência de Calor Acoplada e Transporte de Massa

    Modelos multifísicos combinam diferentes aspectos do mesmo sistema físico em um modelo acoplado. Por exemplo, uma reação química dependente da temperatura e da concentração:
    heattransfermodel
    ︷
    ∂T(t,x)
    ∂t
    +∇·(-k∇T(t,x))-Q
    =
    0
    masstransportmodel
    ︷
    ∂c(t,x)
    ∂t
    +∇·(-d∇c(t,x))-R
    =
    0
    Resolva um modelo acoplado de transferência de calor e transporte de massa no intervalo
    x∈[0,1]
    .
    Defina as variáveis do modelo: temperatura
    T
    , concentração
    c
    e tempo
    t
    :
    Executar
    In[]:=
    hvars={T[t,x],t,{x}};​​mvars={c[t,x],t,{x}};
    Especifique os parâmetros do modelo, incluindo condutividade térmica
    k
    , difusividade de massa
    d
    , fonte de calor
    Q
    e fonte de massa
    R
    que acoplam temperatura e concentração:
    Executar
    In[]:=
    pars=<|"ThermalConductivity"0.01,"DiffusionCoefficient"0.01,"HeatSource"0.2*R,"MassSource"R,R->-10^-3*T[t,x]*c[t,x]|>;
    Configure as PDEs acopladas e as condições iniciais:
    Executar
    In[]:=
    pdes={HeatTransferPDEComponent[hvars,pars]0,MassTransportPDEComponent[mvars,pars]0};​​ics={T[0,x]200+800x,c[0,x]800};
    Resolva o modelo:
    Executar
    In[]:=
    {Tfun,cfun}=NDSolveValue[{pdes,ics},{T,c},{t,0,10},{x}∈Line[{{0},{1}}]];
    Explore como a solução evolui no tempo:
    Executar
    In[]:=
    ManipulatePlot{cfun[t,x],Tfun[t,x]},{x}∈Line[{{0},{1}}],
    ,{{t,1.3},0,10},
    

    Outros Experimentos

    ◼
  • Modifique as condições iniciais ou o parâmetro R.
  • ◼
  • Configure, resolva e visualize o problema em duas dimensões espaciais.
  • Próximas Etapas

    Explore os modelos e monografias de aplicações em transferência de calor,
    os modelos e monografias de transporte de massa ou as páginas de referência HeatTransferPDEComponent ou MassTransportPDEComponent.

    Mecânica Quântica

    Configure um problema unidimensional dependente do tempo com um potencial harmônico:
    Executar
    In[]:=
    vars={Ψ[t,x],t,{x}};​​pars=<|"ReducedPlanckConstant"->1,"SchrodingerPotential"->
    2
    x
    2
    |>;
    Defina a PDE com um estado coerente como condição inicial:
    Executar
    In[]:=
    pde=SchrodingerPDEComponent[vars,pars]==0;​​ic=Ψ[0,x]==
    1
    4
    1
    π
    -
    2
    (x-1)
    2
    
    ;
    Resolva o modelo resultante:
    Executar
    In[]:=
    solution=NDSolveValue[{pde,ic},Ψ,{t,0,20},{x,-4,4}]
    Visualize o estado coerente oscilando entre os pontos de retorno clássicos:
    Executar
    In[]:=
    AnimatePlot
    2
    Norm[solution[t,x]]
    ,
    2
    x
    2
    ,{x,-4,4},
    ,{t,0,20},
    

    Outros Experimentos

    ◼
  • Altere o potencial e o estado inicial para estudar um problema de espalhamento.
  • ◼
  • Calcule as autofunções de um Hamiltoniano independente do tempo.
  • ◼
  • Modele um sistema quântico em duas ou três dimensões espaciais.
  • Próximas Etapas

    Explore os modelos e monografias de aplicações em física ou a página de referência SchrodingerPDEComponent.