Introductory Note

This file is applicable to LIMS 4.2 and 5.0, in case 4.2 file is analyzed. Note that version 4.2 has been discontinued, so much of the thermal/cure data is irrelevant. To use transient viscosity, scripting tools are available. For full non-isothermal solution, version 6 may be available.

Binary format description assumes that the proper data structure definitions (dataexch.h) are available to the reader. Thus, their description should be more considered internal LIMS development document. Use of these formats is meant to support faster - and smaller - data storage and exchange for LIMS package. It uses the LIMS internal data formats, which change inevitably from version to version. DMP files should be used for data exchange by other programs.

DMP File Format

This is a human readable, text format. Sequence of data is fixed, empty and comment lines may be inserted and depending on the problem some data may be skipped.

Alternatives

The format comes in two flavors: old one, which is written for isothermal, constant cure and fully 2D data and is the same as that for releases 4.0 and 4.1, and a more complete 'new' format allowing 3D mesh and cure and temperature solution. The additional data are advertized by:

   #!Contains Cure Solution Data
#!Contains Temperature Solution Data
#!Contains 3D Geometry
   #!Contains Cure Solution Data
#!Contains Temperature Solution Data

Note that the geometry (2D or 3D) is set once for all in the first write. Only the 3D note is relevant for 5.0.8.

In 4.2, cure/temperature solution might have been switched on/off during the processing. What is most important is that the isothermal, no cure 2D problem produces the same file as before. Thus it can be handled by the same filters. Note that a reader that uses free formated lines, skips data not known to it and ignores contents of headers can read the new file format and get the same data from it.

The file consists of a geometry section followed by one or more 'result' or 'state' sections. The geometry section contains nodal table, element table and resin description. The result section contains gate table, thermal boundary condition table (optionally) and nodal result table. The formats in detail are as follows:

Geometry Section

Geometry section consists of nodal coordinates and element data, including connectivity. The last part in this section is the resin description.

Nodal table

Nodal table looks as follows:

Number of nodes : <Number>

Index x y z
================================================
Data lines 1 to Number
...

Data Lines are printed using the following format specifier :

" %5d %14lf %14lf %14lf\n" 

in traditional C way (fprintf). Index may be either 0-based or 1-based. In any case, the base is determined from the first line in nodal data and must be consistent in element data as well. The index provides some integrity checking and is referred in elements.

Beginning with 4.2 LIMS writes DUMP data with 1-based indices, to be consistent with the IN file and user commands.

Element Table

Element table is next. It is formatted as follows:

Number of elements : <Number>
Index NNOD N1 N2 N3 (N4) (N5) (N6) (N7) (N8) h Vf Kxx Kxy Kyy Kzz Kzx Kyz
==============================================================================================================================================================================
Data lines 1 to Number
.....

Again, the index is zero or one based, but the base must be the same as in the nodal data. The same concerns the nodal indices in the element description. Number of nodes is 2 (bar) 3 (triangle), 4 (quad), or letter T (tetrahedron-4 vertices), B (brick - 8 vertices) or W (wedge - 6 vertices). Missing nodal numbers are replaced by spaces. In two dimensional elements only the first three permeability components are filled in. The formatting is done by the following strings:

" %5d    2 %5d %5d                                  %14lf  %14lf %14lg\n"
" %5d 4 %5d %5d %5d %5d %14lf %14lf %14lg %14lg %14lg\n"
" %5d 3 %5d %5d %5d %14lf %14lf %14lg %14lg %14lg\n"
" %5d T %5d %5d %5d %5d %14lf %14lf %14lg %14lg %14lg %14lg %14lg %14lg\n"
" %5d B %5d %5d %5d %5d %5d %5d %5d %5d %14lf %14lf %14lg %14lg %14lg %14lg %14lg %14lg\n"
" %5d W %5d %5d %5d %5d %5d %5d %14lf %14lf %14lg %14lg %14lg %14lg %14lg %14lg\n"

For the 'old' style data, header and data printed are shorter in format, as follows:

  NNOD  N1    N2    N3   (N4)        h              Vf             Kxx             Kxy             Kyy
================================================================================================================

and the strings for formating are similarly shortened to:

" %5d    4 %5d %5d %5d %5d  %14lf  %14lf %14lg %14lg %14lg\n"
" %5d 3 %5d %5d %5d %14lf %14lf %14lg %14lg %14lg\n"

Note that in this case only 2D elements are allowed.

Resin Data

The viscosity is described on two lines, as follows:

Resin Viscosity model NEWTON
Viscosity : Number

If the newer format is used, it is followed by 1 (or possibly two) lines:

Resin Cure model NONE USED

If the solution for temperature is allowed, the following is printed next:

Resin : k=<Number> Alpha=<Number>

Results Section

The result section may be repeated as often as needed. It contains only the data that may change as the filling progresses, i.e., the gates and temperature boundary conditions, and the nodal results. The section starts with the tame value, formated as:

Results at <time>

possibly followed by the above mentioned warning comments. Here, <time> is the simulated time of the filling. This header is followed by two (no temperature solution) or three tables:

Gate Table

The format of Gate table is:

Number of Current Gates : <number>
Type Node Value Cure Temperature
===========================================================
Data blocks for 1 to number (actually 0 to number-1)...
...

The table can have only 4 types of gates in, pressure, flowrate, mixed or vent, given using the following format strings. The node is 0 based index:

"Pressure at  %5d  p=%15.6lg                  "
"Flow Rate at %5d Q=%15.6lg "
"Mixed at %5d Q=%15.6lg+%15.6lg*p"
"Vent at %5d p=%15.6lg "

These data are followed, assuming that cure is enabled, by a cure degree at the gate (not vent) formated by

" %10.8f" 

and, if temperature is enabled, the pressure value formated as

"%12.8f" 

In 'old' format, header is somehow shorter:

   Type     Node   Value
==============================

and the cure and temperature values do not appear.

Thermal Boundary Conditions

These are a table without any counter - that is the same as the element count. The header and lines are formated as:

     Ttop          Tbot         BCCtop        BCCbot        Tpref          kpref      Alphpref
==================================================================================================
Line...
....

The lines, containing top, bottom and preform BCs as well as k and Alpha for the preform material, are formatted using the following string

"%13g %13g %13g %13g %13g %13g %13g\n"

There is one line per element, but it is used only for non-isothermal simulations. It is not present in old format and2D and 3D iso-thermal cases, whether they solve for the cure or not. If one solves for cure only, the table is substituted by a line:

Global Temperature :<Floating Point Value>

Nodal Results

Again table without any counter. The number of nodes is known previously. Index (0 base) is still there guarding the data integrity. The header looks like:

Nodal results
Index Pressure Flow Rate Fill Factor Fill Time Cure Tmid Ttop Tbot
================================================================================================================================

The results are formated using

" %5d %14lg %14lg %14lg %14lg" 

and the following cure and temperature values using

" %14lg" 

resp.

" %14lg %14lg %14lg" 

assuming that cure resp. non-isothermal solution was enabled.

Again, a different, shorter header is used for isothermal, fully 2D no cure problems (so that the old readers can recognize it):

Nodal results
Index Pressure Flow Rate Fill Factor Fill Time
========================================================================

but the data is printed using the same string (minus cure and temperature).

Drawbacks and Possible Problems

The permeability is a part of geometry, but it might be actually changed during the simulation. In such a case, write a brand new file for the data! Some data might be missing from the table, because headers are - unless the old type is being processed - general. This means that there are always Cure and Temperature fields at gates, though no numbers are available for iso-thermal simulation.

MEMORY "File" Format

This file format is binary. Thus, it depends on LIMS version (even minor one). As it is not enabled in LIMS by default, its description is not available herein.

BND File Format

This format is file based but it is essentially the SAME format as the MEMO file. Information is available on request, but to actually use it you might need to produce the same structure alignment as compiler used to build LIMS.

Note that this format may still prove useful for temporary storage of LIMS state, as LIMS reader and writer are synchronized, we just do not recommend using it for post-processing data and moving between LIMS versions.

GnuMesh (gmsh) File Format

The input-output system now cooperates with open source freeware GMSH pre- and post-processor, reading and writing the ASCII version 2 mesh (.msh) files.

For output one selects the format by

SETOUTTYPE "GMSH"

or

SETOUTTYPE "MSH"

