Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NMODL: Remove unused/unnecessary legacy SOLVE methods in NEURON #2018

Closed
pramodk opened this issue Oct 7, 2022 · 5 comments
Closed

NMODL: Remove unused/unnecessary legacy SOLVE methods in NEURON #2018

pramodk opened this issue Oct 7, 2022 · 5 comments
Assignees

Comments

@pramodk
Copy link
Member

pramodk commented Oct 7, 2022

Today, NMODL specification allows the following SOLVE method:

  • cnexp
  • euler
  • derivimplicit
  • sparse
  • runge
  • after_cvode
  • adams
  • adeuler
  • heun
  • adrunge
  • gear
  • simplex
  • simeq
  • seidel
  • clsoda
  • cvode_t
  • cvode_v

If I look at usage in entire ModelDB models then the following are the usage stats (number of MOD files where that solver method is used, Solver Name):

   5  METHOD <empty>
  24  METHOD after
2421  METHOD cnexp
  15  METHOD cvode
 249  METHOD derivimplicit
  90  METHOD euler
   3  METHOD runge
 381  METHOD sparse

Four years when we discussed this in the context of new NMODL implementation then we decided to only implement: cnexp euler, sparse, derivimplicit

So the question is, which solver methods we can remove from NEURON? This will not only help with code simplification and maintenance but also implementation in new NMODL code generation.

@nrnhines @ramcdougal : could you take a look and which are safe to remove from 9.0?

relevant ticket in NMODL: BlueBrain/nmodl/issues/958

@nrnhines
Copy link
Member

Here are the ones to keep

cnexp
euler
derivimplicit
sparse
runge
after_cvode
simeq
cvode_t
cvode_v

@pramodk
Copy link
Member Author

pramodk commented Oct 21, 2022

thank you, Michael!

@alkino : Here is the list to delete:

  • adams
  • adeuler
  • heun
  • adrunge
  • gear
  • simplex
  • seidel
  • clsoda

For the following ones we have to see if we are covering them under our CI. But this could be a separate issue:

  • runge
  • after_cvode
  • simeq
  • cvode_t
  • cvode_v

@alkino
Copy link
Member

alkino commented Oct 21, 2022

You say to remove adrunge but this is the default one if no method is given. Which one should I choose now?

@nrnhines
Copy link
Member

derivimplicit should be chosen.

alkino pushed a commit that referenced this issue Oct 21, 2022
nrnhines pushed a commit that referenced this issue Oct 21, 2022
* Remove unused methods

Following #2018

* Format
alkino pushed a commit to BlueBrain/nmodl that referenced this issue Oct 24, 2022
alkino pushed a commit to BlueBrain/nmodl that referenced this issue Oct 25, 2022
@pramodk pramodk closed this as completed Nov 7, 2022
@alexsavulescu
Copy link
Member

adams is used in acc. no. 12631 https://github.com/ModelDBRepository/12631/blob/master/IT_wang.mod#L64

Should we reinstate it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants