sas.qtgui.Utilities.MuMag package¶
Subpackages¶
Submodules¶
sas.qtgui.Utilities.MuMag.MuMag module¶
- class sas.qtgui.Utilities.MuMag.MuMag.MuMag(parent=None)¶
Bases:
QMainWindow,Ui_MuMagToolMain widget for the MuMag tool
- __doc__ = ' Main widget for the MuMag tool '¶
- __init__(self, /, parent: PySide6.QtWidgets.QWidget | None = None, flags: PySide6.QtCore.Qt.WindowType = Default(Qt.WindowFlags), *, iconSize: PySide6.QtCore.QSize | None = None, toolButtonStyle: PySide6.QtCore.Qt.ToolButtonStyle | None = None, animated: bool | None = None, documentMode: bool | None = None, tabShape: PySide6.QtWidgets.QTabWidget.TabShape | None = None, dockNestingEnabled: bool | None = None, dockOptions: PySide6.QtWidgets.QMainWindow.DockOption | None = None, unifiedTitleAndToolBarOnMac: bool | None = None) None¶
Initialize self. See help(type(self)) for accurate signature.
- __module__ = 'sas.qtgui.Utilities.MuMag.MuMag'¶
- get_fit_parameters() FitParameters¶
Get an object containing all the parameters needed for doing the fitting
- hide_everything()¶
Hide all plots, disable tabs
- importData()¶
Callback for the import data button
- onFit()¶
- onHelp()¶
- onSave()¶
Save button pressed
- show_fit_results()¶
Show the results of the fit in the widget
- show_input_data()¶
Plot Experimental Data: Generate Figure
- staticMetaObject = PySide6.QtCore.QMetaObject("MuMag" inherits "QMainWindow": )¶
- sas.qtgui.Utilities.MuMag.MuMag.main()¶
Show a demo of the slider
sas.qtgui.Utilities.MuMag.MuMagLib module¶
- class sas.qtgui.Utilities.MuMag.MuMagLib.MuMagLib¶
Bases:
objectLibrary for methods supporting MuMag
- __dict__ = mappingproxy({'__module__': 'sas.qtgui.Utilities.MuMag.MuMagLib', '__doc__': ' Library for methods supporting MuMag', 'logger': <Logger MuMag (WARNING)>, 'mu_0': 1.2566370614359173e-06, 'directory_popup': <staticmethod(<function MuMagLib.directory_popup>)>, 'import_data': <staticmethod(<function MuMagLib.import_data>)>, 'nice_log_plot_bounds': <staticmethod(<function MuMagLib.nice_log_plot_bounds>)>, 'simple_fit': <staticmethod(<function MuMagLib.simple_fit>)>, 'sweep_exchange_A': <staticmethod(<function MuMagLib.sweep_exchange_A>)>, 'least_squares_perpendicular': <staticmethod(<function MuMagLib.least_squares_perpendicular>)>, 'least_squares_parallel': <staticmethod(<function MuMagLib.least_squares_parallel>)>, 'refine_exchange_A': <staticmethod(<function MuMagLib.refine_exchange_A>)>, 'uncertainty': <staticmethod(<function MuMagLib.uncertainty>)>, '_filename_string': <staticmethod(<function MuMagLib._filename_string>)>, 'save_data': <staticmethod(<function MuMagLib.save_data>)>, '__dict__': <attribute '__dict__' of 'MuMagLib' objects>, '__weakref__': <attribute '__weakref__' of 'MuMagLib' objects>, '__annotations__': {}})¶
- __doc__ = ' Library for methods supporting MuMag'¶
- __module__ = 'sas.qtgui.Utilities.MuMag.MuMagLib'¶
- __weakref__¶
list of weak references to the object
- static _filename_string(datum: ExperimentalData)¶
Get the filename string associated with a bit of experimental data
- static directory_popup()¶
- static import_data(directory)¶
Import experimental data and get information from filenames
- static least_squares_parallel(data: list[ExperimentalData], A)¶
Least squares fitting for a given exchange stiffness, A, parallel case
We are fitting the equation:
- I_sim = I_res + response_H * S_H
= (I_res, S_H) . (1, response_H) = (I_res, S_H) . least_squares_x
finding I_res and S_H for each q value
- static least_squares_perpendicular(data: list[ExperimentalData], A) LeastSquaresOutputPerpendicular¶
Least squares fitting for a given exchange stiffness, A, perpendicular case
We are fitting the equation:
- I_sim = I_res + response_H * S_H + response_M * S_M
= (I_res, S_H, S_M) . (1, response_H, response_M) = (I_res, S_H, S_M) . least_squares_x
finding I_res, S_H, and S_M for each q value
- logger = <Logger MuMag (WARNING)>¶
- mu_0 = 1.2566370614359173e-06¶
- static nice_log_plot_bounds(data: list[ndarray])¶
Get nice bounds for the loglog plots
- Returns:
(lower, upper) bounds appropriate to pass to plt.xlim/ylim
- static refine_exchange_A(data: list[ExperimentalData], exchange_A_initial: float, geometry: ExperimentGeometry, epsilon: float = 0.0001) LeastSquaresOutputPerpendicular | LeastSquaresOutputParallel¶
Refines the A parameter using Jarratt’s method of successive parabolic interpolation
- static save_data(data: FitResults, directory: str)¶
Save the data
- static simple_fit(data: list[ExperimentalData], parameters: FitParameters)¶
Main fitting (“simple fit”)
- static sweep_exchange_A(parameters: FitParameters, data: list[ExperimentalData]) SweepOutput¶
Sweep over Exchange Stiffness A for perpendicular SANS geometry to get an initial estimate which can then be refined
- static uncertainty(data: list[ExperimentalData], A_opt: float, geometry: ExperimentGeometry) float¶
Calculate the uncertainty for the optimal exchange stiffness A
sas.qtgui.Utilities.MuMag.datastructures module¶
- class sas.qtgui.Utilities.MuMag.datastructures.ExperimentGeometry(value)¶
Bases:
EnumType of experiment
- PARALLEL = 1¶
- PERPENDICULAR = 2¶
- __doc__ = ' Type of experiment '¶
- __module__ = 'sas.qtgui.Utilities.MuMag.datastructures'¶
- class sas.qtgui.Utilities.MuMag.datastructures.ExperimentalData(scattering_curve: Data1D, applied_field: float, saturation_magnetisation: float, demagnetising_field: float)¶
Bases:
objectDatapoint used as input for the MuMag tool
- __annotations__ = {'applied_field': <class 'float'>, 'demagnetising_field': <class 'float'>, 'saturation_magnetisation': <class 'float'>, 'scattering_curve': <class 'sas.qtgui.Plotting.PlotterData.Data1D'>}¶
- __dataclass_fields__ = {'applied_field': Field(name='applied_field',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'demagnetising_field': Field(name='demagnetising_field',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'saturation_magnetisation': Field(name='saturation_magnetisation',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'scattering_curve': Field(name='scattering_curve',type=<class 'sas.qtgui.Plotting.PlotterData.Data1D'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.qtgui.Utilities.MuMag.datastructures', '__annotations__': {'scattering_curve': <class 'sas.qtgui.Plotting.PlotterData.Data1D'>, 'applied_field': <class 'float'>, 'saturation_magnetisation': <class 'float'>, 'demagnetising_field': <class 'float'>}, '__doc__': ' Datapoint used as input for the MuMag tool', 'restrict_by_index': <function ExperimentalData.restrict_by_index>, '__dict__': <attribute '__dict__' of 'ExperimentalData' objects>, '__weakref__': <attribute '__weakref__' of 'ExperimentalData' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False), '__dataclass_fields__': {'scattering_curve': Field(name='scattering_curve',type=<class 'sas.qtgui.Plotting.PlotterData.Data1D'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'applied_field': Field(name='applied_field',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'saturation_magnetisation': Field(name='saturation_magnetisation',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'demagnetising_field': Field(name='demagnetising_field',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__init__': <function ExperimentalData.__init__>, '__repr__': <function ExperimentalData.__repr__>, '__eq__': <function ExperimentalData.__eq__>, '__hash__': None, '__match_args__': ('scattering_curve', 'applied_field', 'saturation_magnetisation', 'demagnetising_field')})¶
- __doc__ = ' Datapoint used as input for the MuMag tool'¶
- __eq__(other)¶
Return self==value.
- __hash__ = None¶
- __init__(scattering_curve: Data1D, applied_field: float, saturation_magnetisation: float, demagnetising_field: float) None¶
- __match_args__ = ('scattering_curve', 'applied_field', 'saturation_magnetisation', 'demagnetising_field')¶
- __module__ = 'sas.qtgui.Utilities.MuMag.datastructures'¶
- __repr__()¶
Return repr(self).
- __weakref__¶
list of weak references to the object
- applied_field: float¶
- demagnetising_field: float¶
- restrict_by_index(max_index: int)¶
Remove all points from data up to given index
- saturation_magnetisation: float¶
- exception sas.qtgui.Utilities.MuMag.datastructures.FitFailure¶
Bases:
ExceptionFit failed
- __doc__ = ' Fit failed '¶
- __module__ = 'sas.qtgui.Utilities.MuMag.datastructures'¶
- __weakref__¶
list of weak references to the object
- class sas.qtgui.Utilities.MuMag.datastructures.FitParameters(q_max: float, min_applied_field: float, exchange_A_min: float, exchange_A_max: float, exchange_A_n: int, experiment_geometry: ExperimentGeometry)¶
Bases:
objectInput parameters for the fit
- __annotations__ = {'exchange_A_max': <class 'float'>, 'exchange_A_min': <class 'float'>, 'exchange_A_n': <class 'int'>, 'experiment_geometry': <enum 'ExperimentGeometry'>, 'min_applied_field': <class 'float'>, 'q_max': <class 'float'>}¶
- __dataclass_fields__ = {'exchange_A_max': Field(name='exchange_A_max',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_min': Field(name='exchange_A_min',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_n': Field(name='exchange_A_n',type=<class 'int'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'experiment_geometry': Field(name='experiment_geometry',type=<enum 'ExperimentGeometry'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'min_applied_field': Field(name='min_applied_field',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'q_max': Field(name='q_max',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.qtgui.Utilities.MuMag.datastructures', '__annotations__': {'q_max': <class 'float'>, 'min_applied_field': <class 'float'>, 'exchange_A_min': <class 'float'>, 'exchange_A_max': <class 'float'>, 'exchange_A_n': <class 'int'>, 'experiment_geometry': <enum 'ExperimentGeometry'>}, '__doc__': ' Input parameters for the fit', '__dict__': <attribute '__dict__' of 'FitParameters' objects>, '__weakref__': <attribute '__weakref__' of 'FitParameters' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False), '__dataclass_fields__': {'q_max': Field(name='q_max',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'min_applied_field': Field(name='min_applied_field',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_min': Field(name='exchange_A_min',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_max': Field(name='exchange_A_max',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_n': Field(name='exchange_A_n',type=<class 'int'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'experiment_geometry': Field(name='experiment_geometry',type=<enum 'ExperimentGeometry'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__init__': <function FitParameters.__init__>, '__repr__': <function FitParameters.__repr__>, '__eq__': <function FitParameters.__eq__>, '__hash__': None, '__match_args__': ('q_max', 'min_applied_field', 'exchange_A_min', 'exchange_A_max', 'exchange_A_n', 'experiment_geometry')})¶
- __doc__ = ' Input parameters for the fit'¶
- __eq__(other)¶
Return self==value.
- __hash__ = None¶
- __init__(q_max: float, min_applied_field: float, exchange_A_min: float, exchange_A_max: float, exchange_A_n: int, experiment_geometry: ExperimentGeometry) None¶
- __match_args__ = ('q_max', 'min_applied_field', 'exchange_A_min', 'exchange_A_max', 'exchange_A_n', 'experiment_geometry')¶
- __module__ = 'sas.qtgui.Utilities.MuMag.datastructures'¶
- __repr__()¶
Return repr(self).
- __weakref__¶
list of weak references to the object
- exchange_A_max: float¶
- exchange_A_min: float¶
- exchange_A_n: int¶
- experiment_geometry: ExperimentGeometry¶
- min_applied_field: float¶
- q_max: float¶
- class sas.qtgui.Utilities.MuMag.datastructures.FitResults(parameters: FitParameters, input_data: list[ExperimentalData], sweep_data: SweepOutput, refined_fit_data: LeastSquaresOutputParallel | LeastSquaresOutputPerpendicular, optimal_exchange_A_uncertainty: float)¶
Bases:
objectOutput the MuMag fit
- __annotations__ = {'input_data': list[sas.qtgui.Utilities.MuMag.datastructures.ExperimentalData], 'optimal_exchange_A_uncertainty': <class 'float'>, 'parameters': <class 'sas.qtgui.Utilities.MuMag.datastructures.FitParameters'>, 'refined_fit_data': sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutputParallel | sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutputPerpendicular, 'sweep_data': <class 'sas.qtgui.Utilities.MuMag.datastructures.SweepOutput'>}¶
- __dataclass_fields__ = {'input_data': Field(name='input_data',type=list[sas.qtgui.Utilities.MuMag.datastructures.ExperimentalData],default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'optimal_exchange_A_uncertainty': Field(name='optimal_exchange_A_uncertainty',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'parameters': Field(name='parameters',type=<class 'sas.qtgui.Utilities.MuMag.datastructures.FitParameters'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'refined_fit_data': Field(name='refined_fit_data',type=sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutputParallel | sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutputPerpendicular,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'sweep_data': Field(name='sweep_data',type=<class 'sas.qtgui.Utilities.MuMag.datastructures.SweepOutput'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.qtgui.Utilities.MuMag.datastructures', '__annotations__': {'parameters': <class 'sas.qtgui.Utilities.MuMag.datastructures.FitParameters'>, 'input_data': list[sas.qtgui.Utilities.MuMag.datastructures.ExperimentalData], 'sweep_data': <class 'sas.qtgui.Utilities.MuMag.datastructures.SweepOutput'>, 'refined_fit_data': sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutputParallel | sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutputPerpendicular, 'optimal_exchange_A_uncertainty': <class 'float'>}, '__doc__': ' Output the MuMag fit ', '__dict__': <attribute '__dict__' of 'FitResults' objects>, '__weakref__': <attribute '__weakref__' of 'FitResults' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False), '__dataclass_fields__': {'parameters': Field(name='parameters',type=<class 'sas.qtgui.Utilities.MuMag.datastructures.FitParameters'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'input_data': Field(name='input_data',type=list[sas.qtgui.Utilities.MuMag.datastructures.ExperimentalData],default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'sweep_data': Field(name='sweep_data',type=<class 'sas.qtgui.Utilities.MuMag.datastructures.SweepOutput'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'refined_fit_data': Field(name='refined_fit_data',type=sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutputParallel | sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutputPerpendicular,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'optimal_exchange_A_uncertainty': Field(name='optimal_exchange_A_uncertainty',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__init__': <function FitResults.__init__>, '__repr__': <function FitResults.__repr__>, '__eq__': <function FitResults.__eq__>, '__hash__': None, '__match_args__': ('parameters', 'input_data', 'sweep_data', 'refined_fit_data', 'optimal_exchange_A_uncertainty')})¶
- __doc__ = ' Output the MuMag fit '¶
- __eq__(other)¶
Return self==value.
- __hash__ = None¶
- __init__(parameters: FitParameters, input_data: list[ExperimentalData], sweep_data: SweepOutput, refined_fit_data: LeastSquaresOutputParallel | LeastSquaresOutputPerpendicular, optimal_exchange_A_uncertainty: float) None¶
- __match_args__ = ('parameters', 'input_data', 'sweep_data', 'refined_fit_data', 'optimal_exchange_A_uncertainty')¶
- __module__ = 'sas.qtgui.Utilities.MuMag.datastructures'¶
- __repr__()¶
Return repr(self).
- __weakref__¶
list of weak references to the object
- input_data: list[ExperimentalData]¶
- optimal_exchange_A_uncertainty: float¶
- parameters: FitParameters¶
- refined_fit_data: LeastSquaresOutputParallel | LeastSquaresOutputPerpendicular¶
- sweep_data: SweepOutput¶
- class sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutput(exchange_A: float, exchange_A_chi_sq: float, q: ndarray, I_simulated: ndarray, I_residual: ndarray, S_H: ndarray, I_residual_stdev: ndarray, S_H_stdev: ndarray)¶
Bases:
objectOutput from least squares method
- I_residual: ndarray¶
- I_residual_stdev: ndarray¶
- I_simulated: ndarray¶
- S_H: ndarray¶
- S_H_stdev: ndarray¶
- __annotations__ = {'I_residual': <class 'numpy.ndarray'>, 'I_residual_stdev': <class 'numpy.ndarray'>, 'I_simulated': <class 'numpy.ndarray'>, 'S_H': <class 'numpy.ndarray'>, 'S_H_stdev': <class 'numpy.ndarray'>, 'exchange_A': <class 'float'>, 'exchange_A_chi_sq': <class 'float'>, 'q': <class 'numpy.ndarray'>}¶
- __dataclass_fields__ = {'I_residual': Field(name='I_residual',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_residual_stdev': Field(name='I_residual_stdev',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_simulated': Field(name='I_simulated',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_H': Field(name='S_H',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_H_stdev': Field(name='S_H_stdev',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A': Field(name='exchange_A',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_chi_sq': Field(name='exchange_A_chi_sq',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'q': Field(name='q',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.qtgui.Utilities.MuMag.datastructures', '__annotations__': {'exchange_A': <class 'float'>, 'exchange_A_chi_sq': <class 'float'>, 'q': <class 'numpy.ndarray'>, 'I_simulated': <class 'numpy.ndarray'>, 'I_residual': <class 'numpy.ndarray'>, 'S_H': <class 'numpy.ndarray'>, 'I_residual_stdev': <class 'numpy.ndarray'>, 'S_H_stdev': <class 'numpy.ndarray'>}, '__doc__': ' Output from least squares method', '__dict__': <attribute '__dict__' of 'LeastSquaresOutput' objects>, '__weakref__': <attribute '__weakref__' of 'LeastSquaresOutput' objects>, '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False), '__dataclass_fields__': {'exchange_A': Field(name='exchange_A',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_chi_sq': Field(name='exchange_A_chi_sq',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'q': Field(name='q',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_simulated': Field(name='I_simulated',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_residual': Field(name='I_residual',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_H': Field(name='S_H',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_residual_stdev': Field(name='I_residual_stdev',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_H_stdev': Field(name='S_H_stdev',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__init__': <function LeastSquaresOutput.__init__>, '__repr__': <function LeastSquaresOutput.__repr__>, '__eq__': <function LeastSquaresOutput.__eq__>, '__hash__': None, '__match_args__': ('exchange_A', 'exchange_A_chi_sq', 'q', 'I_simulated', 'I_residual', 'S_H', 'I_residual_stdev', 'S_H_stdev')})¶
- __doc__ = ' Output from least squares method'¶
- __eq__(other)¶
Return self==value.
- __hash__ = None¶
- __init__(exchange_A: float, exchange_A_chi_sq: float, q: ndarray, I_simulated: ndarray, I_residual: ndarray, S_H: ndarray, I_residual_stdev: ndarray, S_H_stdev: ndarray) None¶
- __match_args__ = ('exchange_A', 'exchange_A_chi_sq', 'q', 'I_simulated', 'I_residual', 'S_H', 'I_residual_stdev', 'S_H_stdev')¶
- __module__ = 'sas.qtgui.Utilities.MuMag.datastructures'¶
- __repr__()¶
Return repr(self).
- __weakref__¶
list of weak references to the object
- exchange_A: float¶
- exchange_A_chi_sq: float¶
- q: ndarray¶
- class sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutputParallel(exchange_A: float, exchange_A_chi_sq: float, q: ndarray, I_simulated: ndarray, I_residual: ndarray, S_H: ndarray, I_residual_stdev: ndarray, S_H_stdev: ndarray)¶
Bases:
LeastSquaresOutputOutput from least squares method for parallel case
- __annotations__ = {}¶
- __dataclass_fields__ = {'I_residual': Field(name='I_residual',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_residual_stdev': Field(name='I_residual_stdev',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_simulated': Field(name='I_simulated',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_H': Field(name='S_H',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_H_stdev': Field(name='S_H_stdev',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A': Field(name='exchange_A',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_chi_sq': Field(name='exchange_A_chi_sq',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'q': Field(name='q',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False)¶
- __doc__ = ' Output from least squares method for parallel case'¶
- __eq__(other)¶
Return self==value.
- __hash__ = None¶
- __init__(exchange_A: float, exchange_A_chi_sq: float, q: ndarray, I_simulated: ndarray, I_residual: ndarray, S_H: ndarray, I_residual_stdev: ndarray, S_H_stdev: ndarray) None¶
- __match_args__ = ('exchange_A', 'exchange_A_chi_sq', 'q', 'I_simulated', 'I_residual', 'S_H', 'I_residual_stdev', 'S_H_stdev')¶
- __module__ = 'sas.qtgui.Utilities.MuMag.datastructures'¶
- __repr__()¶
Return repr(self).
- class sas.qtgui.Utilities.MuMag.datastructures.LeastSquaresOutputPerpendicular(exchange_A: float, exchange_A_chi_sq: float, q: ndarray, I_simulated: ndarray, I_residual: ndarray, S_H: ndarray, I_residual_stdev: ndarray, S_H_stdev: ndarray, S_M: ndarray, S_M_stdev: ndarray)¶
Bases:
LeastSquaresOutputOutput from least squares method for perpendicular case
- S_M: ndarray¶
- S_M_stdev: ndarray¶
- __annotations__ = {'S_M': <class 'numpy.ndarray'>, 'S_M_stdev': <class 'numpy.ndarray'>}¶
- __dataclass_fields__ = {'I_residual': Field(name='I_residual',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_residual_stdev': Field(name='I_residual_stdev',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'I_simulated': Field(name='I_simulated',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_H': Field(name='S_H',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_H_stdev': Field(name='S_H_stdev',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_M': Field(name='S_M',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'S_M_stdev': Field(name='S_M_stdev',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A': Field(name='exchange_A',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_chi_sq': Field(name='exchange_A_chi_sq',type=<class 'float'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'q': Field(name='q',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False)¶
- __doc__ = ' Output from least squares method for perpendicular case'¶
- __eq__(other)¶
Return self==value.
- __hash__ = None¶
- __init__(exchange_A: float, exchange_A_chi_sq: float, q: ndarray, I_simulated: ndarray, I_residual: ndarray, S_H: ndarray, I_residual_stdev: ndarray, S_H_stdev: ndarray, S_M: ndarray, S_M_stdev: ndarray) None¶
- __match_args__ = ('exchange_A', 'exchange_A_chi_sq', 'q', 'I_simulated', 'I_residual', 'S_H', 'I_residual_stdev', 'S_H_stdev', 'S_M', 'S_M_stdev')¶
- __module__ = 'sas.qtgui.Utilities.MuMag.datastructures'¶
- __repr__()¶
Return repr(self).
- exception sas.qtgui.Utilities.MuMag.datastructures.LoadFailure¶
Bases:
ExceptionFile loading failed
- __doc__ = ' File loading failed '¶
- __module__ = 'sas.qtgui.Utilities.MuMag.datastructures'¶
- __weakref__¶
list of weak references to the object
- class sas.qtgui.Utilities.MuMag.datastructures.SweepOutput(exchange_A_checked: ndarray, exchange_A_chi_sq: ndarray, optimal: T)¶
Bases:
Generic[T]Results from brute force optimisiation of the chi squared for the exchange A parameter
- __annotations__ = {'exchange_A_checked': <class 'numpy.ndarray'>, 'exchange_A_chi_sq': <class 'numpy.ndarray'>, 'optimal': ~T}¶
- __dataclass_fields__ = {'exchange_A_checked': Field(name='exchange_A_checked',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_chi_sq': Field(name='exchange_A_chi_sq',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'optimal': Field(name='optimal',type=~T,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}¶
- __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False)¶
- __dict__ = mappingproxy({'__module__': 'sas.qtgui.Utilities.MuMag.datastructures', '__annotations__': {'exchange_A_checked': <class 'numpy.ndarray'>, 'exchange_A_chi_sq': <class 'numpy.ndarray'>, 'optimal': ~T}, '__doc__': '\n Results from brute force optimisiation of the chi squared for the exchange A parameter\n ', '__orig_bases__': (typing.Generic[~T],), '__dict__': <attribute '__dict__' of 'SweepOutput' objects>, '__weakref__': <attribute '__weakref__' of 'SweepOutput' objects>, '__parameters__': (~T,), '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False), '__dataclass_fields__': {'exchange_A_checked': Field(name='exchange_A_checked',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'exchange_A_chi_sq': Field(name='exchange_A_chi_sq',type=<class 'numpy.ndarray'>,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'optimal': Field(name='optimal',type=~T,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__init__': <function SweepOutput.__init__>, '__repr__': <function SweepOutput.__repr__>, '__eq__': <function SweepOutput.__eq__>, '__hash__': None, '__match_args__': ('exchange_A_checked', 'exchange_A_chi_sq', 'optimal')})¶
- __doc__ = '\n Results from brute force optimisiation of the chi squared for the exchange A parameter\n '¶
- __eq__(other)¶
Return self==value.
- __hash__ = None¶
- __init__(exchange_A_checked: ndarray, exchange_A_chi_sq: ndarray, optimal: T) None¶
- __match_args__ = ('exchange_A_checked', 'exchange_A_chi_sq', 'optimal')¶
- __module__ = 'sas.qtgui.Utilities.MuMag.datastructures'¶
- __orig_bases__ = (typing.Generic[~T],)¶
- __parameters__ = (~T,)¶
- __repr__()¶
Return repr(self).
- __weakref__¶
list of weak references to the object
- exchange_A_checked: ndarray¶
- exchange_A_chi_sq: ndarray¶
- optimal: T¶
sas.qtgui.Utilities.MuMag.models module¶
- sas.qtgui.Utilities.MuMag.models.LorentzianModelPAR(q, A, M_s, H_0, H_dem, a_H, l_c)¶
Lorentzian Model for the generation of clean synthetic test data for parallel SANS geometry
- sas.qtgui.Utilities.MuMag.models.LorentzianModelPERP(q, A, M_s, H_0, H_dem, a_H, a_M, l_c)¶
Lorentzian Model for the generation of clean synthetic test data for perpendicular SANS geometry
- sas.qtgui.Utilities.MuMag.models.LorentzianNoisyModelPERP(q, A, M_s, H_0, H_dem, a_H, a_M, l_c, beta)¶
Lorentzian Model for the generation of noisy synthetic test data for perpendicular SANS geometry
- sas.qtgui.Utilities.MuMag.models.SANS_Model_PAR(q, S_H, I_res, M_s, H_0, H_dem, A)¶
1D-Cross-Section of the parallel model
- sas.qtgui.Utilities.MuMag.models.SANS_Model_PERP(q, S_H, S_M, I_res, M_s, H_0, H_dem, A)¶
1D-Cross-Section of the perendicular model