Resurrecting the PyRules project - live particle physics research on Steem

in #steemstem6 years ago

Half a year ago, I introduced the PyRules project aiming to develop, through Steem, a full program to be used for state-of-the-art particle physics research.


[image credits: Domenico Salvagnin (CC BY 2.0)]

Very briefly, the idea consisted in building a Python framework that reads in a particle physics model (an equation given in the quantum field theory language) to be provided by a user.

After some systematic and textbook manipulations, the program then rewrites the model under a standard format to be used by various other particle physics packages, including particle collider simulators and dark matter calculators.

This project therefore aims to streamline the connection between a particle physics models and numerical calculations, through the development of an open access platform in Python by Steem users. For more information, please have a look to the kick-off post.

The project started well (see the GitHub repository of the project).

  • It includes a generic command-line interface (an extension of the Python cmd library).
  • The internal data format contains a class able to deal with parameters (the master equation above-mentioned contains many parameters).

It then moved on with a three-month hibernation stage because of too-full agendas… I would like, with this post, to try to resurrect it in a smooth way by proposing a few task developments (i.e. a few baby-steps towards our final goal). Those steps do not require any knowledge in particle physics, and only necessitate to check a few (already coded) files to get updated on what has been done a few months ago.


Parameters - the status

As promised above, we do not need any particle physics knowledge for now. It is sufficient to remember that the master equation behind any particle physics model depends on parameters, and that we focus only on the latter for today. They could be external (their numerical value is an input) or internal (they are given as a formula depending on other parameters).


[image credits: Laura Gilchrist (CC BY 2.0)]

In a model implementation (provided by the user), parameters are introduced with different properties (name, value, type, indices, etc.).

For more information, I refer to the two examples available in the examples subdirectory of the program. For the meaning of these different attributes, one can also check out this post.

The PyRules program so far consists in a command-line interface that can be started by typing in a shell

bin/pyrules
from the directory where the program has been unpacked. The interface allows for basic commands (EOF, exit, help, history, quit, shell) and understands what a parameter is (see src/parameter/parameter.py). This last file contains the definition of the PyRulesParameter format that is the internal way parameters are dealt with.

Parameters - task list


[image credits: geralt (CC0)]

In this post, we require the development of a few commands to be added to the interface. The new files will have to be pushed in src/interpreter.

For, we need to implement a way to link the parameter objects provided by the user and handle them within the internal PyRulesParameter format. One PyRulesParameter object has to be instantiated for each declared parameter. This thus requires:

  • An import commands allowing to import a directory containing the model implementation (that consists only in parameters for now).
  • A display command allowing to display information about a specific parameter given as an argument.
  • A set command allowing to change the numerical value of an external parameter. Internal parameters cannot be modified and any other option is not allowed to be modified.

Moreover, it is necessary to develop a few extra commands in a src/toolbox directory so that we can actually test stuff related to the parameters.

  • A series of boolean methods checking whether a parameter is a scalar or a tensor quantity (ScalarQ, TensorQ), whether it is a unitary, orthogonal or Hermitian matrix (UnitaryQ, OrthogonalQ, HermitianQ).
  • A NumericalValue method taking as input a valid Python formula (depending on the model parameters) and evaluating it.

In the aim of re-starting the project baby-step by baby-step, we will solely focus for now on this light list of tasks.

If you are interested in helping with one, two or even more of these tasks, feel free to try it out and join the project. For any question, please comment this post or reach me out on the SteemSTEM discord server.

Good luck and thanks in advance for participating to this project that could be seen as a one of a kind!


SteemSTEM

SteemSTEM aims to make Steem a better place for Science, Technology, Engineering and Mathematics (STEM) and to build a science communication platform on Steem.

Make sure to follow SteemSTEM on steemstem.io, Steemit, Facebook, Twitter and Instagram to always be up-to-date on our latest news and ideas. Please also consider to support the project by supporting our witness (@stem.witness) or by delegating to @steemstem for a ROI of 65% of our curation rewards (quick delegation links: 50SP | 100SP | 500SP | 1000SP | 5000SP | 10000SP).

Sort:  

I'm very happy to see this project revived. Hopefully it will be a bit easier for people to help out this time around. Last time I personally had some trouble figuring out where to start, and understanding what was going on, especially when I didn't know who was developing what.

For this reason I'd recommend creating separate issues on the repository and actually assigning them to people, so it's easier for others to get an overview of the situation.

I'll be starting my thesis soon, so probably won't have much time to help out, but if I do, I'll definitely give it a try. Good luck!


Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Chat with us on Discord.

[utopian-moderator]

Thanks for the review amos!

The issue-way of managing who does what is a very good idea that I will definitely follow. I will see on Discord who is interested in potentially tackling one or the other tasks and update github issues that I will create in the next 5-10 minute. I only hope at least someone has still an interest in the project... Let's see!

Thank you for your review, @amosbastian! Keep up the good work!

I believe this new project will be a great and attract physicist, although, you put it here that knowledge of Physics is not really require, i hope the task meant to be accomplished is understood by those that will participate in this project. More so, does one need the knowledge of computational Physics to join?

The idea is the opposite one: attracting Steem users to contribute to physics. At this stage, the only knowledge that is required consists in some programming skills in Python. But somehow basic ones.

Interested in joining? :)

I don't think so that am joining @lemouth, I don't anything about programming, so Python is out of my way.😂😂.

It is never too late to start learning :D

I will try to ,my hands are tight now, because definitely I will need Python later,

Good luck with resurrecting this. A project like this is something really unique that can only be done on the Steemstem platform so I'm excited to see it get off the ground again!

Unfortunately, I don't have the impression it is really taking off. People seem very busy those days, including myself :/

I'll help with the project, I promise.
But probably not right away unfortunately.
My wife is already wondering why I spend so much time on my laptop after working hours... 😣

Posted using Partiko Android

Easy solution: convert your wife to Steem :D

Hi @lemouth!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Hey, @lemouth!

Thanks for contributing on Utopian.
We’re already looking forward to your next task request!

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Congratulations @lemouth! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 44000 upvotes. Your next target is to reach 45000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

Are you a DrugWars early adopter? Benvenuto in famiglia!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Dear lemouth:

We are SteemBet, the next generation STEEM based gaming platform. We are honored to invite you to join our first fantastic dice game, which is just the beginning of SteemBet game series. Our dividend system has now launched. The prize pool has already accumulated 2,000 STEEM and more than 60 players have participated in staking mining token SBT. A huge reward of 40,000 STEEM is awaiting! Join us NOW with other 500 STEEM users to loot HUGE dividend reward!!

SteemBet Team

Official Website
https://steem-bet.com

Discord Server
https://discord.gg/95cBN3W

Telegram Group
https://t.me/steembet

Please stop spamming my blog!

Well, not to that extent... There is no need for a drama here. I just said what I wanted to say. The point has been made, the story is over. Let's all move on :)

Excellent. :)


You have DRAMA!

To view or trade DRAMA go to steem-engine.com.

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.030
BTC 65395.33
ETH 2611.94
USDT 1.00
SBD 2.67