lanl / lanl/VPSC_code

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

Open
#3 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TeX
Stars
62
Forks
19
PR merge metrics
No merged PRs in 30d

Description

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)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the proposed tools/vpsc_gui/ structure and the existing repository documentation to determine whether the GUI should be integrated or merely referenced. Check the proposed README, examples, and requirements.txt scope; done means the repository has an agreed integration or documentation path for VPSC-GUI.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop, documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.