XMLData Command

From OSUPDOCS
Revision as of 16:13, 25 January 2019 by Chadh (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The XMLData command inserts raw XML data into command-interpretation results.

Introduction

As the NairnMPM and NairnFEA code engines develop, they sometimes add new features that cannot be used with the current script commands. Rather than wait for new scripting commands or reverting to using XML input files, the XMLData command lets you insert raw XML data needed to try the new features.

XMLData Command

The XMLData command allows you to insert XML commands into the interpretation results. The format is:

XMLData <(section)>,<(matid)>
  <tag>
    Inserted xml characters
  </tag>
EndXMLData

where

  • (section) indicates the section where the XML data will be inserted (if it is omitted, it is set to "End"). The possible sections are:
    • "Header" to insert at the end of the <Header> section.
    • "MPMHeader" to insert at the end of the <MPMHeader> section (MPM Only).
    • "Mesh" to insert at the end of the <Mesh> section.
    • "MaterialPoints" to insert in the <MaterialPoints> definition section of MPM files or with shape commands in FEA files to define the mesh. It may be interspersed with Region, Hole, and BMPRegion commands.
    • "Material" to insert a custom material along with other materials. Each insertion for this section must define a single material (see below)
    • "GridBCs" to insert in the <GridBCs> section. it may be interspersed with other grid boundary conditions.
    • "ParticleBCs" to insert in the <ParticleBCs> section. it may be interspersed with other particle boundary conditions (MPM Only).
    • "Thermal" to insert at the end of the <Thermal> section.
    • "CustomTasks" to insert at the end of the <CustomTasks> section.
    • "End" to insert at the end of all other XML data.
  • (matid) specifies a material ID, but is only used when (section) is "Materials" (see below)

The XML data that is inserted will be all lines between the XMLData command and the EndXMLData Command. You can have multiple XMLData blocks for each section and subsequent blocks will be appended to previous blocks for each section.

Caution: - all lines are inserted verbatim. If the block contains expressions, they will not be evaluated, but just inserted as the expression text. You can avoid this limitation, however, by using an expression to define an entity and then using that entity in the verbatim XML code. Similarly, if you comment out a line using the scripting language comment method, that line will still be inserted with the verbatim XML. If you want to comment the XML code (or comment out lines in that code), you can use the XML comment method of <!-- an XML comment --> instead.

Notes

  1. Each insertion into "Material" must define a single Material command block:
    <Material Type="20" Name="New Material">
      (property commands)
    </Material>
    

    where the property commands set the material properties. The second (matid) parameter to the XMLData command must be provided and it must have a unique material ID (which can be used like regular material IDs). This insertion option is provided to work with materials in the code engines that are not yet supported by NairnFEAMPM or NairnFEAMPMViz, such a new materials currently in development.

  2. For "MaterialPoints", "Materials, "GridBCs", and "ParticleBCs", the data will be inserted when the XMLData command is used. This approach allows you to intersperse XML features with scripted features in these sections. For other sections the XML is inserted at the end each section.
  3. Another command to insert raw XML data is the Entity Command.