Skip to content

Proposal: add a Python GUI pre/post-processing tool for VPSC8 #3

Description

@ZhiyangNi

Summary

We have developed VPSC-GUI, an open-source, Python/Tkinter-based graphical user interface for VPSC8. It is designed to streamline the pre-processing, execution, and post-processing workflow without modifying the original Fortran solver.

This tool has recently been documented and peer-reviewed in SoftwareX:

VPSC-GUI: A Python graphical pre- and post-processing environment for the Visco-Plastic Self-Consistent code
SoftwareX, 2026. (DOI/Version v1.0.1)

We would like to propose integrating/linking this graphical tool into the main repository (e.g., under tools/vpsc_gui/ or referencing it in the documentation) to help new users and students lower the operational barrier to VPSC modeling.


Key Features

  • Structured Pre-Processing:
    • Interactive preview and editing for VPSC8.IN, single-crystal .sx files (FCC, BCC, HCP; Voce hardening and raw text fallback), and process/loading files.
    • Multi-phase aware handling (support for multi-phase .sx, texture files, and phase-resolved output parsing).
  • Boundary Condition Visualizer:
    • Real-time 2D grid/deformation visualization for imposed velocity gradient tensor L and Cauchy stress constraints to catch input errors before launching.
  • Isolated Execution & Traceability:
    • Automated generation of a clean, isolated Fortran-compatible run directory without altering any core Fortran source code.
  • Integrated Post-Processing & Visualization:
    • Direct plotting and high-resolution export for standard VPSC output files, including:
      • STR_STR.OUT (Stress-strain response)
      • ACT_PH*.OUT (Slip/twinning activity)
      • TEX_PH*.OUT (Pole figures and Inverse pole figures using Lambert equal-area projection)
      • LANKFORD.OUT (Lankford coefficients / R-value anisotropy and directional Young's moduli)
      • PCYS.OUT (Polycrystal yield loci)

Proposed Repository Structure

We can contribute this package as a standalone module placed under:

tools/vpsc_gui/
├── vpsc_gui/         # Core Python GUI source code
├── examples/         # Benchmark cases (FCC rolling, HCP compression, BCC/FCC tension)
├── README.md         # Quick start guide and user documentation
└── requirements.txt  # Lightweight dependencies (tkinter, numpy, matplotlib)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions