ruhi's Blog

Post 14: Final Report and Recollections

ruhi
Published: 08/28/2023

I have finalized my report here:

https://gist.github.com/RuhiRG/9a33441072660bd62b987f77b9d88367

I also submitted my final google form.

Since the semester has begun in earnest I haven't had much free time for FOSS work. I do have plans for the winter and other vacations. I thought I'd wrap up with some scattered thoughts on what the project was (from my running notes throughout the coding period which never made it into a full blog before).

  • By offering Python bindings through pyseams, d-SEAMS is now accessible to a wider audience, including researchers who are more familiar with Python than C++ or Lua. This will potentially speed up the analysis of complex ice nucleation and solvated chemistry simulation and analysis.
  • I found working with C++ to be quite challenging initially. Getting my head around its syntax and idiosyncrasies took some time, but it gave me a new appreciation for type safety and memory management.
  • The project is closely aligned with my academic focus on computational biology, and I would love to work on the scientific uses more.

It would be an honor to work on a GSoC project under the PSF next year as well. It has been a pleasure.

View Blog Post

Week 13: Addenum and Capstone

ruhi
Published: 08/23/2023

Overview


This is my last week working on d-SEAMS and my freshly minted `pyseams` project as a GSoC student for 2023. I have been working on polishing up my PRs so they can be merged and finalizing my work product. It has been a pleasure to share my progress with the community each week. Moreover, I've been discussing the design of `d-SEAMS`, which my mentor tells me is a good sign of taking responsibility. This has been my first project in the public eye, and it has truly been a pleasure..

For my final report, I opted for a Github Gist:

gsoc23_pyseams_fin_report.md

I plan to keep revising this for a while now, with inputs from my mentor as well.

Issues Opened

RFC: Removing lua bindings

PRs Merged

- BLD: Work on MacOS, use as a subproject

View Blog Post

week 12: wrapping up

ruhi
Published: 08/16/2023

Initially, the plan was to write the python binding along side of lua so that we could use both. while, doing the python bindings, we (me and my mentors) realized that the lua pointer to objects function design led to very awkward (not pythonic) bindings. To this end I worked on refactoring the functions inside seams-core itself, though this in-turn broke the lua interface which did not support constructing C++ objects from lua (and by extension could not use the new value return-type functions). So, this week as discussed with my mentors, we removed the lua interface from the C++ command line interface.

At one point in an earlier week I had floated the idea of eventually embedding the python interpreter into the C++ CLI instead of the lua interpreter and using the new bindings, however, the development team felt that this is a cleaner approach. The C++ CLI remains capable of reproducing the older D-SEAMS results, and a major release will clarify the role of the C++ core as a backend engine with Python bindings.

Check-in Questions

What did you do this week?

  1. Wrote the last of example function binding chillPlus.    
  2. Wrote code to call it directly from C++ and python without any involvement of lua.
  3. The problem with installation of dSEAMS in Macos is fixed.

What is coming up next?

  1. Clear documentation for the whole work.
  2. Final report which will also detail my next steps for collaboration.

Did you get stuck anywhere?

No, I wasn't stuck anywhere.

View Blog Post

week 11: Bulk systems and 2-D ice analysis

ruhi
Published: 08/09/2023

This week, I was testing more in-built examples from seams-core by calling it from python. Unfortunately, I ran into a bug while writing the pybind for bulkTopologicalCriterion example. I raised an issue about it.

Check-in Questions

What did you do this week?

  1. Wrote working pybinds for topo2d , BPring and bulkTopologicalCriterion in-built examples.
  2. Raised an issue for a bug in bulkTopologicalCriterion example.

What is coming up next?

  1. Better documentation of pyseams
  2. Visualising workflows.
  3. Look into replacing the lua interpreter in the C++ CLI with pybind11.

Did you get stuck anywhere?

No, I wasn't stuck anywhere.

View Blog Post

week 10: Testing examples with pybind

ruhi
Published: 08/02/2023

This week, I was testing in-built examples from seams-core by calling it from python. I was also working on updating the new installation methods for seams-core with meson and building the executable with lua and meson.

Check-in Questions

What did you do this week?

  1. Ran an in-built example from seams-core from python and compared to the lua implementation.
  2. Made changes in the README.md file for installing updates.
  3. Updated the environment.yml and meson.build file for version updates.
  4. Started working on atomic visualizations.

What is coming up next?

  1. Adding plots.
  2. Better documentation of pyseams
  3. Visualizing workflows.
  4. Adding pytests.
  5. Continuing the CI test to see if the results are same.
  6. Doing the rest of the two workflows.

Did you get stuck anywhere?

No, I wasn't stuck anywhere.

View Blog Post