问题描述
我正在尝试在 fipy 中解决以下 coupled pde's。我尝试了以下
eq1 = (DiffusionTerm(coeff=1,var=f)-f*DiffusionTerm(coeff=1,var=phi)
+f-f**3 == 0)
eq2 = (2*DiffusionTerm(coeff=f,var=phi)+f*DiffusionTerm(coeff=1,var=phi)
== 0)
eq = eq1 & eq2
eq.solve()
但它不喜欢“f*DiffusionTerm(coeff=1,var=phi)”,我得到了错误。 “TermMultiplyError:必须将项乘以 int 或 float。”有没有办法实现单元变量乘以扩散项?
解决方法
以下都不适用于 FiPy,
version: "3.8"
networks:
traefik_webgateway_2:
external: true
services:
web:
image: myfront
command: ["node","server"]
environment:
- TZ=America/Sao_Paulo
networks:
- traefik_webgateway_2
deploy:
replicas: 1
restart_policy:
condition: on-failure
delay: 5s
labels:
- "traefik.docker.network=traefik_webgateway_2"
- "traefik.http.routers.myfront.rule=Host(`myfront.example.com`)"
- "traefik.http.routers.myfront.entrypoints=web"
- "traefik.http.routers.myfront.service=myfront"
- "traefik.http.services.myfront.loadbalancer.server.port=8080"
它们对于有限体积方法中的离散化根本没有意义。无论如何,您可以使用以下身份重写感兴趣的术语
基本上,而不是使用
from fipy import CellVariable,DiffusionTerm,Grid1D
mesh = Grid1D(nx=10)
var = CellVariable(mesh=mesh)
# eqn = var * DiffusionTerm(coeff=1)
eqn = ImplicitSourceTerm(coeff=DiffusionTerm(coeff=1))
eqn.solve(var)
你可以使用
var * DiffusionTerm(coeff=1)
给出一个常规的扩散项和一个额外明确的源项。