FrontISTR Version 5.9 Release Notes

Release Date

2026/03/20

Changes

New Features

E-1. Support for Exodus II output

Added Exodus II as a new output format for visualization files. Output is performed using the NetCDF library and can be loaded in post-processors such as ParaView. This feature is available by specifying WITH_NETCDF=ON at build time.

(Issue #736, solver !527)

E-2. 64-bit integer support for partitioner

Changed the integer types used internally in the hecmw_part1 partitioner to 64-bit (size_t, idx_t). This enables domain decomposition of large-scale models (roughly over 300 million mesh elements) where internal array sizes exceed the 32-bit limit, even when node and element numbers themselves are within the 32-bit range. The data types in the METIS interface were also unified to idx_t.

(Issue #733, #63, solver !509)

Specification Changes

M-1. Revised input format for !ELEMENT ACTIVATION

Changed the input format of !ELEMENT ACTIVATION by separating the control into three mutually exclusive modes (MODE=FIXED|AMPLITUDE|DAMAGE). FIXED specifies a fixed enable/disable state for elements, AMPLITUDE controls activation via time history, and DAMAGE represents a one-way transition based on stress/strain thresholds (for fracture/damage modeling). The old format allowed simultaneous specification of STATE, DEPENDS, and AMP, which could lead to meaningless combinations; the new format eliminates such ambiguity. Additionally, a bug where stress/strain-dependent element activation did not function correctly and a typo in the EPSILON parameter of the test set were also fixed.

(Issue #727, solver !522, document !19)

M-2. Use of BLAS-like routines in iterative solver subroutines

Replaced inline do-loop vector operations in iterative solver subroutines other than CG (BiCGSTAB, GPBiCG, etc.) with calls to BLAS-like subroutines (hecmw_axpy_R, hecmw_xpay_R, etc.) in hecmw_solver_misc.f90. This localizes the changes needed for future GPU offloading (OpenACC directives). OpenMP directive corrections and zero × NaN product avoidance were also applied.

(Issue #702, solver !500)

M-3. Reorganization of element equivalent plastic strain (PL_ESTRAIN) computation

Moved the element-averaged computation of element equivalent plastic strain (PL_ESTRAIN) from the visualization function to the fstr_NodalStress3D function. The computation is now pre-calculated in the ElementPlstrain_C3 function, consistent with the handling of other element-averaged quantities (stress, strain, etc.).

(Issue #583, solver !517)

M-4. ParaView time display support in VTK output

Changed the simulation time output format in VTK files from TOTALTIME to FieldData TimeValue. This allows ParaView to correctly recognize and display the simulation time when loading VTK files.

(solver !524)

Bug Fixes

B-1. Fix for Arrhenius shift factor calculation in TRS

Fixed a bug in the Arrhenius law (DEFINITION=ARRHENIUS) for TRS (thermorheological simplification) where the parameter mvar(4) used for shift factor calculation was not correctly set in the analysis control file processing fstr_ctrl_get_TRS. The parameter reading process was corrected, and a test case for the Arrhenius law was added. The documentation typo (ARRHENUSARRHENIUS) was also fixed, and formulation and parameter descriptions were added.

(Issue #484, solver !529, document !21)

B-2. Fix for zero element equivalent plastic strain output with smoothed elements

Fixed a bug where element equivalent plastic strain (PL_ESTRAIN) output was zero in regions using smoothed elements (FORM341=SELECTIVE_ESNS). The plastic strain values at Gauss integration points are now correctly stored in the smoothed element structure (gausses%plstrain).

(Issue #717, solver !533)

B-3. Fix for forced CG solver in implicit dynamic analysis without contact

Since v5.7, fstr_solve_dynamic_nlimplicit_contactSLag has been used in implicit dynamic analysis even without contact. However, when no contact is present, the CG method was forced in solve_LINEQ_contact_elim regardless of the user’s iterative solver setting. This caused non-symmetric problems (e.g., fluid analysis) to fail. The symmetry check was corrected so that the user-specified iterative solver is properly used. Message output for 4-DOF problems was also improved.

(Issue #721, solver !521)

B-4. Fix for stiffness overestimation in eigenvalue analysis with smoothed elements and orthotropic elasticity

Fixed a bug where eigenvalues were overestimated in eigenvalue analysis combining the Selective ES/NS method (FORM341=SELECTIVE_ESNS) with orthotropic elastic materials (!ELASTIC, TYPE=ORTHOTROPIC). The cause was that the hdflag argument for volumetric/deviatoric decomposition was not passed to calElasticMatrix_ortho, resulting in the full D matrix always being used and double-counting of volumetric and deviatoric components. The fix replaces the decomposition with a compliance-based projector split, which mathematically guarantees the positive semi-definiteness of Ddev. For isotropic materials, this coincides with the conventional bulk modulus K and the existing behavior is unchanged. New SFEM test cases for orthotropic materials (T09–T11) were added.

(Issue #734, solver !528, document !20)

B-5. Fix for boundary condition data initialization when reading cnt files

Fixed a bug where previously specified value arrays were zeroed out when cards such as !BOUNDARY appeared multiple times in the analysis control (cnt) file. The same fix was applied to the reading of !CLOAD, !DLOAD, !TEMP, !SPRING, !VELOCITY, !ACCELERATION, and !FLOAD.

(Issue #719, solver !519)

B-6. Fix for external library include path settings

With the addition of Exodus II output support, building with WITH_NETCDF=ON caused /usr/include to be added to FrontISTR_INCLUDE_DIRS. On systems where an older version of MUMPS was installed, this resulted in the old MUMPS headers from /usr/include being included instead of the user-built newer MUMPS headers, causing a SEGV. The CMake Find modules for Metis, MKL, MUMPS, NetCDF, etc. were fixed to not add /usr/include to FrontISTR_INCLUDE_DIRS when the detected path is /usr/include.

(Issue #737, solver !534)

B-7. CI/CD pipeline fixes

The following CI/CD pipeline issues were fixed:

Acknowledgments

We express our gratitude to the following contributors for their contributions to this release: