bluemira.equilibria.diagnostics =============================== .. py:module:: bluemira.equilibria.diagnostics .. autoapi-nested-parse:: Diagnostic options for use in the equilibria module. Classes ------- .. autoapisummary:: bluemira.equilibria.diagnostics.GridPlotType bluemira.equilibria.diagnostics.EqSubplots bluemira.equilibria.diagnostics.PsiPlotType bluemira.equilibria.diagnostics.DivLegsToPlot bluemira.equilibria.diagnostics.EqPlotMask bluemira.equilibria.diagnostics.InterpGrid bluemira.equilibria.diagnostics.CSData bluemira.equilibria.diagnostics.FixedOrFree bluemira.equilibria.diagnostics.EqBPlotParam bluemira.equilibria.diagnostics.FluxSurfaceType bluemira.equilibria.diagnostics.EqDiagnosticOptions bluemira.equilibria.diagnostics.PicardDiagnostic bluemira.equilibria.diagnostics._PicardDiagnosticDescriptor bluemira.equilibria.diagnostics.PicardDiagnosticOptions Module Contents --------------- .. py:class:: GridPlotType(*args, **kwds) Bases: :py:obj:`enum.Flag` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.GridPlotType :parts: 1 :private-bases: Whether to plot grid lines, grid edge or both. .. py:attribute:: GRID .. py:attribute:: EDGE .. py:attribute:: GRID_WITH_EDGE .. py:class:: EqSubplots(*args, **kwds) Bases: :py:obj:`enum.Enum` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.EqSubplots :parts: 1 :private-bases: Type of plot axes. Determines number of subplots, axes label, etc. .. py:attribute:: XZ Plot x vs z .. py:attribute:: VS_PSI_NORM Plot vs normalised psi. .. py:attribute:: XZ_COMPONENT_PSI PLot x vs z for different psi components. .. py:attribute:: VS_PSI_NORM_STACK Plot parameters (numbers of which can vary) against the normalised psi. .. py:attribute:: VS_X Plot parameters (numbers of which can vary) against x. .. py:class:: PsiPlotType(*args, **kwds) Bases: :py:obj:`enum.Flag` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.PsiPlotType :parts: 1 :private-bases: For use with psi comparison plotter. .. py:attribute:: PSI Plot equilibrium psi. .. py:attribute:: PSI_DIFF Plot the difference between a reference equilibrium psi and the equilibrium psi. .. py:attribute:: PSI_ABS_DIFF Plot the absolute difference between a reference equilibrium psi and the equilibrium psi. .. py:attribute:: PSI_REL_DIFF Plot the relative difference between a reference equilibrium psi and the equilibrium psi. .. py:attribute:: DIFF .. py:class:: DivLegsToPlot(*args, **kwds) Bases: :py:obj:`enum.Flag` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.DivLegsToPlot :parts: 1 :private-bases: Which divertor legs to create plots for. .. py:attribute:: UP Upper pair of legs. .. py:attribute:: LW Lower pair of legs. .. py:attribute:: ALL All available legs. .. py:attribute:: PAIR .. py:class:: EqPlotMask(*args, **kwds) Bases: :py:obj:`enum.Flag` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.EqPlotMask :parts: 1 :private-bases: For LCFS masking in plots. Block the area within or outside of the reference LCFS. .. py:attribute:: NONE No mask. .. py:attribute:: IN_LCFS Mask out values inside chosen LCFS. .. py:attribute:: OUT_LCFS Mask out values outside chosen LCFS. .. py:attribute:: IN_REF_LCFS Mask out values inside reference LCFS. .. py:attribute:: OUT_REF_LCFS Mask out values outside reference LCFS. .. py:attribute:: IN_COMBO_LCFS Mask out values inside chosen and reference LCFS. .. py:attribute:: OUT_COMBO_LCFS Mask out values outside chosen and reference LCFS. .. py:attribute:: DIV_AREA Mask out the values outside divertor area. .. py:attribute:: POLYGON Mask out the values outside a chosen polygon area. .. py:attribute:: INPUT .. py:attribute:: REF .. py:attribute:: COMBO .. py:attribute:: LCFS .. py:attribute:: IN .. py:attribute:: OUT .. py:class:: InterpGrid(*args, **kwds) Bases: :py:obj:`enum.Enum` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.InterpGrid :parts: 1 :private-bases: Specify how the interpolated grid is sized. .. py:attribute:: OVERLAP Make a new grid for interpolation using the overlapping areas of the old grids. .. py:attribute:: BOTH Make a new grid for interpolation using an area which includes both of the old grids. .. py:class:: CSData(*args, **kwds) Bases: :py:obj:`enum.Enum` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.CSData :parts: 1 :private-bases: For the coilset comparison tables. Value to be compared: current, x-position, z-position, field, and force. .. py:attribute:: CURRENT :value: 'I [MA]' .. py:attribute:: XLOC :value: 'x [m]' .. py:attribute:: ZLOC :value: 'z [m]' .. py:attribute:: B :value: 'B [T]' .. py:attribute:: F :value: 'F [GN]' .. py:class:: FixedOrFree(*args, **kwds) Bases: :py:obj:`enum.Enum` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.FixedOrFree :parts: 1 :private-bases: For use in select_eq - to create an appropriate Equilibrium or FixedPlasmaEquilibrium object. Fixed or free boundary equilibrium. .. py:attribute:: FIXED .. py:attribute:: FREE .. py:class:: EqBPlotParam(*args, **kwds) Bases: :py:obj:`enum.Flag` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.EqBPlotParam :parts: 1 :private-bases: The parameter to plot for an equilibria xz plot. .. py:attribute:: PSI Poloidal Magnetic Flux .. py:attribute:: BP Poloidal Field .. py:attribute:: BT Toroidal Field .. py:attribute:: FIELD .. py:class:: FluxSurfaceType(*args, **kwds) Bases: :py:obj:`enum.Enum` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.FluxSurfaceType :parts: 1 :private-bases: For flux surface comparison plotting. Compare LCFSs, separatricies or flux surfaces with a given normalised psi. .. py:attribute:: LCFS .. py:attribute:: SEPARATRIX .. py:attribute:: PSI_NORM .. py:class:: EqDiagnosticOptions Diagnostic plotting options for Equilibrium. .. py:attribute:: psi_diff :type: PsiPlotType .. py:attribute:: split_psi_plots :type: EqSubplots .. py:attribute:: plot_mask :type: EqPlotMask .. py:attribute:: interpolation_grid :type: InterpGrid .. py:attribute:: plot_name :type: str :value: 'default_0' .. py:attribute:: folder :type: str | os.PathLike | None :value: None .. py:attribute:: save :type: bool :value: False .. py:method:: __post_init__() Post init folder definition .. py:class:: PicardDiagnostic(*args, **kwds) Bases: :py:obj:`enum.Flag` .. autoapi-inheritance-diagram:: bluemira.equilibria.diagnostics.PicardDiagnostic :parts: 1 :private-bases: Type of plot to view during optimisation. .. py:attribute:: EQ Plot the equilibrium .. py:attribute:: CONVERGENCE Plot the convergence .. py:attribute:: EQ_AND_CONVERGENCE Plot both equilibrium and convergence .. py:attribute:: NO_PLOT .. py:class:: _PicardDiagnosticDescriptor Descriptor for Picard diagnostics .. py:attribute:: _default .. py:method:: __set_name__(_, name: str) Set the attribute name from a dataclass .. py:method:: __get__(obj: Any, _) -> PicardDiagnostic Get the Diagnostic type :returns: The diagnostic .. py:method:: __set__(obj: Any, value: bool | str | int | list[str | int] | PicardDiagnostic) Set the diagnostic .. py:class:: PicardDiagnosticOptions Diagnostic plotting options for the Picard Iterator plot: What type of plot to produce. None for no plotting. gif: Whether or not to make a GIF plot_name: GIF plot file base-name figure_folder: The path where figures will be saved. If the input value is None (e.g. default) then this will be reinterpreted as the path data/plots/equilibria under the bluemira root folder, if that path is available. .. py:attribute:: plot :type: PicardDiagnostic .. py:attribute:: gif :type: bool :value: False .. py:attribute:: plot_name :type: str :value: 'default_0' .. py:attribute:: figure_folder :type: str | os.PathLike | None :value: None .. py:attribute:: file_format :type: str :value: 'svg' .. py:method:: __post_init__() Post init folder definition .. py:method:: finalise_plots() :staticmethod: Finalise plotting showing .. py:method:: make_gif() Make gif of iterator plot .. py:method:: update_figure(eq: bluemira.equilibria.equilibrium.Equilibrium, convergence: bluemira.equilibria.solve.ConvergenceCriterion, i: int) Updates the figure if plotting is used