Difference between revisions of "ExtractMPM"

From OSUPDOCS
Jump to navigation Jump to search
Line 28: Line 28:
<li>Included_Materials - space delimited list of included materials
<li>Included_Materials - space delimited list of included materials
<li>Excluded_Materials - space delimited list of omitted materials
<li>Excluded_Materials - space delimited list of omitted materials
<li>Format - format of the output numbers (<code>text</code>, <code>xml</code>, <code>double</code>, <code>float</code>)
<li>Format - format of the output numbers (<tt>text</tt>, <tt>xml</tt>, <tt>double</tt>, <tt>float</tt>)
<li>Endian - for binary output will be <code>little</code> or <code>big</code>.
<li>Endian - for binary output will be <tt>little</tt> or <tt>big</tt>.
<li>EndHeader - last line of the header
<li>EndHeader - last line of the header
</ul>
</ul>
The header ends with the line feed character (<tt>0x0A</tt>) after <code>EndHeader</code>. For binary files, the header is padded to be a multiple of 8
The header ends with the line feed character (<tt>0x0A</tt>) after <tt>EndHeader</tt>. For binary files, the header is padded to be a multiple of 8
bytes long. For VTK Legacy files, the name (if provided) and source will always be output on the second line of the file (<i>i.e</i>, the <b>-h</b> option is not needed).
bytes long. For VTK Legacy files, the name (if provided) and source will always be output on the second line of the file (<i>i.e</i>, the <b>-h</b> option is not needed).


