diff options
-rw-r--r-- | README.md | 66 |
1 files changed, 65 insertions, 1 deletions
@@ -6,6 +6,8 @@ Copyright © 2016, 2017 Paul Garlick <[pgarlick@tourbillion-technology.com](mail notice and this notice are preserved. This file is offered as-is, without any warranty. +## Introduction + *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. @@ -43,6 +45,8 @@ 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. +## Package Managers + 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 @@ -72,6 +76,8 @@ 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. +## Applications + *TWEED* comprises an instruction set and configuration files to install the following applications: @@ -84,6 +90,8 @@ following applications: 6. [ParaView](https://www.paraview.org/)---post processing +## Directory Structure + The directory structure for a typical *TWEED* installation is shown in the diagram below. The configuration files are stored in the *tweed* directory, located in the user's home directory. The three package managers use the @@ -113,6 +121,62 @@ 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. +## Data Formats + +The applications in *TWEED* make use of and generate data. Each application +defines its own internal data structure, optimised for that application in +particular. When there is a need to transfer data from one application to +another it is necessary to use a data format that is recognised by both. There +are a number of industry standard data formats for this purpose. These are +well-established and widely used. In addition, there are specific data formats +used by particular applications only. *TWEED* applications are able to make +use of both types of data format. Communication between the applications is +possible in a number of ways. A configuration of applications and exchange +formats that demonstrates the principle is shown in the diagram below: + +![](file:///data/paul/Ditaa/connectivities.png) + +This configuration forms a template for a typical engineering workflow. It is +suitable for a wide range of design and development projects. The *Gmsh* +application is central in this configuration. It provides the pre- and +post-processing facilities for computer simulations. *Gmsh* is capable of +generating the geometry for simple meshes itself. For more complex cases the +geometry can be defined in *FreeCAD* and passed on to *Gmsh*. Finite element +models, using the meshes from *Gmsh*, can be solved with *FEniCS*. Finite +volume models can be solved with *OpenFOAM*. Result files can be passed back +to *Gmsh* or on to *ParaView* for post-processing. + +In this configuration there are three standard file formats: + +1. [DXF](https://www.autodesk.com/techpubs/autocad/acadr14/dxf/ascii_dxf_file_format_al_u05_b.htm) - 2D CAD data +2. [STEP](http://www.steptools.com/stds/step/) - 3D CAD data +3. [XDMF](http://www.xdmf.org/index.php/XDMF_Model_and_Format) - mesh and result data + + +and two specific formats: + +a. [MSH](http://gmsh.info/doc/texinfo/gmsh.html#File-formats) - *Gmsh* mesh and result data +b. [FOAM](https://cfd.direct/openfoam/user-guide/basic-file-format/) - *OpenFOAM* mesh and result data + + +All of the applications in *TWEED* can read from and write to at least one +standard data format. For example, *FEniCS* can write out result files in +*xdmf* format. These files can subsequently be read in by *ParaView*. + +However, the best method for communication with the *Gmsh* application is to +use the *Gmsh*-specific *msh* format. To do this, input/output (i/o) scripts +are used to convert the data to and from the numerical solver formats. + +In the case of *FEniCS*, the multi-format utility +[meshio](https://github.com/nschloe/meshio) can be used to convert between +*xdmf* and *msh* formats. For *OpenFOAM*, *gmshToFoam* is available, supplied +as one of the mesh conversion utilities. It is also possible to convert +*OpenFOAM* result data to *Gmsh msh* format. An example script is +*foam2gmsh.py,* available from the [ONELAB +wiki](http://onelab.info/wiki/ONELAB). + +## Future + 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 @@ -126,5 +190,5 @@ applications provided by the different package managers changes. Paul Garlick -February 2017 +April 2018 |