Meeting notes - PaNOSC-ViNYL/workshop2020 GitHub Wiki

2020-04-20

RI presentations

ERIC-CERIC (A. Hafner)

- Oasys framework (based on orange)
- syned: abstract descriptor of widgets (source, optical elements)
- aljosa now expert to develop the code
- wise: raimondi et al (2015): numerical integration of huygens-fresnel (no FFT)
- -> very demanding in resources
    - ported wise-idl code to py
    - application: hard xray fel, grazing incidence
- remote access tool based on xpra and kubernetes
- runs in docker but users have access to their files
- access via VUO (elettra users)
- get access (RAFEC) to oasys canval in browser with screen sharing
- panosc objectives for oasys:
    - make available for other facilities
    - interoperability
    - documented beamlines
    - stregthen user communities

EuXFEL (J. E)

- SimEx: start-to-end simulation for advanced light sources
- current project:
    - hydrated protein
    - demonstrator for crystal diffraction
        - can generate diffraction patterns
        - WP4 tools can then analyze data
        - gauss source generator

- future projects:
    - pmi codes not well integrated
        - gromacs
        - cretin
        - refactor and improve documentation
        - need to update tutorials, currently too difficult to get started for new users

ELI-ALPS

Zsolt Lecz: Laser driven high reprate neutron sources at ELI-ALPS

- Transmutation project
    - generate ions, shoot on activated material → DD reaction, produce neutrons
    - HPL on Al foil
    - neutron prod. scheme: M. Roth et al. (2 stage scheme)
    - water droplets, 10-100 n/shot, 10^6..7 n/sec., isotropic emission at 2.45 MeV
    - converter script to produce neutron distributions in openpmd format

Mousumi Uphadhyay-Kahaly

- Presentation ELI-ALPS
- DFT: Ground state material properties ↔ strong field perturbations
- ASE: py environment for DFT sims (+TDDFT, quasiclass)
- Nomad-db: deposit material properties db

ESS (Mads Bertelsen)

- McStas dev team
- partly involved in WP8
- monolithic software
- new team, now more dedicated to panosc
- mcstas script:
    - py api to mcstas
    - pipy supported
    - used on beamtime, came out very flexible
    - integrated CI (travis)
    - HPC interface
    - lack internal review
    - API compatible with vinyl
    - sims can help understand background noise

- McStas:
    - move from phragmas to functions
    - gpu in beta (openacc)
        - large range of speedups

- openpmd extension:
    - now officially in beamph. extension
    - needs mpcl/openpmd conversion tool, ess showed interest

- WP8:
    - eneutrons migrated to ess servers (pan-learning)
    - has simple mcstas sim interface
    - no x-ray caps till now
    - will soon contact us

- wishlist:
    - vinyl server
    - CI
    - documented install procedure

Presentation of tasks

