examples.convection.exponential2D.tri2DΒΆ
This example solves the steady-state convection-diffusion equation as described in
examples.convection.exponential1D.mesh1D
with nx = 10
and ny = 10
.
>>> from fipy import CellVariable, Tri2D, DiffusionTerm, ExponentialConvectionTerm, Viewer
>>> from fipy.tools import numerix
>>> L = 10.
>>> nx = 10
>>> ny = 10
>>> mesh = Tri2D(L / nx, L / ny, nx, ny)
>>> valueLeft = 0.
>>> valueRight = 1.
>>> var = CellVariable(name = "concentration",
... mesh = mesh,
... value = valueLeft)
>>> var.constrain(valueLeft, mesh.facesLeft)
>>> var.constrain(valueRight, mesh.facesRight)
>>> diffCoeff = 1.
>>> convCoeff = (10., 0.)
>>> eq = (DiffusionTerm(coeff=diffCoeff)
... + ExponentialConvectionTerm(coeff=convCoeff))
>>> eq.solve(var = var)
The analytical solution test for this problem is given by:
>>> axis = 0
>>> x = mesh.cellCenters[axis]
>>> CC = 1. - numerix.exp(-convCoeff[axis] * x / diffCoeff)
>>> DD = 1. - numerix.exp(-convCoeff[axis] * L / diffCoeff)
>>> analyticalArray = CC / DD
>>> print(var.allclose(analyticalArray, rtol = 1e-10, atol = 1e-10))
1
>>> if __name__ == '__main__':
... viewer = Viewer(vars = var)
... viewer.plot()
Last updated on Nov 20, 2024.
Created using Sphinx 7.1.2.