import discretisedfield as df
import matplotlib.pyplot as plt
mesh = df.Mesh(p1=(-10e-9, -10e-9, -10e-9),
p2=(15e-9, 10e-9, 5e-9),
cell=(1e-9, 1e-9, 1e-9),
subregions={'r1': df.Region(p1=(-10e-9, -10e-9, -10e-9), p2=(0, 10e-9, 5e-9)),
'r2': df.Region(p1=(0e-9, -10e-9, -10e-9), p2=(15e-9, 10e-9, 5e-9))})
def value_fun(point):
x, y, z = point
c = 1e9
if x < -5e-9:
return (0, y*c, z*c)
else:
return (x*c, y*c, z*c)
field = df.Field(mesh, dim=3, value=value_fun, norm=1e6)
field.mesh.region.mpl()
field.mesh.region.mpl(figsize=(5, 5))
field.mesh.region.mpl(figsize=(5, 5), color='#000')
field.mesh.region.mpl(figsize=(5, 5), color='#000', multiplier=1e-6)
field.mesh.region.mpl(figsize=(5, 5), color='#000', multiplier=1e-6, filename='region.pdf')
field.mesh.region.k3d()
Output()
field.mesh.region.k3d(color=0x4f5c6a)
Output()
field.mesh.region.k3d(color=0x4f5c6a, multiplier=1e-6)
Output()
field.mesh.region.k3d(color=0x4f5c6a, multiplier=1e-6, wireframe=True)
Output()
mesh.mpl()
mesh.mpl(color=('C7', 'C2'))
mesh.mpl(figsize=(3, 3))
mesh.mpl(multiplier=1e-6)
mesh.mpl(multiplier=1e-6, linewidth=5)
mesh.mpl(multiplier=1e-6, linewidth=2, filename='mesh.pdf')
mesh.mpl(multiplier=1e-6, linewidth=2, linestyle='dashed')
mesh.mpl_subregions()
mesh.mpl_subregions(figsize=(5, 5))
mesh.mpl_subregions(color=('C2', 'C9'))
mesh.mpl_subregions(color=('C2', 'C9'), multiplier=1e-6)
mesh.mpl_subregions(color=('C2', 'C9'), multiplier=1e-6, linewidth=5)
mesh.mpl_subregions(color=('C2', 'C9'), multiplier=1e-6, linewidth=5, filename='subregions.pdf')
mesh.k3d()
Output()
mesh.k3d(color=[34568, 78905])
Output()
mesh.k3d(color=[34568, 78905], multiplier=1e-6)
Output()
mesh.k3d(color=[34568, 78905], multiplier=1e-6, wireframe=True)
Output()
mesh.k3d_subregions()
Output()
mesh.k3d_subregions(multiplier=1e-6)
Output()
mesh.k3d_subregions(multiplier=1e-6, color=(250, 250250))
Output()
mesh.k3d_subregions(multiplier=1e-6, color=(250, 250250), wireframe=True)
Output()
mesh.slider('x')
SelectionSlider(description='x (nm)', index=12, options=((-9.5, -9.5e-09), (-8.5, -8.5e-09), (-7.5, -7.5e-09),…
mesh.slider('y')
SelectionSlider(description='y (nm)', index=10, options=((-9.5, -9.5e-09), (-8.5, -8.5e-09), (-7.5, -7.5e-09),…
mesh.slider('z')
SelectionSlider(description='z (nm)', index=7, options=((-9.5, -9.5e-09), (-8.5, -8.5e-09), (-7.5, -7.5e-09), …
mesh.axis_selector()
Dropdown(description='axis', index=2, options=('x', 'y', 'z'), value='z')
mesh.axis_selector(widget='radiobuttons')
RadioButtons(description='axis', index=2, options=('x', 'y', 'z'), value='z')
mesh.axis_selector(widget='radiobuttons', description='A')
RadioButtons(description='A', index=2, options=('x', 'y', 'z'), value='z')
mpl_scalar
¶Not sliced -> error.
#field.mpl_scalar()
Vector field -> error
#field.plane('z').mpl_scalar()
field.x.plane('z').mpl_scalar()
Filter field must be passed
field.x.plane('z').mpl_scalar(filter_field=field.x)
Turn off colorbar
field.x.plane('z').mpl_scalar(filter_field=field.x, colorbar=False)
Colorbar label
field.x.plane('z').mpl_scalar(filter_field=field.x, colorbar_label='something')
Increase figure size to fit colorbar.
field.x.plane('z').mpl_scalar(figsize=(12, 8), filter_field=field.x, colorbar_label='something')
Colormap limits
field.x.plane('z').mpl_scalar(figsize=(9, 5), filter_field=field.x, colorbar_label='something', clim=(0, 1e6))
Change multiplier
field.x.plane('z').mpl_scalar(figsize=(9, 5), filter_field=field.x, colorbar_label='something', multiplier=1e-12)
field.x.plane('z').mpl_scalar(figsize=(9, 5), filter_field=field.x, colorbar_label='something', multiplier=1)
Saving field
field.x.plane('z').mpl_scalar(filename='scalar.pdf')
Passing imshow argument
field.x.plane('z').mpl_scalar(interpolation='bilinear')
mpl_vector
¶Not sliced -> error
#field.mpl_vector()
field.plane('z').mpl_vector()
Reduce the number of vectors.
field.plane('z', n=(20, 10)).mpl_vector()
Turn off color
field.plane('z', n=(20, 10)).mpl_vector(color=False)
Use different color field (color is still False).
field.plane('z', n=(20, 10)).mpl_vector(color=False, color_field=field.x)
Color is now on by default
field.plane('z', n=(20, 10)).mpl_vector(color_field=field.x, colorbar=True)
Turn off colorbar
field.plane('z', n=(20, 10)).mpl_vector(color_field=field.x, colorbar=False)
Add colorbar label
field.plane('z', n=(20, 10)).mpl_vector(color_field=field.x, colorbar_label='something')
Colormap
field.plane('z', n=(20, 10)).mpl_vector(color_field=field.x, colorbar_label='something', cmap='plasma')
Colormap limit
field.plane('z', n=(20, 10)).mpl_vector(color_field=field.x, colorbar_label='something', clim=(0, 1e6))
Multiplier
field.plane('z', n=(20, 10)).mpl_vector(color_field=field.x, colorbar_label='something', multiplier=1)
Figsize
field.plane('z', n=(20, 10)).mpl_vector(figsize=(5, 3))
Saving plot
field.plane('z', n=(20, 10)).mpl_vector(figsize=(5, 3), filename='vector.pdf')
Quiver argument
field.plane('z', n=(20, 10)).mpl_vector(headwidth=8)
Scale
field.curl.plane('z', n=(20, 10)).mpl_vector(scale=5e15)
mpl
¶Not sliced -> error
#field.mpl()
Default behaviour
field.plane('x').mpl()
Changing figsize to fit colorbar
field.plane('x').mpl(figsize=(10, 6))
Change scalar field
field.plane('x').mpl(figsize=(10, 6), scalar_field=field.y)
Turn off colorbar
field.plane('x').mpl(figsize=(10, 6), scalar_field=field.y, scalar_colorbar=False)
Add scalar colorbar label
field.plane('x').mpl(figsize=(10, 6), scalar_field=field.y, scalar_colorbar_label='something')
Add filter field
field.plane('z').mpl(figsize=(10, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something')
Scalar colormap
field.plane('z').mpl(figsize=(10, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something',
scalar_cmap='plasma')
field.plane('z').mpl(figsize=(10, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something',
scalar_cmap='plasma', scalar_clim=(0, 1e6))
Vector field
field.plane('z').mpl(figsize=(10, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something',
scalar_cmap='plasma', scalar_clim=(0, 1e6), vector_field=field.div, vector_scale=3e16)
Color vector field (vector_color is False)
field.plane('z').mpl(figsize=(10, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something',
scalar_cmap='plasma', scalar_clim=(0, 1e6), vector_field=field.div, vector_color_field=field.y,
vector_scale=3e16)
vector_color is now True
field.plane('z').mpl(figsize=(10, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something',
scalar_cmap='plasma', scalar_clim=(0, 1e6), vector_field=field.curl,
vector_color_field=field.y, vector_color=True, vector_scale=7e15)
Add vector colorbar
field.plane('z').mpl(figsize=(12, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something',
scalar_cmap='plasma', scalar_clim=(0, 1e6), vector_field=field.div, vector_color_field=field.y, vector_color=True,
vector_colorbar=True, vector_scale=3e16)
Label vector colorbar
field.plane('z').mpl(figsize=(12, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something',
scalar_cmap='plasma', scalar_clim=(0, 1e6), vector_field=field.div, vector_color_field=field.y,
vector_color=True, vector_colorbar=True, vector_colorbar_label='vector', vector_scale=3e16)
Vector cmap
field.plane('z').mpl(figsize=(12, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something',
scalar_cmap='plasma', scalar_clim=(0, 1e6), vector_field=field, vector_color_field=field.y, vector_color=True,
vector_colorbar=True, vector_colorbar_label='vector', vector_cmap='hsv')
Vector clim
field.plane('z').mpl(figsize=(12, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something',
scalar_cmap='plasma', scalar_clim=(0, 1e6), vector_field=field, vector_color_field=field.y, vector_color=True,
vector_colorbar=True, vector_colorbar_label='vector', vector_cmap='hsv', vector_clim=(0, 1e6))
Multiplier
field.plane('z').mpl(figsize=(12, 6), scalar_filter_field=field.x, scalar_field=field.y, scalar_colorbar_label='something',
scalar_cmap='plasma', scalar_clim=(0, 1e6), vector_field=field, vector_color_field=field.y, vector_color=True,
vector_colorbar=True, vector_colorbar_label='vector', vector_cmap='hsv', vector_clim=(0, 1e6),
multiplier=1e-12)
Save plot
field.plane('x').mpl(figsize=(12, 6), scalar_field=field.plane('x').angle, scalar_colorbar_label='something',
scalar_cmap='twilight', vector_field=field, vector_color_field=field.y, vector_color=True,
vector_colorbar=True, vector_colorbar_label='vector', vector_cmap='hsv', vector_clim=(0, 1e6),
multiplier=1e-12, filename='mpl.pdf')