GithubHelp home page GithubHelp logo

gams-ide's People

Contributors

chrispahm avatar kuhnt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

kuhnt

gams-ide's Issues

Add option to hide user error message when parsing symbol values

In FarmDyn (and possibly also CAPRI and CGEBox), the Parse symbol values feature in gams-ide will throw and error stating that user errors were encountered in the DMP .lst file:
image

Background

For the symbol parsing to work, we first create a DMP file (= a GAMS file that joins all include statements and GDX values of a model like FarmDyn into a single file) from the current model. gams-ide then injects display statements into the DMP file for every symbol which is found by the compiler (see createRefTreeWithSymbolValues.js). The DMP file is then solved with a maximum solver time limit of 0 (resLim = 0), because we are not interested in the optimal variable values, but rather the parameter values, sets and execution time adjustments of variables etc that enter a solve statement.

When executing the model with a maximum solver time limit of 0, the solver will throw an error saying that there has been a "Resource Interrupt" (error code 3) and "No Solution Returned". This is the expected behaviour of GAMS and the solvers.

However, models like FarmDyn implement a special logic that once the model is found to be infeasible (for whatever reason), they switch the solver to CONOPT in order to reduce infeasibilities which usually helps finding errors in the model (see solve/treat_infes.gms). Since this again fails due to the resource limit of 0, we run into an abort statement saying that there is an "Error in model structure, in exp_starter, Solve model without farm, only off farm work: infeasible".

While the symbol values are still correctly parsed, it's difficult on how we want to proceed with this error, because it's impossible for us to check if the error in the .dmp file is a real error (like #5) or a "fake" error like this one.

Solutions

  1. Keep showing the error, but add "Hide error" option that hides the error for the current session. This was implemented in #14 (v.0.0.54). If this is sufficient, please suggest to close this issue

  2. Update FarmDyn to not go into the infeasibility route when the solver returns with "Resource Interrupt" โ†’

    • Remove all instances of (m_farm.modelstat eq 14) from treat_infes.gms
    • Update exp_starter.gms to not abort after solves when m_farm.modelstat eq 14
    • Fix resulting division by 0 errors in reporting
  3. ??? other solution, please suggest

Does not always move to top of listing

Check box "move to end of listing after solve" is disabled. After solving the model and having e.g. a compilation error, I sometimes end up in the middle of the listing and not in the beginning where I see the relevant errors. Sometimes it works, but I have not found a pattern for this bug yet.

Listing always jumps to the end

When scroling the listing file, stopping somewhere in the middle and then going back to gms file - in this case, the last position in listing is lost as it always jumps again to the end.

Slow gams execution

When executing gams over vs code, it takes around 20 minutes until model starts running

Add "Ignore files for multi-file-entry point" option

For instance setting the option to e.g. the dat directory in FarmDyn would then allow to make a compilation check in e.g. dat/crops_de.gms without having to check the .lst file for errors.

The option should take a glob pattern, similar to how excluding files and folders in VSCode works.

Example:

"Multi-file entry point": "exp_starter.gms",
"Ignore files for multi-file-entry point": "dat, user, ktbl,gams/*_ignored_files.gms"

No information provided when set is fixed to certain element

When I specify an element name in quotes to cause GAMS to operate over just a single element of a set (e.g. "noTill" in "c_p_t_i(curCrops,plot,"noTill","normal"), gams-ide does not provide me any information on this set.

However, often it would be helpful to 1) get the name of the set and 2) get the same information as clicking on the set.

Reflection of changes in GUI

I do not know if this issue can be solved.

When I change setting in the GUI (e.g. switch on another branch) and then run the model via VS code, the changes are not reflected. I have to start the model once over the GUI and then the correct start via VS code is also possible.

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.