IsamDAE (Implicit Structural Analysis of Multimode DAE systems) is a software library for testing new structural analysis algorithms for multimode DAE systems, based on an implicit representation of incidence graphs, matchings between equations and variables, and block decompositions. The input of the software is a variable dimension multimode DAE system consisting in a set of guarded equations and guarded variable declarations. It computes a mode-dependent structural index-reduction of the multimode system and is able to produce a mode-dependent graph for the scheduling of blocks of equations in long modes, check the structural nonsingularity of the associated consistent initialization problem, or generate simulation code for the nonsmooth system simulation tool Siconos.

A rather complete documentation of the tool is available on the IsamDAE Documentation and Bug-Tracking gitlab repository. Several examples can also be found on this repository.

Isamdae expects an mDAE system in MEL syntax (.mel file) as input and generates a .xml file containing the conditional dependency graph resulting of the structural analysis of the mDAE. Recommended options are:

-s generates a conditional dependency graph.

-v n adjusts the verbosity level, where n is an integer between 0 and 4. n=2 is a reasonable level.

-d var=value is used to define integer parameters. var is an MEL identifier and value is an integer.

A complete list of the command-line options is in the User and Developer Manual. Here are several examples:

© B. Caillaud (benoit.caillaud@inria.fr), M. Malandain (mathias.malandain@inria.fr), B. Provot (bertrand.provot@inria.fr), A. Rocca (alexandre.rocca@inria.fr) and J. Thibault (joan.thibault@irisa.fr), Inria (https://www.inria.fr/), 2019, 2020, 2021.

In order to run a job you need to be identified or register a new account.

API Reference

The following curl command will create a job (note: job[webapp] is required, all other parameters are optional):

curl -H 'Authorization: Token token=<your private_token>' \
    -X POST https://allgo18.inria.fr/api/v1/jobs \
    -F 'job[webapp]=isamdae' \
    -F 'job[version]=v0.3f' \
    -F 'job[param]=' \
    -F 'job[queue]=standard' \
    -F 'files[0]=@test.txt' \
    -F 'files[1]=@test2.csv'

Monitor its progress:

curl -H 'Authorization: Token token=<your private_token>' \
    https://allgo18.inria.fr/api/v1/jobs/JOB_ID/events

Get the result:

curl -H 'Authorization: Token token=<your private_token>' \
    https://allgo18.inria.fr/api/v1/jobs/JOB_ID

Abort the job:

curl -H 'Authorization: Token token=<your private_token>' \
    -X POST https://allgo18.inria.fr/api/v1/jobs/JOB_ID/abort

Delete the job:

curl -H 'Authorization: Token token=<your private_token>' \
    -X DELETE https://allgo18.inria.fr/api/v1/jobs/JOB_ID