- Carsten presents and explains the tasks according to [gh issues]([github.com/PaNOSC-ViNYL/workshop2020/issues](https://github.com/PaNOSC-ViNYL/workshop2020/issues))

Teams:

Team 1: Mads + Zsolt
Team 2: Mousumi + Shervin
Team 3: Carsten + Juncheng + Aljosa

2020-04-21

Morning scrum meeting

Carsten:

- Started defining the vinyl base classes, relevant gh issue: https://github.com/PaNOSC-ViNYL/pyvinyl/issues/1

Mads:

- start work on abstract classes, work towards simex for now

Aljosa:

- study paper on beamline ID23 → paper is in issues
- use raytracing (faster)
- contact juncheng to coordinate interface to simex
    - use openpmd format ## Mousumi:
- work on presentation on usage of ASE
- need to discuss points 4- in relevant gh issue

Shervin:

- nomad not a solution for temp. workflow
- nomad can convert various qmd formats to own internal formats
- Files in the nomad repository not match the metadata systematically, finding files in Nomad is not an easy task

Juncheng:

- Make GAPD write pixelated images, so far only q,phi coordinates
- Consider treatment of coherence in GAPD

Zsolt:

- Finish pipeline to feed epoch data into mcstas

Afternoon scrum meeting

Shervin

- Is there a data sharing mechanism, so eg ILL staff can access data that
  was measured at EuXFEL or ESS without needing a serparate login. 
    - This may be part of WP3 or WP6 but details are not known.

Discussion about api design

- McStas is monolithic, so too much differentiation into calculators not
  needed or may even lead to problems. possible solution: make special

mcstas calculator, derived from abstract base calculator.

Juncheng

- GAPD pixelization, do it as in pysingfel
- calculate n photons from intensity:
    - possible issues in pysingfel

Shervin

- looks into powder component for mcstas

2020-04-22

Morning scrum meeting

Shervin

- Tutorial mongodb tutorial
- will continue next week to setup prototype sim metadata db
- talked to mads about ase output feed into mcstas
    - need more info from mousumi
    - will work on cif to hkl

Mads

- Reading simex source to understand calculator classes
- wanted to use simex base classes, problem with installation on mac
- suggest to install on a linux cluster

Aljosa

- suggest to install simex on cluster to mitigate dependency problems
- will continue on beamline id23

Juncheng

- went through pysingfel equations for diffracted intensity and started implementing pixelation in 

gapd

Zsolt

- finished example hdf file to be fed into mcstas
- needs more input on parametrization -> juncheng will show simex demo notebook to interested

Mousumi

- works on presentation
- wants to have analysis in same environment as sim
- wants to use tddft as rad-matter interaction
- presentation to come after review and comments from 
- works with shervin on nomad output and logs
- problem with connecting to maxwell

Carsten

- continue on vinyl-apis, start with top level class so mads can work against pyvinyl asap.

AoB

- Nicoletta (WP9) asked juncheng for content for social media postings, should be posted in the workshop slack first before sending out.
- Carsten will attend the PMC meeting this afternoon so not available for the afternoon scrum.

2020-04-23

Morning scrum

Carsten

* continue on pyvinyl, had to figure out how to do the type checking

Mads

* prototype for mcstas api using calculators and parameters

Juncheng

* Back on track to adjust GAPD code

Zsolt

* Trying to catch up with OO programming in py

Mousumi

* Conversion tool to convert QE output

Presentation by Mousumi

* DFT and TDDFT sims for s2e simulations
* Use ASE as interface to multiple DFT codes
* installation instructions 
-> can also use conda but DFT codes must be installed separately
* need a central pseudopotential repository
* crystal structures must come from somewhere -> eg COD
* QE has own file format
* <-> could use ase's converter (write) or openbabel
* perspectively also tddft can be run through ase

2020-04-24

Morning scrum

Carsten

* implemented dump, work on serialization
* will have to 

Mads

* will continue on simex/pyvinyl abstrac calcs
* asks for more details on features of pyvinyl to be able to take over some
  from carsten

Juncheng

* has finalized GAPD refactoring
* write interface to GAPD (GAPDCalculator)
* will try to catch up over weekend

Zsolt

* made progress in structuring code. shows current status. question about
  accessors in simex. will convert script to notebook and adopt simex style

and accessors.

Aljosa

* plan to have first prototype for simex in oasys with python scrip widget.
* original plan to pipe data directly but carsten recommends to dump to file
  between shadow and simex

Shervin

* played with mongo
* install ase on laptop, rewrite instructions in script
* use ase tools to QE <-> ASE
* create openpmd from zsolt's script to inject into mongodb

2020-04-27

Morning scrum

Carsten

* <++>

Mads

* Introduced basic checks of parameters in McStasParameter class
* Worked on introducing input_path in McStasScript as required by SimEx

Juncheng

* Discuss data format from ray-tracing with Aljosa
* Finish SimEx GAPD calculator unittest 

Zsolt

* Continues the implementation of Calculator and Parameter classes in SimEx needed for the demo laser-driven neutron source 

Mousumi

* <++>

Aljosa

* figure out output of Oasys objects
* has successfully installed SimEx and ran the test scripts with Juncheng's support

Shervin

* use Zsolt's script to produce an openPMD file to insert into MongoDB
* check how scheme validation works in Mongo
* find tools to convert from hd5 to json openPMD

2020-04-28

Morning scrum

Carsten

* <++>

Mads

* Uploaded repo for vinyl-mcstas prototype, had to implement input path
* needs more unit testing
* can take more work for the remainder

Juncheng

* working on bugs
* try finishing gapd calculator
* beam parameters in oasys, discussion with aljosa. suggested to make a
  polychromatic beam. 

Zsolt

* Uploaded files to neutrontools repo -> Mads will review, branch
  simex-compatible

Mousumi

* Tested ase converter back and forth, works ok
* calculate form factor: 
* need to explore interesting target for mcstas diffraction calculation

Aljosa

* will finish example on simex in oasys today
* can also do polychromatic diffraction with spectrum extracted from rays
* needs to figure out meaning of columns in oasys/shadow

Shervin

  • went through ASE doc to provide only last iteration data when converting QE into CIF

    • tools for CIF -> QE -> CIF -> HKL are available to get the form factors for McStas
  • openpmd insertion into mongo: more natural in json format, spent time on conversion. no conversion as of yet. Several issues on github on that:

    can work around by saving directly into json.

  • tried insertion into mongo with file. openPMD JSON too verbose, makes query difficult. Need scripts to convert openPMD json into slimmer BSON

  • will spend time with mads, mousumi.

  • need common compute resources -> juncheng will contact wp6p

2020-04-29

Morning scrum

Discussion on Format of Demo:

Shervin: - ask about repository github - jupyternotebook + documentation

Mads: - Set up a quick powder diffracttor instrument for Shervin - Remind the observers to attend the presentation - Carsten can send the invitation

Mads:

- Add more tests for McStats with new functions
- Review Zolts code
Today:
- Convert mcpo to openPMD
- Make Zolts output as the input of McStas

Shervin:

- mcpl into openPMD could be to much work?
- Mads: openPMD has its own API to write 

Ajosa:

- Needs help to write output conforming openopmd standard
- Will use Oasys to python code
- Oasys + SimEx docker to be prepared

Zsolt:

- Parameters as a dictionary

Shervin:

- Jupyternote book for Mousumi, to run ase. To find the right potential.
Today:
- HKL fileformat for McStats.

Carsten:

- Documentation for new pyvinyl API
- Short meeting at 9:00 AM

2020-04-30

Morning scrum

Carsten

* start demo notebook, 

Mads

* looked into hdf writer from mcpl (?)

Juncheng

* aljosa's environment works, prepare demo for mono and polychromatic source
  with oasys beamlines.

Zsolt

* jupyter notebook demo ready, will test some more

Mousumi

* absent today

Aljosa

* advanced with juncheng, has 2 interfaces: oasys gui and mock py script
  widgets: openpmd from shadow, gapd calculator & jupyter notebook bypassing
  oasys only shadow for raytracing, attached to GAPDCalculator. Marco maybe able to 

Shervin

* worked on demo for mousumi, include mads neutron instrument. uploaded to
  github. write readme with installation instructions. need mpich (mcstas

crashed with openmpi, works with mpich).