Visualization
CLI tool: tdgl.visualize
tdgl.visualize
is a command line interface (CLI) for animating and interactively viewing the
time- and space-dependent results of TDGL simulations.
Visualize TDGL simulation data.
usage: python -m tdgl.visualize [-h] [--input INPUT] [-v] [-s]
[--dimensionless] [--axis-labels]
{interactive,animate} ...
Named Arguments
- --input
H5 file to visualize.
- -v, --verbose
Run in verbose mode.
Default: False
- -s, --silent
Run in silent mode.
Default: False
- --dimensionless
Use dimensionless x-y units.
Default: False
- --axis-labels
Add x-y axis labels.
Default: False
Sub-commands
interactive
Create an interactive plot of one or more quantities.
python -m tdgl.visualize interactive [-h]
[-q [{ORDER_PARAMETER,PHASE,SUPERCURRENT,NORMAL_CURRENT,VORTICITY,SCALAR_POTENTIAL,APPLIED_VECTOR_POTENTIAL,INDUCED_VECTOR_POTENTIAL,EPSILON,ALL} ...]]
Named Arguments
- -q, --quantities
Possible choices: ORDER_PARAMETER, PHASE, SUPERCURRENT, NORMAL_CURRENT, VORTICITY, SCALAR_POTENTIAL, APPLIED_VECTOR_POTENTIAL, INDUCED_VECTOR_POTENTIAL, EPSILON, ALL
Name(s) of the quantities to show. Because ‘quantities’ takes a variable number of arguments, it must be the last argument provided.
animate
Create an animation of the TDGL data.
python -m tdgl.visualize animate [-h] [-o OUTPUT] [-f FPS] [-d DPI]
[--figsize FIGSIZE FIGSIZE]
[--min-frame MIN_FRAME]
[--max-frame MAX_FRAME] [--autoscale]
[--axes-off] [--title-off]
[-q [{ORDER_PARAMETER,PHASE,SUPERCURRENT,NORMAL_CURRENT,VORTICITY,SCALAR_POTENTIAL,APPLIED_VECTOR_POTENTIAL,INDUCED_VECTOR_POTENTIAL,EPSILON,ALL} ...]]
Named Arguments
- -o, --output
Output file for animation.
- -f, --fps
Frame rate of the animation.
Default: 30
- -d, --dpi
Resolution in dots per inch.
Default: 200
- --figsize
Figure size (width, height) in inches.
- --min-frame
The first frame to render.
Default: 0
- --max-frame
The last frame to render (-1 indicates the last step in the simulation).
Default: -1
- --autoscale
Autoscale colorbar limits at each frame.
Default: False
- --axes-off
Turn the axes off.
Default: False
- --title-off
Turn figure title off.
Default: False
- -q, --quantities
Possible choices: ORDER_PARAMETER, PHASE, SUPERCURRENT, NORMAL_CURRENT, VORTICITY, SCALAR_POTENTIAL, APPLIED_VECTOR_POTENTIAL, INDUCED_VECTOR_POTENTIAL, EPSILON, ALL
Name(s) of the quantities to show. Because 11quantities11 takes a variable number of arguments, it must be the last argument provided.
Create animations
- tdgl.visualization.create_animation(input_file, *, output_file=None, quantities, fps=30, dpi=100, max_cols=4, min_frame=0, max_frame=-1, autoscale=False, quiver=False, dimensionless=False, axis_labels=False, axes_off=False, title_off=False, full_title=True, logger=None, silent=False, figure_kwargs=None, writer=None)[source]
Generates, and optionally saves, and animation of a TDGL simulation.
The animation will be in dimensionless units.
- Parameters
input_file (
Union
[str
,File
]) – An open h5py file or a path to an H5 file containing thetdgl.Solution
you would like to animate.output_file (
Optional
[str
]) – A path to which to save the animation, e.g., as a gif or mp4 video.quantities (
Union
[str
,Sequence
[str
]]) – The names of the quantities to animate.fps (
int
) – Frame rate in frames per second.dpi (
float
) – Resolution in dots per inch.max_cols (
int
) – The maxiumum number of columns in the subplot grid.min_frame (
int
) – The first frame of the animation.max_frame (
int
) – The last frame of the animation.autoscale (
bool
) – Autoscale colorbar limits at each frame.quiver (
bool
) – Add quiver arrows to the plots.axes_off (
bool
) – Turn off the axes for each subplot.title_off (
bool
) – Turn off the figure suptitle.full_title (
bool
) – Include the full “state” for each frame in the figure suptitle.figure_kwargs (
Optional
[Dict
[str
,Any
]]) – Keyword arguments passed toplt.subplots()
when creating the figure.writer (
Union
[str
,MovieWriter
,None
]) – Amatplotlib.animation.MovieWriter
instance to use when saving the animation.silent (
bool
) – Disable logging.dimensionless (bool) –
axis_labels (bool) –
- Return type
- Returns
The animation as a
matplotlib.animation.FuncAnimation
.
Plot Solutions
See also
tdgl.Solution.plot_currents()
, tdgl.Solution.plot_order_parameter()
,
tdgl.Solution.plot_field_at_positions()
, tdgl.Solution.plot_scalar_potential()
tdgl.Solution.plot_vorticity()
- tdgl.plot_currents(solution, ax=None, dataset=None, units=None, cmap='inferno', colorbar=True, auto_range_cutoff=None, symmetric_color_scale=False, vmin=None, vmax=None, streamplot=True, min_stream_amp=0.025, cross_section_coords=None, **kwargs)[source]
Plots the sheet current density for a given
tdgl.Solution
.Additional keyword arguments are passed to
plt.subplots()
.- Parameters
solution (
Solution
) – The Solution from which to extract sheet current.dataset (
Optional
[str
]) – The dataset to plot, either"supercurrent"
or"normal_current"
.None
indicates the total current density.units (
Optional
[str
]) – Units in which to plot the current density. Defaults tosolution.current_units / solution.device.length_units
.cmap (
str
) – Name of the matplotlib colormap to use.colorbar (
bool
) – Whether to add a colorbar to each subplot.auto_range_cutoff (
Union
[float
,Tuple
[float
,float
],None
]) – Cutoff percentile fortdgl.solution.plot_solution.auto_range_iqr()
.symmetric_color_scale (
bool
) – Whether to use a symmetric color scale (vmin = -vmax).vmin (
Optional
[float
]) – Color scale minimum to use for all layersvmax (
Optional
[float
]) – Color scale maximum to use for all layersstreamplot (
bool
) – Whether to overlay current streamlines on the plot.min_stream_amp (
float
) – Streamlines will not be drawn anywhere the current density is less than min_stream_amp * max(current_density). This avoids streamlines being drawn where there is no current flowing.cross_section_coords (
Union
[ndarray
,Sequence
[ndarray
],None
]) – Shape (m, 2) array of (x, y) coordinates for a cross-section (or a list of such arrays).
- Return type
- Returns
matplotlib figure and axes
- tdgl.plot_order_parameter(solution, squared=False, mag_cmap='viridis', phase_cmap='twilight_shifted', shading='gouraud', **kwargs)[source]
Plots the magnitude (or the magnitude squared) and phase of the complex order parameter, \(\psi=|\psi|e^{i\theta}\).
- Parameters
solution (
Solution
) – The solution for which to plot the order parameter.squared (
bool
) – Whether to plot the magnitude squared, \(|\psi|^2\).mag_cmap (
str
) – Name of the colormap to use for the magnitude.phase_cmap (
str
) – Name of the colormap to use for the phase.shading (
str
) – May be"flat"
or"gouraud"
. The latter does some interpolation.
- Return type
- Returns
matplotlib Figure and an array of two Axes objects.
- tdgl.plot_field_at_positions(solution, positions, zs=None, vector=False, units=None, grid_shape=(200, 200), grid_method='cubic', cmap='cividis', colorbar=True, auto_range_cutoff=None, share_color_scale=False, symmetric_color_scale=False, vmin=None, vmax=None, cross_section_coords=None, **kwargs)[source]
Plots the Biot-Savart field (either all three components or just the z component) at a given set of positions (x, y, z) outside of the device.
Note
This function plots only the field due to currents flowing in the device. It does not include the applied field.
Additional keyword arguments are passed to
plt.subplots()
. This function first evaluates the field atpositions
, then interpolates the resulting fields to a rectangular grid for plotting.- Parameters
solution (
Solution
) – The Solution from which to extract fields.positions (
ndarray
) – Shape (m, 2) array of (x, y) coordinates, or (m, 3) array of (x, y, z) coordinates at which to calculate the magnetic field.zs (
Union
[float
,ndarray
,None
]) – z coordinates at which to calculate the field. If positions has shape (m, 3), then this argument is not allowed. If zs is a scalar, then the fields are calculated in a plane parallel to the x-y plane. If zs is an array, then it must be same length as positions.vector (
bool
) – Whether to plot the full vector magnetic field or just the z component.units (
Optional
[str
]) – Units in which to plot the fields. Defaults tosolution.field_units
.grid_shape (
Union
[int
,Tuple
[int
,int
]]) – Shape of the desired rectangular grid. If a single integern
is given, then the grid will be square, shape(n, n)
.grid_method (
str
) – Interpolation method to use (seescipy.interpolate.griddata()
).max_cols – Maximum number of columns in the grid of subplots.
cmap (
str
) – Name of the matplotlib colormap to use.colorbar (
bool
) – Whether to add a colorbar to each subplot.auto_range_cutoff (
Union
[float
,Tuple
[float
,float
],None
]) – Cutoff percentile fortdgl.solution.plot_solution.auto_range_iqr()
.share_color_scale (
bool
) – Whether to force all layers to use the same color scale.symmetric_color_scale (
bool
) – Whether to use a symmetric color scale (vmin = -vmax).vmin (
Optional
[float
]) – Color scale minimum to use for all layersvmax (
Optional
[float
]) – Color scale maximum to use for all layerscross_section_coords (
Union
[float
,List
[float
],None
]) – Shape (m, 2) array of (x, y) coordinates for a cross-section (or a list of such arrays).
- Return type
- Returns
matplotlib figure and axes
- tdgl.plot_vorticity(solution, ax=None, cmap='coolwarm', units=None, auto_range_cutoff=None, symmetric_color_scale=True, vmin=None, vmax=None, shading='gouraud', **kwargs)[source]
Plots the vorticity in the film: \(\mathbf{\omega}=\mathbf{\nabla}\times\mathbf{K}\).
- Parameters
solution (
Solution
) – The solution for which to plot the vorticity.cmap (
str
) – Name of the matplotlib colormap to use.units (
Optional
[str
]) – The units in which to plot the vorticity. Must have dimensions of [current] / [length]^2.auto_range_cutoff (
Union
[float
,Tuple
[float
,float
],None
]) – Cutoff percentile fortdgl.solution.plot_solution.auto_range_iqr()
.symmetric_color_scale (
bool
) – Whether to use a symmetric color scale (vmin = -vmax).shading (
str
) – May be"flat"
or"gouraud"
. The latter does some interpolation.
- Returns
matplotlib Figure and and Axes.
- tdgl.plot_scalar_potential(solution, ax=None, cmap='magma', auto_range_cutoff=None, vmin=None, vmax=None, shading='gouraud', **kwargs)[source]
Plots the scalar potential \(\mu(\mathbf{r})\) in the film.
- Parameters
solution (
Solution
) – The solution for which to plot the scalar potential.cmap (
str
) – Name of the matplotlib colormap to use.auto_range_cutoff (
Union
[float
,Tuple
[float
,float
],None
]) – Cutoff percentile fortdgl.solution.plot_solution.auto_range_iqr()
.shading (
str
) – May be"flat"
or"gouraud"
. The latter does some interpolation.
- Returns
matplotlib Figure and and Axes.
- tdgl.plot_current_through_paths(solution_path, paths, dataset=None, interp_method='linear', units=None, progress_bar=True, grid=True, labels=True, legend=True, **figure_kwargs)[source]
Plots the current through one or more paths for each saved time step.
- Parameters
solution_path (
PathLike
) – Path to the solution HDF5 file.paths (
Union
[ndarray
,List
[ndarray
]]) – A list of(n, 2)
arrays of(x, y)
coordinates defining the paths. A single(n, 2)
array is also allowed.dataset (
Optional
[str
]) –None
,"supercurrent"
, or"normal_current"
.None
indicates the total current.interp_method (
Literal
['linear'
,'cubic'
]) – Interpolation method: either “linear” or “cubic”.with_units – Whether to return a
pint.Quantity
with units attached.progress_bar (
bool
) – Whether to display a progress bar.grid (
bool
) – Whether to add grid lines to the plot.labels (
bool
) – Whether to include axis labels.legend (
bool
) – Whether to include a legend.
- Return type
Tuple
[Tuple
[Figure
,Axes
],Tuple
[ndarray
,Union
[ndarray
,List
[ndarray
]]]]- Returns
(fig, ax), (times, currents)
, wherecurrents
is a list of arrays of the time-dependent current through each path. Ifpaths
is given as a single array,currents
will be returned as a single array.
Plotting utilities
- tdgl.visualization.auto_range_iqr(data_array, cutoff_percentile=1)[source]
Get the min and max range of the provided array that excludes outliers following the IQR rule.
This function computes the inter-quartile-range (IQR), defined by Q3-Q1, i.e. the percentiles for 75 and 25 percent of the distribution. The region without outliers is defined by [Q1-1.5*IQR, Q3+1.5*IQR]. Taken from qcodes.
- Parameters
- Return type
- Returns
vmin, vmax