Comments (6)
It sounds doable.
However, it is possible to check only names which are defined in the neuronmodel und not names, which are theoretically adjustable through the fact the the generated neuron extend Archiving_Node
-class.
from nestml.
@DimitriPlotnikov But I think names inherited from Node
and ArchivingNode
would be rather stable over time, so one could explicitly add them during NESTML code generation, couldn't one?
Would it also be possible in NESTML to indicate legal value ranges for parameters and maybe even conditions, such as a < b required?
from nestml.
- Yes, it is doable, but not fancy.
- We are working on an extension of NESTML for a proper support of constraints and invariants (naming is a part of the discussion). E.g. adding new block with invariants and guards:
invariants:
-90 <= V_m <= 90 # This is an invariant. It is in-forced at anytime
gls_err_tol > 0 # this is a guard. it is checked in SetStatus-call only.
end
from nestml.
@DimitriPlotnikov Why is the condition on V_m
an invariant, while the condition on gsl_err_tol
is only a guard checked up SetStatus
? Is that because V_m
is a state variable, while gsl_err_tol
is a parameter? Then the general logic would be that state variables have invariants, parameters have guards? But since parameters cannot change in any other way than through SetStatus
, guards on parameters are also invariants.
from nestml.
V_m
is an invariant because a) it is a state variable b) because we want to enforce V_m
to be in the range during simulation c) (syntactical form) an invariant is always of lower_bound < STATE_VAR< upper_bound
. I would also through an exception in SetStatus, if a value out of the range is being set.
The second one is constraint. It is an arbitrary boolean expression (just an example) E_in + E_ex <= 42.
. It can only be checked. Constraints can be defined for all variables/expression, but they are checked only in SetStatus
.
from nestml.
I summarized points regarding invariants/constraints and created a new issue: #363.
from nestml.
Related Issues (20)
- [Feature Request] Continuous input conductance in compartmental models HOT 1
- Error indexing a vector with a local variable
- [feature request] Integrate and Fire mechanism for compartmental models HOT 2
- Use grid cards for NESTML target platform docs HOT 1
- NESTML dependency astropy not happy with new numpy HOT 2
- Add non-default install path option to ``NESTCodeGeneratorUtils.generate_code_for()`` HOT 3
- TODO list compartmental models
- Take ODE-toolbox solver recommendation into account
- Revert to Python 3.8 compatibility for EBRAINS environment
- Add CI stage testing against apt installed NEST
- Emit warning for uninitialised state/parameter/internal variables
- Support priorities for onCondition blocks
- Check NEST initialization of state/parameters/internals HOT 1
- Add model transformer for non-dimensionalisation HOT 1
- Make integers and bools recordable HOT 1
- ``print()`` does not work for variables moved from synapse to neuron
- Rename ``resolution()`` to ``timestep()``
- Check for ANTLR runtime 4.10.1 but 4.13 is installed via requirements.txt HOT 1
- Issue with delta kernel convolution in inline expression HOT 1
- Implement continuous input in NESTML compartmental
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nestml.