Mesh boundary conditions#
In Ubermag, boundary conditions are set by passing bc argument to the mesh. The value of the bc argument is a string. The following boudary conditions (BC) are allowed:
open BC (
bc='')periodic BC (
bc='x',bc='xy',bc='xyz',bc='y',…) assuming that the names of geometric dimensions are'x','y', and'z'Neumann BC (
bc='neumann') - experimentalDirichlet BC (
bc='dirichlet') - experimental
To demonstrate boundary conditions, we are going to use the following mesh:
[1]:
import discretisedfield as df
p1 = (0, 0, 0)
p2 = (100e-9, 50e-9, 20e-9)
n = (20, 10, 4)
region = df.Region(p1=p1, p2=p2)
mesh = df.Mesh(region=region, n=n)
By default, boudary conditions are open (empty string):
[2]:
mesh.bc
[2]:
''
Periodic boundary conditions#
Now, let us define a mesh with periodic boundary conditions. The periodic boudary conditions are defined by passing a string to bc. When the geometric dimensions are x, y, and z, the string can consist of characters 'x', 'y', and/or 'z', depending on the directions in which the mesh is periodic. For instance, if our mesh is periodic in x and y directions, we pass bc='xy'.
[3]:
mesh = df.Mesh(region=region, n=n, bc="xy")
Experimental: Neumann and Dirichet boundary conditions#
Neumann and Dirichlet BC are defined by passing bc='neumann' or bc='dirichet', respectively.
IMPORTANT: At the moment, only Neumann BC with zero value are supported and defining BC in a more general way will be included in the future releases of discretisedfield.
Here we just include an example of defining Neumann BC:
[4]:
mesh = df.Mesh(region=region, n=n, bc="neumann")
mesh
[4]:
- Region
- pmin = [0.0, 0.0, 0.0]
- pmax = [1e-07, 5e-08, 2e-08]
- dims = ['x', 'y', 'z']
- units = ['m', 'm', 'm']
- n = [20, 10, 4]
- bc = neumann