细胞变量*在 fipy 中的扩散

问题描述

我正在尝试在 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)

给出一个常规的扩散项和一个额外明确的源项。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...