GithubHelp home page GithubHelp logo

softmaterialslab / nanoconfinement-md Goto Github PK

View Code? Open in Web Editor NEW
5.0 7.0 13.0 499.86 MB

This code allows users to simulate ions confined between material surfaces that are nanometers apart, and extract the associated ionic structure.

License: Apache License 2.0

Makefile 0.35% C++ 6.04% C 0.47% Shell 0.15% Python 0.34% Ruby 0.01% Jupyter Notebook 92.58% CMake 0.05%
ions self-assembly electrostatics separation energy

nanoconfinement-md's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

nanoconfinement-md's Issues

run lammps local

so with the new setup, it seems local-run-lammps does not work
for my machine it is lmp_g++ and I think MPIRUNCMD is fixed to aprun in the Makefile. Is it possible to change this so that I can do rapid testing

energy matching with lammps + dt optimal

please send a PR on the latest master with the fixes in lammps template for energy matching
also is dt = 0.0005 too low? I think you had checked that it works with dt = 0.001. If yes, lets do the latter as it is a 2X speedup.

documentation

@smarru @kadupitiya I think now we should start documenting the manual of app development on nanohub based on what we learned from this experience. It should give the essential steps, be precise, concise, but has the details that enable other node members to realize the code-to-app transition pathway.

Production begin steps should change with time steps?

This could be a non-issues, started a thread to discuss it.

Currently, it seems from the log messages that production begins always at 100000 steps. I am wondering if this should adapt to simulation time steps?

integration with xsede

we are working on hosting the accelerated MPI version on nanohub Purdue clusters; would like to integrate with xsede to reduce wait times. we have an xsede nano account.

parametrize output and datafile names and path

Currently the outputfiles and datafiles are hard coded in the code. It will be nice to pass the path and file name as arguments and the program can use defaults when no such arguments are sent.

Recommended UI Changes

Here are some simple UI changes that can improve the user experience for most of the Nano Apps:

  • Removing or Replacing About to the bottom of the page along with the diagram.
    Reason: Most of the time I am not using it.
  • Maybe Placing parameters and controllers as a drop-down menu
  • Plotly Module has a better representation for diagrams for a website than Matplotlib.

I have attached a image for reference:
Screen Shot 2020-06-25 at 12 54 05 PM

transition to rappture

I have created a new branch called rappture. Based on @smarru feedback, we need to work with the current master (that is openMP parallelized) and translate that to rappture friendly version. This will be the subject of this issue. I identify some key steps required here:

  1. OpenMP version is fairly well optimized. However we can get in principle a factor of 2 speedup by going from N^2 to N^2 / 2 in force calculations. @kadupitiya will take rappture branch and adapt this optimization.
  2. We will take the latest job script from branch accelerate and merge it in rappture. Need to edit to reflect 1 node and n procs within. This is our default set of parameters.
  3. We need to simplify input and output; organize input into physical and algorithm/computing parameters. @softmaterialslab/jadhaolab will lead this with @kadupitiya and @smarru joining
  • we move the current boost input and output into a new function

  • there is a dependency of some parameters on the user-input

  • 2 output files stored in datafiles folder: last density profiles for + and - ions

  • std output + progress bar

  • we have implemented the above features

  1. @smarru will tell us what changes we need to do in Makefile for rappture to read our code
  • we have done this with continuous feedback from ncn purdue
  1. @smarru will tell us what directories we need to create for rappture and any changes in main.cpp or a metascript generation that is necessary for transition
  • we went with the metascript approach using python; we split the material in different folders, we have the rappture friendly dirs
  1. @kadupitiya @smarru @softmaterialslab/jadhaolab lead the modification in the metascript or main.cpp that reflects what resources get selected based on user values; what computing parameters get ON based on physical parameters; what range of parameters we want to give in our initial UI; any output requirements we need to communicate to nanoHUB team. @foxsden shares his insights and help on this.
  • most features on the input side are in. output is under exploration, waiting on updates from @smarru and nanohub
  • this is done.
  1. @kadupitiya @smarru benchmark tool performance for the selected parameter ranges using our XSEDE nano allocation and IU big red2. Make sure we identify and remove any "bad" parameter choices.
  • in progress by @kadupitiya
  • initial benchmarking by @kadupitiya done which produced a tested version of the code. all clear. future benchmarking will be done on nanohub and bigred2.
  1. @softmaterialslab/jadhaolab makes the code public on Dec. 8th.
  • @softmaterialslab/jadhaolab made this public before target to facilitate nanohub integration
  1. @kadupitiya has requested workspace for on nanoHUB; he takes the git and sends it to nanoHUB requesting for gui development etc.
  • this ended up being concurrently developed; gui is built with basic functionalities sans output plot, waiting on a testable app run
  • we all got workspaces; gui is now built, we have output, app test runs done. code for app is portable to local and cluster computing.

Failing to put ions in confinement

Simulation is stuck at the preprocessing stage.
What works:
Positive ion valency: +1, +2
Salt concentration:0.3-0.5
Confinement length:3.0-4.0
Positive/Negative Ion diameter:0.5-0.75
Many combinations outside above combinations does work
Example :
Positive ion valency: +2
Salt concentration:0.6
Confinement length:3.0
Positive/Negative Ion diameter:0.75

Caching output data

Hi All,
Output caching has a bigger advantage (as long as we are not employing random parameter initialization in velocity and location) in our application as it is taking so much time to do the simulation.
What do you(@smarru and @jadhao ) think about this?
Nanohub is using session based file hierarchy as I understood from our last discussion. Can we have some static location without session based directory structure to do the caching?
Thank you!

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.