1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python

import fipy

mesh = fipy.GmshImporter2D('test0.msh')
X,Y =  mesh.getFaceCenters()

x0,y0 = 10,0
r = 5

potential = fipy.CellVariable(mesh=mesh, name='potential', value=0.)
permittivity = 1.
potential.equation = (fipy.DiffusionTerm(coeff = permittivity) == 0.)

allfaces = mesh.getExteriorFaces()
ring = allfaces & ( (X-x0)**2+(Y-y0)**2 < (r+1.5)**2) 

bcs = (
    fipy.FixedValue(value=5.,faces=ring),
    fipy.FixedValue(value=0.,faces=mesh.getFacesLeft()),
)

potential.equation.solve(var=potential, boundaryConditions=bcs)

viewer = fipy.viewers.Viewer(vars=(potential,))
viewer.plot("estat-example-3.png")