Giter Club home page Giter Club logo

vcell-solvers's People

Contributors

codebydrescher avatar ctrueden avatar danv61 avatar edboyceuchc avatar fgao15 avatar gmarupilla avatar gweatherby avatar jcschaff avatar mpw6 avatar vcfrmgit avatar xweigit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vcell-solvers's Issues

Create scaffold for multiplatform GitHub build/deploys

Background

Currently, there are broken builds of the VCell solvers on both Appveyor (windows) and TravisCI (Linux and Macos) - maintenance is required.

GitHub provides runners for all three of these platforms and is a natural choice to consolidate these builds under a common infrastructure (our 'vcell' repo uses GitHub build/deploy the rest of VCell).

Created a template with a matrix job for each of Ubuntu, Macos and Windows platforms, which:

  1. checks out the vcell-solver repo.
  2. initiates a TMATE action to allow debugging the installation of dependencies and the build steps (cmake)

base image for biosimulators and vcell-batch with java and python

Background

vcell-solvers is already used as a base image for vcell-batch docker image.
vcell-solvers should be used as a base image for the biosimulations docker image (with same Linux execution environment as server)

Both vcell-solvers and biosimulations containers need java and python (vcell-solvers may need python2).
biosimulations image was 2.5GB - first step was to create a small and complete base image with solvers, java and python, then focus on application dependencies in child containers.

build solvers for Macos on GitHub Action

use existing github action (prepared in issue #13) to configure Macos build/deploys of solvers. This involves configuring the Macos runner and configuring cmake accordingly to this new environment.

SimulationMessaging uses antipattern-version of Singleton

SimulationMessaging implements both a create method, and a getInstVar method, where getInstVar is quietly vulnerable to a nullptr SEGFAULT if create isn't called.

Per proper Singleton design, create should be removed, and it's logic transfered to getInstVar.

Epic: Multiplatform build of vcell-solvers on GitHub CI

base solvers

  • FV solver (non-PETSc)
  • Smoldyn
  • nonspatial Stochastic
  • NFSim
  • Moving Boundary Solver

Hy3S solvers (needs Fortran reconciled with LLVM toolchain)

  • Hybrid_EM
  • Hybrid_MIL
  • Hybrid_MIL_Adaptive

Chombo solvers (difficult multi-step build)

  • Chombo2D (without parallel)
  • Chombo3D (without parallel)

subtasks

  • #13
  • #16
  • #17
  • #27
  • build base solvers on Github for Macos platform
  • virtualcell/vcell#1023
  • #26
  • build Hy3S solvers on Github for native Macos
  • build Hy3S solvers on Github for Docker
  • build Hy3S solvers on Github for native Linux
  • build Hy3S solvers on Github for native Windows
  • build Chombo solvers on Github for native Macos
  • build Chombo solvers on Github for Docker
  • build Chombo solvers on Github for native Linux
  • build Chombo solvers on Github for native Windows

Epic: solver unit tests

Motivation

Test coverage of most VCell solvers rely on integration testing and end to end testing with the math testing framework. However, solver unit tests would allow independent testing of solver components and provide a framework for debugging and extending the solvers.

Completion Criteria

  • all solvers should have at least one unit test where results are compared with a typical output.

Tasks

  • #24
  • virtualcell/vcell#819. (Motivated Nonspatial Stochastic Unit Test)
  • unit test for FiniteVolume solver (non-PETSc)
  • unit test for Smoldyn solver
  • unit test for NFSim
  • unit test for Moving Boundary Solver
  • unit test for Hy3S solvers (Hybrid_EM, Hybrid_MIL, Hybrid_MIL_Adaptive)
  • unit test for Chombo2D solver
  • unit test for Chombo3D solver

Macos wants @rpath instead of @executable_path

On a users Mac, the Reaction Diffusion solver used by VFrap (FiniteVolume_x64) cannot load a needed library which is shipped with VCell. This behavior is not reproducible on my dev machine, because my Mac 'trusts' VCell (not quarantined).

After some reading, it seems that recent Macos configuration don't always trust library paths specified with "@executable_path", it wants "@rpath" instead.

install_name_tool_macos.sh needs to be changed to update the path of executables or dynamic libraries using @rpath.

we'll need Sophia at UCHC to test our fix as I cannot reproduce it on my machine and on the Mac build machines in the cloud.

fix NFSim runtime error on Macos

recent build of NFSim on Macos had runtime failures for some models. Rebuild NFSim on Macos paying special attention to memory safety.

build base solvers on Github for Windows platform

building on new scaffold for build/deploy on Github (described in #13), implement a build/deploy for vcell solvers for Windows.

  • FV solver (non-PETSc)
  • Smoldyn
  • nonspatial Stochastic
  • NFSim
  • Moving Boundary Solver

remove verbose warnings from NFSim

"forcing location index to be 1 instead of 0" is printed a huge number of times for some models.
biomodel_ 245262589 (from Kelvin's account).

build base solvers on Github for Linux platform

building on new scaffold for build/deploy on Github (described in #13), implement a build/deploy for vcell solvers for LInux.

  • FV solver (non-PETSc)
  • Smoldyn
  • nonspatial Stochastic
  • NFSim
  • Moving Boundary Solver

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.