diff options
author | Paul Garlick <pgarlick@tourbillion-technology.com> | 2016-11-25 16:46:31 +0000 |
---|---|---|
committer | Paul Garlick <pgarlick@tourbillion-technology.com> | 2016-11-25 16:46:31 +0000 |
commit | cb9ca028b48e0e5477e5418fab021575bcf32c2c (patch) | |
tree | f716b59e1ce9c89071b4a37429a0029e553241e8 /README.md | |
parent | 0715455f5bf70eaee619b60eafba58f8abded90b (diff) | |
download | tweed-cb9ca028b48e0e5477e5418fab021575bcf32c2c.tar.gz |
add README file
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..3aa4d1f --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# Tweed.README +Copyright © 2016 Paul Garlick <[pgarlick@tourbillion-technology.com](mailto:pgarlick@tourbillion-technology.com)> + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. This file is offered as-is, + without any warranty. + +*TWEED* is a system for organizing engineering software. *TWEED* software applications can be moved freely, as a group, from one computer to another. All software versions can be maintained and all dependencies remain intact. *TWEED* is the **T**ransferable **W**orking **E**nvironment for **E**ngineering **D**esign. + +In the domain of computational science and engineering it is common to develop workflows to accomplish a task or investigate a process. The workflow comprises a set of software applications and associated data. A problem with many workflows is that they are fragile. Hardware breaks, software licenses expire, data in restricted formats becomes inaccessible. It can be a major task to re-build complex, carefully constructed workflows. The purpose of *TWEED* is to make it easier to develop sustainable workflows . Using the term *sustainable* in this context is to say the workflows should be easy to move around and durable over time. + +In this model *TWEED* provides the workflow applications. The user supplies, or generates, the data. Applications are included in *TWEED* for tasks such as 3D modelling and numerical simulation. Users may choose from applications geared towards manufacturing operations, such as 2D draughting, or instead concentrate efforts on research and development using advanced optimization algorithms, as one example. Tools are included for generating grids for arbitrarily complex shapes and displaying results. + +A key feature of *TWEED* is the separation of the applications from the underlying operating system. *TWEED* may be installed on any computer running any operating system. This includes laptops and supercomputers and anything in between. All that is needed is disk space for the applications and their libraries (10 GB is recommended). + +The separation of the applications from the operating system makes the working environment transferable. This is useful for an engineer moving a workflow that has been developed on one computer to another, possibly different, computer. It is also useful in scaling a development environment, on a small system, to a production environment, on a larger system. The installation of the applications is exactly the same in each case. + +A major advantage of using *TWEED* in preference to the operating system package managers is the relative speed of upgrading packages. Whereas the upgrade cycle of the operating system packages may be in the region of 2--3 years, application upgrades in *TWEED* may be performed within days. This is especially helpful in the realm of computational science and engineering, where new methods are being introduced at a rapid pace. + +*TWEED* automates the compilation and build processes of new package versions and keeps track of dependencies. In comparison to individual installations from source, *TWEED* keeps the filesystem neat and tidy. It is also easier to maintain, having dedicated commands for upgrading packages and removing unused files. + +To make this possible *TWEED* makes use of modern package management software. Three package managers are used: + + +1. [GNU Guix](https://www.gnu.org/software/guix/) +2. [Nix](http://nixos.org/nix/) +3. [HashDist](https://hashdist.github.io/) + + +A shared characteristic of these package managers is their ability to install all of the required dependencies of a given package in a unique location, alongside the main operating system. This allows for multiple versions of the same application to be installed and made available simultaneously. On a multi-user system, it is also possible for each user to individually specify their own set of preferred applications. + +*TWEED* comprises an instruction set and configuration files to install the following applications: + + +1. [LibreCAD](http://librecad.org/cms/home.html)---2D draughting +2. [FreeCAD](http://www.freecadweb.org/)---3D modelling +3. [Gmsh](http://gmsh.info/)---grid generation +4. [FEniCS](https://fenicsproject.org/)---numerical simulation + + +A user may install a subset of the *TWEED* packages. It is also possible for the user to extend the list of packages, beyond the group offered by *TWEED*. For details of the installation procedure, please see the file INSTALL. + +Over time, in the development of *TWEED* itself, packages may be added to or subtracted from the included group. However, it is an objective that the size of the group will stabilize at a figure that can be reasonably maintained by a single engineer. This figure has not been decided yet. Suggestions are welcome! + +Infrequently, there may also be change to the list of package managers used by *TWEED*. An ideal list would contain a single package manager. This is a long-term objective. However, the list may increase or decrease in length temporarily as package management technology evolves and as the availability of applications provided by the different package managers changes. + +Paul Garlick + +November 2016 + |