Line 65: Line 65:
<dt><b>-3</b>
<dt><b>-3</b>
<dd>Specify the archive file as one having 3D results. Only needed
<dd>Specify the archive file as one having 3D results. Only needed
for <code>ver3</code> archive files.  For <tt>ver4</tt> archive files or newer it is overridden by the file format specified in the [[Archive File Formats#Archive File Header|archive file's header]].
for <tt>ver3</tt> archive files.  For <tt>ver4</tt> archive files or newer it is overridden by the file format specified in the [[Archive File Formats#Archive File Header|archive file's header]].


<dt><b>-P</b>
<dt><b>-P</b>
Line 74: Line 74:


<dt><b>-b</b> <u>format</u>
<dt><b>-b</b> <u>format</u>
<dd>Specify the archive <u>format</u> of the file. Only needed for ver3 archive files.  For ver4 archive files or newer it is overridden by the file format specified in the [[Archive File Formats#Archive File Header|archive file's header]]. See [[Archive File Formats#NairnMPM Output Files|MPM output file format]] information or <a href="../xmlformat/MPMHeader.html#mpmarchive">MPMArchiveOrder command</a> for details on the archive format. The format for a given file will be listed in the <a href="../outformat/index.html#mpmoutput">master text file</a> for that calculation result.
<dd>Specify the archive <u>format</u> of the file. Only needed for ver3 archive files.  For ver4 archive files or newer it is overridden by the file format specified in the [[Archive File Formats#Archive File Header|archive file's header]]. See [[Archive File Formats#NairnMPM Output Files|MPM output file format]] information for more details.


<dt><b>-c</b> <u>format</u>
<dt><b>-c</b> <u>format</u>
<dd>Specify the crack archive <u>format</u> of the file. Only needed for ver3 archive files.  For ver4 archive files or newer it is overridden by the file format specified in the <a href="../outformat/index.html#versionid">archive file's header</a>. See <a href="../outformat/index.html#mpmoutput">MPM output file format</a> information or <a href="../xmlformat/MPMHeader.html#crackarchive">CrackArchiveOrder command</a> for details on the crack archive format. The format for a given file will be listed in the <a href="../outformat/index.html#mpmoutput">master text file</a> for that calculation result.
<dd>Specify the crack archive <u>format</u> of the file. Only needed for ver3 archive files.  For ver4 archive files or newer it is overridden by the file format specified in the [[Archive File Formats#Archive File Header|archive file's header]]. See [[Archive File Formats#NairnMPM Output Files|MPM output file format]] information for more details.


<dt><b>-m</b> <u>num</u>
<dt><b>-m</b> <u>num</u>
Line 86: Line 86:


<dt><b>-q</b> <u>data</u>
<dt><b>-q</b> <u>data</u>
<dd>When exporting particle data, the output always includes particle position (<code>x</code>, <code>y</code>, and <code>z</code> (for 3D)), but can include additional data for each <b>-q</b> option. The allowed quantities for particle data are:
<dd>When exporting particle data, the output always includes particle position (<tt>x</tt>, <tt>y</tt>, and <tt>z</tt> (for 3D)), but can include additional data for each <b>-q</b> option. The allowed quantities for particle data are:
<ul>
<ul>
<li>mat for material number</li>
<li>mat for material number</li>
Line 102: Line 102:
<li>conc for concentration (in wt %)</li>
<li>conc for concentration (in wt %)</li>
</ul>
</ul>
<code>XML</code> files always include mat and can include mass; they currently cannot include stress or strain.<br>
<tt>XML</tt> files always include mat and can include mass; they currently cannot include stress or strain.<br>
&nbsp;&nbsp;&nbsp;&nbsp;When exporting crack particle data, the output always includes the crack number followed by the crack particle position (<code>x</code>, <code>y</code>, and <code>z</code> (for 3D)), but can include additional data for each <b>-q</b> option. The allowed quantities for crack particle data are:
&nbsp;&nbsp;&nbsp;&nbsp;When exporting crack particle data, the output always includes the crack number followed by the crack particle position (<tt>x</tt>, <tt>y</tt>, and <tt>z</tt> (for 3D)), but can include additional data for each <b>-q</b> option. The allowed quantities for crack particle data are:
<ul>
<ul>
<li>J1 and J2 for crack tip J integral terms
<li>J1 and J2 for crack tip J integral terms
<li>KI and KII for crack tip stress intensity factors
<li>KI and KII for crack tip stress intensity factors
</ul>
</ul>
<code>XML</code> files only include crack particle positions and the tip material ID (1 based) if available in the archive file; they currently cannot include J integral or stress intensity factors.
<tt>XML</tt> files only include crack particle positions and the tip material ID (1 based) if available in the archive file; they currently cannot include J integral or stress intensity tt.
Any requested particle or crack quantity not in the archive file will be output as zero.
Any requested particle or crack quantity not in the archive file will be output as zero.


<dt><b>-o</b> <u>path</u>
<dt><b>-o</b> <u>path</u>
<dd>The output will be to standard output unless an output file path is specified in this option. The output file should not include an extension because one will be generated automatically based on the selected file type. When multiple archive files are extracted in a single command, the output
<dd>The output will be to standard output unless an output file path is specified in this option. The output file should not include an extension because one will be generated automatically based on the selected file type. When multiple archive files are extracted in a single command, the output
files will add an index number to this specifed output file name for each additional file (unless this default index number is overridden by the <code>-s</code> option).
files will add an index number to this specifed output file name for each additional file (unless this default index number is overridden by the <tt>-s</tt> option).


<dt><b>-s</b>
<dt><b>-s</b>
<dd>Include the step number in the output file name. <code>NairnMPM</code> archive files should have the step number as an extension. For example, if you are extracting data to a text file with root name <code>ParticleData</code> from archive file named <code>archive.323</code> while using the <code>-s</code> option, the extracted file name will be <code>ParticleData_323.txt</code>. When extracting multiple files, inclusion of a step number will overide the default index number (see <code>-o</code> option). If two of the multiple files have the same step number, the second one will overwrite the first. This problem will never occur when extracting from multiple files resulting from a single simulation.
<dd>Include the step number in the output file name. <tt>NairnMPM</tt> archive files should have the step number as an extension. For example, if you are extracting data to a text file with root name <tt>ParticleData</tt> from archive file named <tt>archive.323</tt> while using the <tt>-s</tt> option, the extracted file name will be <tt>ParticleData_323.txt</tt>. When extracting multiple files, inclusion of a step number will overide the default index number (see <tt>-o</tt> option). If two of the multiple files have the same step number, the second one will overwrite the first. This problem will never occur when extracting from multiple files resulting from a single simulation.


<dt><b>-n</b> <u>text</u>
<dt><b>-n</b> <u>text</u>

Revision as of 21:12, 1 January 2014

The ExtractMPM tool will extract data from NairnMPMarchive files and write them to text, binary or XML files. You can use your own visualization tools to work with this extracted data.

Compiling ExtractMPM

The first step is to compile the ExtractMPM command-line tool. When using MacOS X, you can compile ExtractMPM using that target in the project found at nairn-mpm-fea/Common/Projects/NairnMPM.xcodeproj. On any other system (or alternatively in MacOS X), you can compile using the command line

c++ -O3 -o ExtractMPM ExtractMPM.cpp

The -O3 options turns on optimization. You can change the -o path name as desired to install the executeable at any location.

Using Extract MPM

You run the ExtractMPM command line tool with

ExtractMPM [-hdDfFTXVsH23PC] [-b format] [-c format] [-m num] [-M num]
               [-q data] [-n text] [-o path] archive0 archive1 ...

ExtractMPM reads the NairnMPM binary archive files in archive0, archive1, etc., extracts the data selected by the options, and outputs it all to standard output or to file(s) specified in the options.The flags and their descriptions are:

-h
Include a header at the beginning of the file. The header has text that describes the content of the file. Each line begins with a key word. The text after the space is the setting for that keyword. The possible keywords are
  • Name - optional text if the -n options is used
  • Source - name of the input archive file
  • Data - space delimited list of columns in the output
  • Included_Materials - space delimited list of included materials
  • Excluded_Materials - space delimited list of omitted materials
  • Format - format of the output numbers (text, xml, double, float)
  • Endian - for binary output will be little or big.
  • EndHeader - last line of the header

The header ends with the line feed character (0x0A) after EndHeader. For binary files, the header is padded to be a multiple of 8 bytes long. For VTK Legacy files, the name (if provided) and source will always be output on the second line of the file (i.e, the -h option is not needed).

-d
Output as little Endian binary file with double precision numbers (extension .data)
-D
Output as big Endian binary file with double precision numbers (extension .data)
-f
Output as little Endian binary file with single precision numbers or floats (extension .data)
-F
Output as big Endian binary file with single precision numbers or floats (extension .data)
-T
Output as tab-delimited text file (extension .data). This option is the default output mode unless overridden by -d, -D, -f, -F, or -X option.
-X
Output an XML file, but see below for details. These files are intended for input to new calculations. (extension .xml).
-V
Output as a VTK Legacy file suitable for reading in visualization tools such as ParaView. The file will have only particle data, which may limit options in visualizations tools that need cell data. (extension .vtk).
-H
Print synopsis of ExtractMPM with brief description of all options and variables.
-2
Specify the archive file as one having 2D results. Because 2D results is the default assumption, this option is normally not needed.
-3
Specify the archive file as one having 3D results. Only needed for ver3 archive files. For ver4 archive files or newer it is overridden by the file format specified in the archive file's header.
-P
Specify to export particle data only. Because particle data export is the default assumption, this option is normally not needed. The selected quantities should be only particle properties.
-C
Specify to export crack particle data only. The selected quantities should be only crack particle properties.
-b format
Specify the archive format of the file. Only needed for ver3 archive files. For ver4 archive files or newer it is overridden by the file format specified in the archive file's header. See MPM output file format information for more details.
-c format
Specify the crack archive format of the file. Only needed for ver3 archive files. For ver4 archive files or newer it is overridden by the file format specified in the archive file's header. See MPM output file format information for more details.
-m num
Omit data for particles with material number num. More than one use can remove multiple material types.
-M num
Include data for particles with material number num. More than one use can include multiple material types. If no -M options are used, then all materials are included. A material that is both included and excluded, will be excluded.
-q data
When exporting particle data, the output always includes particle position (x, y, and z (for 3D)), but can include additional data for each -q option. The allowed quantities for particle data are:
  • mat for material number
  • mass for particle mass (in g)
  • velx, velz, and velz for component of velocity vector (in mm/sec)
  • dispx, dispy, and dispz for component of displacement vector (in mm)
  • sxx, syy, szz, sxy, sxz, and syz for a component of the stress tensor (in Pa)
  • pressure for pressure (in Pa)
  • vonmises for von Mises (or equivalent) stress (= sqrt(3 J2)) (in Pa)
  • exx, eyy, ezz, exy, exz, and eyz for a component of the strain tensor, which is elastic strain for plasticity materials (absolute)
  • pexx, peyy, pezz, pexy, pexz, and peyz for a component of the plastic strain tensor (absolute)
  • strerg for strain energy (in J)
  • plerg for plastic energy (in J)
  • temp for temperature (in K)
  • conc for concentration (in wt %)

XML files always include mat and can include mass; they currently cannot include stress or strain.
    When exporting crack particle data, the output always includes the crack number followed by the crack particle position (x, y, and z (for 3D)), but can include additional data for each -q option. The allowed quantities for crack particle data are:

  • J1 and J2 for crack tip J integral terms
  • KI and KII for crack tip stress intensity factors

XML files only include crack particle positions and the tip material ID (1 based) if available in the archive file; they currently cannot include J integral or stress intensity tt. Any requested particle or crack quantity not in the archive file will be output as zero.

-o path
The output will be to standard output unless an output file path is specified in this option. The output file should not include an extension because one will be generated automatically based on the selected file type. When multiple archive files are extracted in a single command, the output files will add an index number to this specifed output file name for each additional file (unless this default index number is overridden by the -s option).
-s
Include the step number in the output file name. NairnMPM archive files should have the step number as an extension. For example, if you are extracting data to a text file with root name ParticleData from archive file named archive.323 while using the -s option, the extracted file name will be ParticleData_323.txt. When extracting multiple files, inclusion of a step number will overide the default index number (see -o option). If two of the multiple files have the same step number, the second one will overwrite the first. This problem will never occur when extracting from multiple files resulting from a single simulation.
-n text
The text defines a title or any brief comment about the extracted file. It is output in the header, but only if the -h option is used. For text with spaces, include it in quotes. For VTK Lagacy files it is output on the second line of the file.

Examples

The following examples are shown as given to the shell:

ExtractMPM -h -o positions arch.57
Output particle positions from a ver4 or newer archive file (arch.57) to the text file named positions.txt with a header at the beginning of the file.
ExtractMPM -d -b iYYYYNNNNNNNYNNNN -q syy -q szz -o str disks.78
Output particle positions and y- and z-direction normal stress from a ver4 or newer archive file (disks.78) to a little Endian file of double named str.data.
ExtractMPM -hF -q sxx -M 1 -o strxx disks.*
Output particle positions and x-direction normal stress from several ver4 archive files (disks.*) to a series big Endian files of floats named strxx.data, strxx_1.data, etc., including headers. The output file will include only data from particles for material number 1. The header will help determine which output file came from which archive file.
ExtractMPM -hC -o cracks disks.1289
Output crack number and crack particle particle positions from a ver4 archive file to a text file cracks.txt including a header. The output file will include only crack particle data.

You only need to specify file formats (in -b and -c options) and dimensionality (in -3 option) for ver3 archive files. These options will be read from the <a href="../outformat/index.html#versionid">header</a> of ver4 or newer files. The version ID of any archive file can be determined by looking at the first 4 bytes of the file. The ver4 or newer format took effect 25 OCT 2007. See <a href="../outformat/index.html#mpmoutput">MPM output file format</a> information for more details of archive file versions.

Since the archive file format is specified in the command, when extracting from multiple ver3 archive files in a single command, they must all have the same format. This restriction does not apply when extracting from muultiple ver4 or newer files.

XML File Extractions

The use of XML file extractions is to restart NairnMPM calculations with particle results from a previous calculations. As a result, the XML file uses a format intended for defining material points in a NairnMPM input commands file. All material points will be in a single <PointList> structure. Each material point in the structure will have the following format:

   <PointList>
        . . .
      <mp matl='1' angle='0' thick='1' wtconc='0' temp='0'>
        <pt units='mm' x='1.25' y='-11.25'/>
        <vel units='mm/sec' x='0' y='0'/>
        <mass m='1e-3'/>
      </mp>
        . . .
   </PointList>

The material number (matl), material angle (angle, if 2D), thickness (thick, if 2D), and position (pt element) will always be in the extracted file. To include concentration (wtconc) and/or temperature (temp), use the -q conc and -q temp options, respectively. To include the velocity use the -q velx option (which will include all components of velocity). To include mass (and you normally should) use a -q mass option. Concentraation, temperature, and velocity will only appear if they are in the archive file. All other requested quantities (including other components of velocity) will be ignored.

If you only want certain types of material points in the new calculations, use the -m or -M options to select the desired material types. You can include a header with the -h option and it will appear at the beginning of the file in an XML comment structure.

Finally, you can use the extracted XML file to define all or some of the material points in a new calculation. First, define the path to the new file in an ENTITY element in the file's DOCTYPE element such as:

<!DOCTYPE JANFEAInput SYSTEM '/full path to/NairnMPM.dtd'
[   <!ENTITY mpfile SYSTEM "path to/pointlist.xml">
]>

where pointlist.xml is the name of the newly extracted XML file. Then, import that file in the <MaterialPoints> element such as

<MaterialPoints>
   &mpfile;
</MaterialPoints>