MEF avec Wolfram | Choses à essayer

Effectuez des modifications et exécutez n’importe quel morceau de code en cliquant à l’intérieur du code et en appuyant sur
+
.
Méthode des éléments finis. Pour les débutants comme pour les experts, la FEM avec Wolfram capture le comportement de votre conception en fournissant des modèles d’équations différentielles partielles multiphysiques, des solveurs et des fonctions de post-traitement transparentes, entièrement intégrés avec des capacités avancées de géométrie et de visualisation.

Dynamiques des fluides

Établissez une équation de Navier–Stokes avec un nombre de Reynolds symbolique ℛℯ, les vitesses du fluide
u
et
v
et la pression
p
 :
Exécuter
In[]:=
vars={{u[x,y],v[x,y],p[x,y]},{x,y}};​​pars=<|"ReynoldsNumber"->ℛℯ|>;
Créez une géométrie avec un trou au milieu :
Exécuter
In[]:=
Ω=RegionDifference[Rectangle[],Disk[{1/2,1/2},1/5]];
Définissez l’EDP et les conditions aux limites :
Exécuter
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]};
Créez un solveur Navier–Stokes en fonction du paramètre ℛℯ :
Exécuter
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}}];
Résolvez l’équation de Navier–Stokes pour un nombre de Reynolds ℛℯ=100 :
Exécuter
In[]:=
{xVelocity,yVelocity,pressure}=navierStokesSolver[100];
Tracez un diagramme des vitesses des fluides :
Exécuter
In[]:=
StreamPlot[{xVelocity,yVelocity},{x,y}∈Ω]

Plus de choses à essayer

◼
  • Utilisez un nombre de Reynolds, ℛℯ, égal à 1000 (cette méthode devrait bien converger jusqu’à environ 5000).
  • ◼
  • Changez la géométrie en déplaçant le trou dans la région de la solution.
  • ◼
  • Ajoutez un deuxième paramètre pour modifier la vitesse d’écoulement au niveau de la condition limite supérieure.
  • Prochaines étapes

    Explorez les modèles d’application et les monographies sur la dynamique des fluides ou la page de référence de FluidFlowPDEComponent.

    Transfert de chaleur et transport de masse couplés

    Les modèles multiphysiques combinent différents aspects du même système physique en un seul modèle couplé. Par exemple, une réaction chimique dépendant de la température et de la concentration :
    heattransfermodel
    ︷
    ∂T(t,x)
    ∂t
    +∇·(-k∇T(t,x))-Q
    =
    0
    masstransportmodel
    ︷
    ∂c(t,x)
    ∂t
    +∇·(-d∇c(t,x))-R
    =
    0
    Résolvez un modèle couplé de transport de chaleur et de masse sur l’intervalle
    x∈[0,1]
    .
    Définissez les variables du modèle de transfert de chaleur et de transport de masse : température
    T
    , concentration
    c
    et temps
    t
     :
    Exécuter
    In[]:=
    hvars={T[t,x],t,{x}};​​mvars={c[t,x],t,{x}};
    Spécifiez les paramètres du modèle avec la conductivité thermique
    k
    , la diffusivité de masse
    d
    , la source de chaleur
    Q
    et la source de masse
    R
    qui couple la température et la concentration :
    Exécuter
    In[]:=
    pars=<|"ThermalConductivity"0.01,"DiffusionCoefficient"0.01,"HeatSource"0.2*R,"MassSource"R,R->-10^-3*T[t,x]*c[t,x]|>;
    Définissez les EDP couplées et les conditions initiales :
    Exécuter
    In[]:=
    pdes={HeatTransferPDEComponent[hvars,pars]0,MassTransportPDEComponent[mvars,pars]0};​​ics={T[0,x]200+800x,c[0,x]800};
    Résolvez le modèle :
    Exécuter
    In[]:=
    {Tfun,cfun}=NDSolveValue[{pdes,ics},{T,c},{t,0,10},{x}∈Line[{{0},{1}}]];
    Explorez l’évolution de la solution dans le temps :
    Exécuter
    In[]:=
    ManipulatePlot{cfun[t,x],Tfun[t,x]},{x}∈Line[{{0},{1}}],
    ,{{t,1.3},0,10},
    

    Plus de choses à essayer

    ◼
  • Modifiez les conditions initiales ou le paramètre R.
  • ◼
  • Définissez, résolvez et visualisez le problème en deux dimensions spatiales.
  • Prochaines étapes

    Explorez les modèles d’application et les monographies sur le transfert de chaleur,
    les modèles d’application et les monographies sur le transport de masse ou HeatTransferPDEComponent ou encore les pages de référence de MassTransportPDEComponent.

    Mécanique quantique

    Définissez un problème 1D dépendant du temps avec un potentiel harmonique :
    Exécuter
    In[]:=
    vars={Ψ[t,x],t,{x}};​​pars=<|"ReducedPlanckConstant"->1,"SchrodingerPotential"->
    2
    x
    2
    |>;
    Définissez l’EDP, avec un état cohérent comme condition initiale :
    Exécuter
    In[]:=
    pde=SchrodingerPDEComponent[vars,pars]==0;​​ic=Ψ[0,x]==
    1
    4
    1
    π
    -
    2
    (x-1)
    2
    
    ;
    Résolvez le modèle obtenu :
    Exécuter
    In[]:=
    solution=NDSolveValue[{pde,ic},Ψ,{t,0,20},{x,-4,4}]
    Visualisez l’état cohérent oscillant entre les points d’inflexion classiques :
    Exécuter
    In[]:=
    AnimatePlot
    2
    Norm[solution[t,x]]
    ,
    2
    x
    2
    ,{x,-4,4},
    ,{t,0,20},
    

    Plus de choses à essayer

    ◼
  • Modifiez le potentiel et l’état initial pour étudier un problème de diffusion.
  • ◼
  • Calculez les fonctions propres d’un hamiltonien indépendant du temps.
  • ◼
  • Modélisez un système quantique en deux ou trois dimensions spatiales.
  • Prochaines étapes

    Explorez les modèles d’application de la physique et les monographies ou la page de référence de SchrodingerPDEComponent.