Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Functional hybrid modelling (FHM) language for modelling and simulation of physical systems using implicitly formulated (undirected) Differential Algebraic Equations (DAEs)

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 bnfc
Octocat-spinner-32 cbits
Octocat-spinner-32 examples
Octocat-spinner-32 hydra-solver-sundials
Octocat-spinner-32 src
Octocat-spinner-32 Hydra.cabal
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README
Octocat-spinner-32 Setup.hs
Octocat-spinner-32 TODO
README
What is Hydra?
--------------

Hydra is a high level, declarative language for modelling and simulation of
physical systems. Systems in Hydra are being modelled using implicitly
formulated (undirected) Differential Algebraic Equations (DAEs). While,
physical modelling is our main focus any domain is fine where problems can be
formulated using DAEs.

The language provides constructs for definition and composition of model
fragments that enable modelling and simulation of large, complex, hybrid and
highly structurally dynamic systems.

The first outline of Hydra was given by Nilsson et al. in the framework called
Functional Hybrid Modelling (FHM). Subsequently, a number of papers has been
published about the design and implementation of Hydra that can be accessed on
the following web pages:

* http://www.cs.nott.ac.uk/~ggg/

* http://www.cs.nott.ac.uk/~nhn/


The implementation of Hydra
---------------------------

Currently, Hydra is implemented as a domain specific language embedded in
Haskell. Hydra is still in active development.


How to get Hydra
----------------

The latest development version of Hydra can be obtained from its darcs
repository by issuing the following command:

> darcs get http://patch-tag.com/r/Hydra/pullrepo Hydra

You can also browse the sources in your browser:
http://patch-tag.com/r/Hydra/snapshot/current/content/pretty


How to install Hydra
--------------------

In order to install Hydra you need to have GHC (http://www.haskell.org/ghc/)
version 6.10 (or later) available on your system. In addition, you need LLVM
(http://llvm.org/) version 2.6.

The implementation of Hydra is packaged using Cabal. So it should be straight
forward to install. Simply issue the following commands in the directory that
you have just obtained using darcs:

> runhaskell Setup.hs configure
> runhaskell Setup.hs build
> runhaskell Setup.hs install

If you have cabal-install tool available on your system there is an even
simpler way. Simply issue the following command in the directory of Hydra:

> cabal install


How to use Hydra
----------------

Currently, there is no documentation provided, only examples, I am
afraid. There are also research papers (see above) that I recommend to read if
you are interested. In any case, you are very welcome to contact me.

Cheers, George Giorgidze
Email: ggg (at) cs.nott.ac.uk
Something went wrong with that request. Please try again.