3. Importing and managing LS-DYNA results in D3PLOT
D3PLOT is a state-based postprocessor: it does not read a single monolithic result file, but rather a family of files that LS-DYNA writes during the run. Understanding that file family — and how D3PLOT assembles it into a navigable model — is the prerequisite for every subsequent operation, from contour plotting to animation export. This section covers the d3plot file set, how state data is indexed and loaded, and how to assemble a complete model when results are split across multiple files or supplemented by binout data.
The d3plot file family
When LS-DYNA executes with *DATABASE_BINARY_D3PLOT active, it writes a root file named d3plot plus a sequence of continuation files: d3plot01, d3plot02, and so on. The root file contains the model definition — nodes, elements, part and material identifiers, initial coordinates — together with the first batch of states. Continuation files carry additional states only; they do not repeat the mesh. The split is controlled by the CYCL parameter (states per file) and by the file-size limit imposed by the operating system or the *DATABASE_BINARY_D3PLOT card's LCB option.
A second, frequently overlooked member of the family is d3plotxx (or d3plot.0.xx in some naming conventions), written when the model is partitioned for MPP runs. Each processor rank writes its own domain file, and D3PLOT must merge them at import time. If you open only the root d3plot from an MPP run, you will see a partial mesh — typically one domain — and results that appear spatially discontinuous. This is the single most common import error in LS-DYNA postprocessing.
d3plot, d3plot01, d3plot02…; an MPP run additionally produces d3plot.0.1, d3plot.0.2… or d3plot01.0.1 style domain files. The presence of domain files tells you that a merge step is required.
State data: what a "state" actually contains
Each state corresponds to one output time in the LS-DYNA run. The state record stores nodal coordinates (deformed geometry), nodal velocities and accelerations, element stresses and strains, and — depending on the requested output blocks — shell resultants, solid internal energy, and part-level data. D3PLOT indexes these states sequentially and exposes them through the state slider, the State menu, and the STATE command. The number of states is not the same as the number of animation frames: D3PLOT interpolates between states for smooth playback, so a 40-state model can be animated at 200 frames without additional data.
Two practical consequences follow. First, the time associated with each state is read from the file header, not assumed to be uniform; adaptive time stepping in LS-DYNA frequently produces non-uniform state spacing, and D3PLOT's time readout reflects the true simulation time. Second, if you need a specific physical time (for example, the instant of peak intrusion), use State > Go To Time rather than counting slider positions, because the mapping between state index and time is model-specific.
Importing and assembling the model
The standard import path is File > Open, selecting the root d3plot. D3PLOT automatically discovers continuation files in the same directory by matching the base name. For MPP results, use File > Open on the root file and enable the domain-merge option, or run the standalone merge utility before opening. The merge combines per-domain meshes into a single model and renumbers nodes and elements consistently; part and material IDs are preserved, so selections made after merging remain valid.
When results from separate runs must be compared — for example, a baseline and a design variant — open each in its own D3PLOT window rather than attempting to concatenate files. Cross-window comparison keeps state indexing independent and avoids the ID collisions that occur when two runs reuse the same part numbering.
Verifying a successful import
Do not proceed to contouring until three checks pass. First, confirm the model extent: View > Fit should frame the entire structure, and the part count in the model tree should match the number of parts in the LS-DYNA input deck. A missing part usually indicates an unmerged domain or a truncated continuation file. Second, confirm the state count and time range: the last state's time should equal the termination time of the run (or the last requested output time), and the first state should be at or near zero. Third, scrub to a mid-run state and check that the deformed geometry is continuous across former domain boundaries — visible seams or gaps at a plane through the model are the signature of an incomplete merge.
If the state count is lower than expected, check whether the run terminated early or whether CYCL was set so large that only one file was written before the job ended. If the model opens but all contour values read zero, the requested output blocks (for example *DATABASE_EXTENT_BINARY flags for stress or strain) were likely disabled in the deck; D3PLOT cannot recover data that was never written.
Managing multiple result sets
For design studies, keep each run in its own directory with an unambiguous name (run_A_baseline, run_B_thickness) and open them in separate D3PLOT sessions. Within a session, use File > Save Session to capture the current model, state, and view settings so that a comparison can be reproduced exactly. When only time-history data is needed, binout* files can be read directly by T/HIS without loading the full d3plot set, which is considerably faster for large models.
d3plot. D3PLOT resolves them by base name and sequence; a missing d3plot03 silently truncates the state list at the end of d3plot02, and the resulting animation will end earlier than the simulation did without any error dialog.
With the model assembled and verified, the state index becomes the backbone for all subsequent work: contour ranges are computed per state, animations step through the index, and derived quantities such as peak stress are extracted by scanning states. Getting the import right — complete file family, merged domains, verified state range — determines whether every later result is trustworthy.