aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md66
1 files changed, 65 insertions, 1 deletions
diff --git a/README.md b/README.md
index c35f678..7fe5d5f 100644
--- a/README.md
+++ b/README.md
@@ -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