Then write the file using WRITE command. Note that there is a different, output only "MESH" format,
a legacy one, that does not support much of the LIMS capabilities but uses the "MESH" identifier. The output file contains both the results (time, pressure and fill factor) and the preform data (thickness, fiber volume fraction and permeability). The latter is, however, written as a tensor value, and GMSH currently (2.50)  displays only the effective value (VonMises) contours for such a tensor. This file format should be appendable, the result sets are labeled with time value.

For input, the LIMS part is again

SETINTYPE "GMSH"

and reading the mesh using READ. SETINTYPE "AUTO" should work, too, and the file selector on Windows contains the proper filter ("msh").

This will read only the nodes and elements from the file, and the elements it does not understand (such as one node elements or higher order ones) will be skipped. Orphan nodes, if any, are left intact, and will cause trouble. Note that GMSH tends to generate one-nodal elements for construction points and similar
distractions and these nodes may not be connected to any element. LimsUI can actually clean these automatically - just save the file from LIMS command line as DUMP file and load it into LimsUI.

The material data are initialized to a default value (Thickness 0.01, Vf=0.5, Kxx=Kyy=1E-11, Kzz=1e-12, Viscosity=0.2). This can be overridden from current directory, from file "MSH_default.txt" if the file is present. This file can contain new default values as well as viscosity and it allows different material assignment to "physical" zones in GMSH mesh. The file format is as follows:

Each line in file starts with zone number, followed by dimension (1, 2 or 3) and proper material coefficients depending on the dimension:
These are followed by boolean (0 or 1) describing whether CS is given (otherwise element CS is assumed which makes sense only for isotropic/in-plane isotropic materials) and then by number of number triplets (vectors) (1 2 or 3) giving CS x, y and z axis.

Physical "zone" -1 is actually followed by just a viscosity value and is treated as viscosity. Zone 0 is default material. It is used in several cases:
  1. When the mesh refers to zone data that is unavailable.
  2. When the zone data is available but its dimension is lower than the element dimension.
Note that if one creates default material with dimensions lower than 3, it may be impossible to load 3D elements at all unless their particular physical zone data are 3D.

Effective use of the zones (beyond new defaults) is difficult and requires good grasp of GMSH, which the author does not pretend to have. GMSH generates the numbers internally and you will have to deal with its scripts to get it.

Notes on IN File Format

This format is gone in 5.0.8. as it has not been updated for for very long time.

Notes on Output Only File Formats

TECPLOT Files

Content

If cure solution is enabled, TECPLOT files include result "Cure" that gives a cure value at individual points. If temperature solution is enabled, TECPLOT files include results "Tmid", "Ttop" and "Tbot" that give the temperature at midplane, top and bottom surface.

Geometry

If the geometry is purely 2D, nothing changes. If it is fully 3D, i.e., it does not contain ANY 2D elements, than the mesh is written as a solid consisting of 8 node brick elements. If the mesh contains both types of elements, it is written as a surface. Solid elements are 'skinned' with 4, 5 or 6 sides. Additionally, two extra files are written, with extensions .t2d and .t3d. These contain only two-dimensional part of structure (as 2D quads) and three-dimensional  part of structure, respectively. Those can be combined within TECPLOT. Bar elements (1D) are not written into any TECPLOT file. In most cases it does not matter, as the nodes of these elements are lying on 2D or 3D mesh as well.

PATRAN Files

This format is gone in 5.0.8. as it has not been updated for for very long time.

HISTORY and MESH Files

These formats are gone in 5.0.8. as it has not been updated for for very long time. If you need specific format for data, use file extensions to write it from script.

Region File Format

This file format is used to store region data, which means symbolic names used for groups of elements and nodes. It does not have any default extension. File written by REGSAVE or GUI consists of 1 or more repetitions of the following block:

Name
Type 
Count
<data 5 numbers per line>

Command REGLOAD can read more free format: There can be any number of empty lines and any leading whitespace, data does not have to be 5 per line. Name is the first white-space delimited word on the first nonempty line in block. Type is determined from the first character of the first word on the next nonempty line (E, N or G) and count is the first word (must be number) on the third one.

Note that LimsUI writes 8 numbers per line. This can be loaded into LIMS as stated above.