Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/mantidproject/mantid.git. Pull mirroring updated .
  1. Mar 22, 2021
  2. Mar 09, 2021
  3. Mar 08, 2021
  4. Mar 04, 2021
    • Adam J. Jackson's avatar
      Abins: add output/expt unit selection · 5000c5e3
      Adam J. Jackson authored
      Sometimes experimental data is provided in meV. There are also a
      couple of "gotchas" for end-users in converting results with Mantid's
      ConvertUnits dialogue: EMode must be set to Indirect, incident energy
      is not relevant, and "DeltaE" is the choice for meV while
      "DeltaE_inWavenumber" is the choice for cm-1.
      
      As a convenience, provide an Abins option in familiar units. The
      selected units will also be assumed for any experimental data file
      provided to the same Abins call.
      5000c5e3
    • Adam J. Jackson's avatar
      Remove 2D instruments · 95cbb38c
      Adam J. Jackson authored
      Some of the supporting infrastructure is left behind, but generally
      the purpose here is to strip back the changes a bit. This branch still
      covers iteration over angles, Instrument settings, Lagrange and
      pushing a bunch of the Abins algorithm into a parent class. Quite a
      lot as-is, would be good to review/merge while solving problems with 2D.
      95cbb38c
    • Adam J. Jackson's avatar
      WIP Abins hacks: write .nxspe file for MARI data, dummy workspace · 28b45e9f
      Adam J. Jackson authored
      Work in progress, developing angle-resolved outputs. This version
      succesfully produces .nxspe files, but
      
      - writes a useless dummy workspace
      - doesn't let user choose output file location
      - MSLICE doesn't look great with these files due to hard-coded
        detector widths
      28b45e9f
    • Adam J. Jackson's avatar
      Abins: remove loop over incident energy · bbd3d6ac
      Adam J. Jackson authored
      Currently, Abins calculations for direct instruments will loop over
      several incident energies and sum the results together.
      
      It is not clear that this is especially useful, and has not been
      directly requested by users. In an experimental scenario we would
      expect several spectra to be collected at different incident energies,
      and compared with simulations at the same energies.
      
      This removes one level of looping/nesting from Abins, and may allow us
      to further remove some of the redundant code separating 1-D and 2-D
      runs.
      bbd3d6ac
    • Adam J. Jackson's avatar
      Abins: flake8 cleanup · 5d250e53
      Adam J. Jackson authored
      5d250e53
    • Adam J. Jackson's avatar
    • Adam J. Jackson's avatar
      Use PyChop to implement MAPS and MARI simulations with Abins · dcfe636e
      Adam J. Jackson authored
      - PyChop is used to compute resolution functions.
        - Rather than implement each instrument separately, a common
          PyChopInstrument class can be instantiated to instances that
          represent different instruments. The abstraction in
          get_instrument() has paid off!
      - In addition, the instrument data in Pychop provides detector angle
        ranges
        - We sub-sample these ranges to give a reasonable amount of coverage.
        - This is not quite the same as what we would get in MSLICE, as we
          are able to place each sub-angle along its exact trajectory (no
          ambiguity within detectors).
        - Without sub-sampling, the results appear too sparse and are
          difficult to interpret.
      
      - refactor management of angles, so that instruments are responsible
        for reporting the series of sampled angles. This allows a wider
        range of approaches as appropriate.
      dcfe636e
    • Adam J. Jackson's avatar
      Connect Lagrange "settings" to abinsalgorithm framework · 4881caaf
      Adam J. Jackson authored
      Pass the selected setting to get_instrument. For now this is only
      implemented in Abins1D (for use with Lagrange).
      
      The property setup is implemented in abinsalgorithm to enable a more
      consistent infrastructure; we do expect 2D instruments to have settings.
      4881caaf
    • Adam J. Jackson's avatar
      Abins: initial work on Lagrange instrument simulation · 3106de1c
      Adam J. Jackson authored
      - Add a Lagrange instrument, based on TOSCA
      - For now, factor common features into a common parent class for
        indirect instruments supporting powder averaging. As model
        is developed it should become clear how similar they really are...
      - At the moment the energy-q relationship is copied from TOSCA. In
        fact Lagrange has a different geometry that seems to sample many q
        for each final energy. More development/discussion needed.
      - Add a "setting" option to Abins interface, selecting from instrument
        configurations. For Lagrange this selects the monochromator.
      - The broadening is selected depending on the monochromator. For now
        the values follow the relations reported on Lagrange
        website. However, it should be possible to obtain a more
        accurate (and complex) energy/width function for use here.
      3106de1c
    • Adam J. Jackson's avatar
      Abins2D set incident energy from GUI; restore bin_width parameter · c7f9c403
      Adam J. Jackson authored
      - The bin_width advanced parameter, while no longer required for
        general program flow, is still needed for cache invalidation of HDF5
        data from previous runs with different sampling. This is restored to
        prevent Abins breaking when bin_width was changed in a follow-up
        run.
      
      - Allow the Map2D instrument e_init to be set from the GUI. This is an
        adjustable parameter for many direct instruments, and should be
        easily accessible in user simulations. It strongly interacts with
        the sample angle to determine the measured spectrum.
      c7f9c403
    • Adam J. Jackson's avatar
      Abins: move most messages to INFORMATION level, improve Progress bar · 977fa8f5
      Adam J. Jackson authored
      - Output at NOTICE level was excessive, especially for Abins2D
      - The Abins S calculator can now accept a mantid Process object to
        handle progress bar as appropriate.
      - We don't know at beginning of Algorithm how many steps S calculator
        will need, but as this is potentially the most expensive step we
        reserve 70% of the progress bar space. This is then subdivided as
        appropriate to the calculation.
      - For now we increment at each atom, data q-point and incident
        energy. Finer increments would be possible by splitting over
        order (or even as chunks of bands are processed), but this already
        provides quite satisfactory progress and should deliver meaningful
        time estimates.
      977fa8f5
    • Adam J. Jackson's avatar
    • Adam J. Jackson's avatar
      Abins algorithms: simplify state by removing _atoms_data attribute · 4b916e3a
      Adam J. Jackson authored
      The _atoms_data is only used in a few places; pass it as an argument
      rather than attaching it to the Algorithm as a private property.
      4b916e3a
    • Adam J. Jackson's avatar
    • Adam J. Jackson's avatar
    • Adam J. Jackson's avatar
      Abins2D algorithm cleanup · 1c026875
      Adam J. Jackson authored
      1c026875
    • Adam J. Jackson's avatar
      Abins 2D as a separate Algorithm · 02b950c6
      Adam J. Jackson authored
      This is an initial implementation of a separate "Abins2D" interface,
      based on the version built for a demonstration to ISIS Molecular
      Spectroscopy scientists.
      
      - Further user testing is needed to determine the appropriate feature
        set. Suggestions already under consideration include:
      
        - Instrument setting/chopper options
        - Incident energy selection
      
      The free entry of resolution value should be removed and replaced with
      a reasonable selection of instruments/setups with appropriate set
      values. A natural first target will be MAPS.
      
      Initial testing shows a curious behaviour in the current
      implementation, which reduces overall intensity as the resolution
      width is increased.
      02b950c6
    • Adam J. Jackson's avatar
      Abins 2D: Break out some common 1D/2D features into a new file. · f72aa309
      Adam J. Jackson authored
      Use multiple inheritance(!) to set up some private methods that
      provide the common stuff and keep 1D and 2D algorithms fairly lean
      and easy to a) compare b) maintain
      f72aa309
    • Adam J. Jackson's avatar
      Abins tests: update to new 2D resolution name · a7e640b7
      Adam J. Jackson authored
      - Also removing check and corresponding test that resolution width must be
        less than 1. Why not? If the user wants a broad spectrum, let them
        have one. It's not for us to say that a large delta function is
        unreasonable.
      a7e640b7
    • Adam J. Jackson's avatar
      Abins: get 2D map working on top of changes to broadening, params · 62e23b7d
      Adam J. Jackson authored
      - delta_width doesn't do anything, use the 'resolution' parameter for
        broadening width
      
      - remove all references to pkt_per_peak, this is a relic of the old
        broadening setup
      
      - For now, use 'interpolate' scheme as default for 2D
        map. As we are using a fixed sigma, this should be equivalent to a
        simple convolution; we can improve performance from here by adding a
        'convolution' scheme that only accepts scalar sigma.
      
      - remove offset of first sample by bin_width. This must be a remnant
        of when frequency samples were located at the right side of the bin.
      
      - spelling correction / consistency: rebined -> rebinned
      
      - PEP8 spacing cleanup
      62e23b7d
    • Adam J. Jackson's avatar
      Abins: fix some references after rebase · dcc06bba
      Adam J. Jackson authored
      A few things broke while rebasing the direct map prototype onto some
      other refactoring.
      
      Some unit tests are still broken due to additional advanced
      parameters. It would be nice if only the _relevant_ advanced parameter
      blocks were written out and tested against; TwoDMap parameters have no
      bearing on TOSCA calculations.
      
      The handling of bin_width is a bit messy. Need to decide if this is
      and advanced parameter (living with the wavenumber range parameters in
      AbinsParameters.sampling) or something that should be in the user
      interface (and passed around as a variable). Advanced parameter seems
      more consistent and sensible all-round (insofar as using advanced
      parameters is sensible at all.)
      
      Abins.py is getting the active instrument name by querying the
      Instrument object, but this information may also be available as
      self._instrument_name? Potential for more cleanup there.
      dcc06bba
    • Adam J. Jackson's avatar
      Abins: Fix summing over direct spectra · fafcf189
      Adam J. Jackson authored
      fafcf189
    • Adam J. Jackson's avatar
      Abins: rearrange 2D spectrum to play nicely with slice viewer · c6ce5300
      Adam J. Jackson authored
      Known regression: summing over 2D spectra doesn't work
      c6ce5300
    • Adam J. Jackson's avatar
      Abins 2D: GroupWorkspace created correctly for multiple q-order calc · 858d717a
      Adam J. Jackson authored
      Currently the outputs display quite nicely in the MantidPlot spectral
      viewer but don't seem to work at all with workbench slice viewer.
      
      Performance is also slow relative to the 3.9.2 code, in part due to
      the new instability detection/threshold logic which spends a lot of
      iterations finding an appropriate threshold.
      858d717a
    • Adam J. Jackson's avatar
      Abins: Initial attempt to combine legacy 2D prototype with Mantid 4 · 5aecdd6c
      Adam J. Jackson authored
      Functionality to generate 2-d maps with Abins by selecting an
      alternative "Instrument", building on work by Krzysztof Dymkowski
      
      This is essentially a 3-way merge between the removed code from Mantid
      3.9.2, a more recent prototype set of AbinsModules, and the current
      Mantid code base. Some new development was needed to get Abins.py
      working but otherwise this is left as intact as possible for testing,
      benchmarking and further development.
      
      Currently not to be used for production calculations. Succesfully
      generates workspaces that can be viewed with the
      MantidPlot spectrum viewer, but results are unverified.
      Default precision of angular sweep has been reduced for speed.
      5aecdd6c
  5. Mar 01, 2021
  6. Feb 25, 2021
  7. Feb 17, 2021
  8. Feb 15, 2021
  9. Feb 12, 2021
Loading