Giter VIP home page Giter VIP logo

renview's Introduction

Reaction Network Viewer (ReNView)

The Reaction Network Viewer (ReNView) generates a graphic representation of the reaction fluxes within the system essential for identifying dominant reaction pathways and mechanism reduction.

Documentation

See our documentation page for examples, and equations used.

Developer

Udit Gupta ([email protected])

Dependencies

  • Python3
  • Numpy : Used for vector and matrix operations
  • Pandas: Used to import data from input files and process headers
  • Graphviz: Used to generate visualizations from text files

Getting Started

  1. Install using pip::

pip install ReNView

Files for using the Visualization tool

  1. species_comp.out - A species composition file specifying species name, phase, and the elemental composition of the molecule. In case of heterogeneous systems, surface coverages can also be provided for node coloring.

  2. reaction_rates.out - A reactions file specifying the forward, reverse, net rate, partial equilibrium index, and reaction string. The reaction string should contain species names as mentioned in the species_comp.out file.

Features in the visualization tool:

  • Network Visualization
  • Species Visualization
  • Legend generation

License

This project is licensed under the GNU LGPL License - see the LICENSE.md file for details

Publications

  • Gupta, U.; Vlachos, D. G. Reaction Network Viewer (ReNView): An Open-Source Framework for Reaction Path Visualization of Chemical Reaction Systems. SoftwareX 2020, 11, 100442. https://doi.org/10.1016/J.SOFTX.2020.100442.

Contributing

If you have a suggestion or find a bug, please post to our Issues page with the enhancement or bug tag respectively.

Finally, if you would like to add to the body of code, please:

  • fork the development branch
  • make the desired changes
  • write the appropriate unit tests
  • submit a pull request.

Questions

If you are having issues, please post to our Issues page with the help wanted or question tag. We will do our best to assist.

Funding

This material is based upon work supported by the Department of Energy's Office of Energy Efficient and Renewable Energy's Advanced Manufacturing Office under Award Number DE-EE0007888-9.5.

Special Thanks

  • Dr. Jeffrey Frey (capsule compatibility)
  • Gerhard Wittreich (testing)
  • Hilal Ezgi Toraman (testing)
  • Jonathan Lym (testing)
  • Jaynell Keely (Logo design)

renview's People

Contributors

jonlym avatar uditgupta0912 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

renview's Issues

Adding Reaction with Net Zero Rate

Right now if rpa_local is 0, the reaction will not be considered (there is no direction for this case). However, this means that a reaction network might be possibly incomplete with these reactants/products missing.

Standalone script for reaction visualization

Is there a way to run the visualization tool without having to rerun the MKM? Sometimes I would like to lower the visualization parameters in tube.inp, which shouldn't change the results in OUT.d.

Would it be as straightforward as copying these lines from the chemkin.sh bash script and putting it in its own script?

#generate the svg file for visualization
echo 'Generating Visualization Files now!'
cd OUT.d
cp rpa_visualizationBasis100.out ../Species.d/
cp rpa_visualizationNormalized.out ../Species.d/
cp rpa_visualizationMaxRateNormalized.out ../Species.d/
cd ..
cd Species.d
for i in *.out; do
    unflatten -c 10 $i | dot -Tsvg -o ${i%.*}.svg
    rm $i 2> /dev/null
done

Documentation update: .svg file images are cropped in new graphiv version

The current version of graphviz included in the Ubuntu 20.04 distribution (graphviz 2.42.2-3build2) generates .svg files that partially crop the image. The issue is with the default monitor dpi (dots-per-inch) used in the new version. Ubuntu and Windows assume a monitor dpi of 96.

The fix/workaround is to code the dpi into the dot command by adding the option -Gdpi=96. So a conversion from a example.out file to a example.svg file now looks like:

dot -Tsvg -Gdpi=96 example.out -oexample.svg

These edits can be done in the chemkin.sh and refinevisualization.sh scripts.
While the current graphviz version on Caviness does not have this issue we may need to address this at some point if/when graphiz versions are updated.

This should be added to the documentation.

Three Body, irreversible reactions and float stoichiometric coefficients...

Hello,

I am trying to get your tool working with complex reactions mechanisms (e.g. Glarborg et al. [2018]), where different type of reactions are implemented. The following problems have occurred:

  • Three body reactions with '+ M' and '(+M)' will lead to an error. I am trying to
  • Irreversible reactions denoted by '=>' are not accepted, as you are splitting reactants and products by '<=>' in the reaction string
  • Float stoichiometric coefficients are used in several gas phase mechanisms. However, you only accept integers.

All those bugs can be circumvent by the user, but they are very minor and can be fixed in minutes. If I find the time, I will try it myself and commit a pull request.

Anyways, thank you for your great work!

Adding species properties

Currently, only reaction properties are displayed. It would be useful to have species properties (such as coverage, enthalpy, entropy, Gibbs energy) displayed as well.

renview stuck

Hi, I'm investigating renview to see if it can help in my research work. Unfortunately, it looks like it remains stuck somewhere after the creation of the result directory (see the message below obtained after a Crtl C). I tried several things without any success. Let me add that I tested graphiz with small examples from its manual and they worked fine.
So if if someone can help, I ll be grateful.

message (unbuntu 20.04): File "run.py", line 64, in
run(**default_kwargs)
File "run.py", line 20, in run
gg.generate_visualizations()
File "/home/hc/.local/lib/python3.8/site-packages/renview/GraphGenerator/init.py", line 662, in generate_visualizations
check_call(['dot', '-Tsvg', f.name, '-o', filename_svg], shell=True)
File "/usr/lib/python3.8/subprocess.py", line 359, in check_call
retcode = call(*popenargs, **kwargs)
File "/usr/lib/python3.8/subprocess.py", line 342, in call
return p.wait(timeout=timeout)
File "/usr/lib/python3.8/subprocess.py", line 1079, in wait
return self._wait(timeout=timeout)
File "/usr/lib/python3.8/subprocess.py", line 1804, in _wait
(pid, sts) = self._try_wait(0)
File "/usr/lib/python3.8/subprocess.py", line 1762, in _try_wait
(pid, sts) = os.waitpid(self.pid, wait_flags)
KeyboardInterrupt

Input files from the chemkin/cti files

Hello there,

This is a very good tool to analyse a reaction path, and it will help me a lot in my research. But I am having few doubts, I was trying to draw the reaction path for the Hydrogen combustion for my mechanism file, can you please tell me how to generate input files for a given mechanism? Also, I want to confirm one thing, this reaction path viewer generates the reaction path for an instant or for a whole reaction duration?

Thanks in advance
Akash Rodhiya

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.