Proposal: add a Python GUI pre/post-processing tool for VPSC8
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.sxfiles (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).
- Interactive preview and editing for
- 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)
- Direct plotting and high-resolution export for standard VPSC output files, including:
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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