3.4. I/O Modules

PyFEM provides a comprehensive set of I/O (Input/Output) modules for reading input files, writing simulation results, generating visualizations, and managing data during finite element analyses. These modules enable flexible output of mesh data, nodal results, time histories, and custom visualizations.

3.4.1. Overview

The I/O system consists of:

  • Input modules: Read problem definitions and restore saved states

  • Output writers: Export results in various formats (VTK, HDF5, text)

  • Data loggers: Track specific quantities during analysis (graphs, contours)

  • State management: Save and restore full analysis states

All output modules share a common configuration pattern and can be combined to produce multiple output formats simultaneously.

3.4.2. Configuration

Output modules are configured in the .pro input file using two components:

  1. Module list: The outputModules property lists which modules to use

  2. Module blocks: Each module has a configuration block with its parameters

3.4.2.1. Basic Syntax

outputModules = ["module1", "module2", "module3"];

module1 =
{
  type = "ModuleType";
  # module-specific parameters
};

module2 =
{
  type = "AnotherModuleType";
  # module-specific parameters
};

The name in the outputModules list corresponds to the configuration block name. The type parameter specifies which I/O module to instantiate.

3.4.2.2. Complete Example

Here’s a typical configuration that combines multiple output types:

outputModules = ["vtk", "graph", "contour"];

vtk =
{
  type         = "MeshWriter";
  elementGroup = "All";
  interval     = 1;
};

graph =
{
  type     = "GraphWriter";
  onScreen = true;
  columns  = ["disp", "load"];

  disp = { type = "state"; node = 21; dof = "v"; };
  load = { type = "lam"; };
};

contour =
{
  type     = "ContourWriter";
  nodes    = [10, 11, 12, 13, 14, 15];
  interval = 5;
};

  contour =
{
  type     = "ContourWriter";
  nodes    = [10, 11, 12, 13, 14, 15];
  interval = 5;
};

3.4.3. Available Modules

3.4.3.1. Input Modules

  • InputReader - Reads .pro files and restores analysis states from dumps

  • DataDump - Saves complete analysis state for restart or inspection

3.4.3.2. Output Writers

  • MeshWriter - Writes VTK files (.vtu) for visualization in ParaView

  • HDF5Writer - Writes HDF5 files for large-scale data storage

  • OutputWriter - Writes human-readable text summaries of nodal data

3.4.3.3. Data Loggers

3.4.3.4. System Management

  • OutputManager - Coordinates all output modules during analysis

3.4.4. Common Parameters

Most output modules support these common parameters:

Parameter

Description

type

Module type (mandatory for all modules)

interval

Output frequency in analysis cycles (default: 1)

filename

Custom output filename (module-dependent default)

onScreen

Display output during analysis (where applicable)

3.4.5. Best Practices

  1. Choose appropriate intervals: Use larger intervals for expensive output operations

  2. Combine formats: Use VTK for visualization and text files for time histories

  3. Save binary dumps: Use DataDump for long analyses to enable restarts

  4. Monitor progress: Enable GraphWriter with onScreen = true for feedback

3.4.6. Module Reference

Click on any module below for detailed documentation, parameters, and examples: