mmDM (Multi-Mode Dulmage-Mendelsohn) is a small tool that implements the Dulmage-Mendelsohn decomposition for multimode DAE systems. It is based on an implicit representation of incidence graphs and matchings between equations and variables. The input of the software is a variable dimension multimode DAE system consisting in a set of guarded equations and guarded variable declarations, declared in either MEL (a simple ad hoc declarative language) or XML (following a specific DTD). The output is a description of the Dulmage-Mendelsohn decomposition of the system in all its modes; in this output, three Boolean propositions are associated to each equation and variable, describing the set of modes in which this equation/variable is part of the underdetermined, square and overdetermined part of the decomposition.

Documentation for using mmDM, is available online for registered users (please contact us if you want to gain access to the dedicated repository), and in particular:

You may report any issue here.

mmDM is based on IsamDAE (Implicit Structural Analysis of Multimode DAE systems), a software library developed at Inria Rennes that implements new structural analysis methods for multimode DAE systems. One can try IsamDAE on AllGo here.

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]=mm-dmperm' \
    -F 'job[version]=LiU-v0.5' \
    -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