PRISMS-PF Integration#

Overview#

This documentation describes tools for integrating PRISMS-PF (Phase Field) simulations with Materials Commons, enabling automated data management and analysis workflows.

Key Features#

  • Automated import of PRISMS-PF simulations

  • Intelligent file organization and categorization

  • Automated metadata extraction and ETL processing

  • Visualization generation (images and movies)

  • Materials Commons integration utilities

Getting Started#

Prerequisites#

  1. Materials Commons Account

  2. Materials Commons CLI

    • Install and configure using the official guide

    • Required on your PRISMS-PF system

  3. Clone the PRISMS-PF_MC_tools repo and add to your path:

    git clone https://github.com/prisms-center/PRISMS-PF_MC_tools
    cd PRISMS-PF_MC_tools
    export PATH="$PATH:$(pwd)"
    
  1. Project Setup:

    # Create project directory (outside phaseField directory)
    mkdir <project_name>
    cd <project_name>
    
    # Initialize Materials Commons project
    mc init
    

Note

Project name must match between local directory and Materials Commons

Project Structure#

Standard Directory Layout:

project_directory/
└── simulation_directory/
    ├── code/              # Source files
    ├── description.txt    # Simulation description
    ├── observations.txt   # Notes and observations
    └── data/
        ├── images/        # Generated visualizations
        ├── movies/        # Animation files
        ├── postprocess/   # Analysis results
        └── vtk/          # Simulation output files

Available Tools#

Simulation Import Tool#

The importsim.sh script handles simulation data organization.

Usage:

importsim.sh --copy=<ON/OFF> <source_directory> [destination_directory]
Options:
  • --copy=ON: Creates copies of simulation files

  • --copy=OFF: Moves files instead of copying

  • [destination_directory]: Optional, defaults to source directory name

Metadata Generation#

The generate_yaml.py script extracts simulation parameters.

Usage:

generate_yaml.py <simulation_directory>
Dependencies:
  • re

  • ruamel

  • argparse

Output:
  • Creates simlog.yaml in the simulation directory

Visualization Tools#

Frame Generation#

plot_series.py creates 2D visualizations using LLNL Visit.

Usage:

plot_series.py <field1> [field2...] <simulation_directory>
Dependencies:
  • visit

  • os

  • sys

Movie Creation#

make_movies.sh converts image sequences to movies.

Usage:

make_movies.sh <field1> [field2...] <simulation_directory>
Dependencies:
  • ffmpeg

Note

Requires existing image sequences generated by plot_series.py

Data Management#

Simulation and Metadata Addition#

add_to_spreadsheet.py manages simulation data and metadata.

Usage:

add_to_spreadsheet.py <simulation_directory> <output_file.xlsx>
Features:
  • Extracts simulation parameters

  • Manages Excel-based data collection

  • Records simulation descriptions

  • Tracks file locations

  • Integrates with Materials Commons Studies

Dependencies:
  • pandas

  • yaml

  • os

  • sys

Synchronization#

Upload data to Materials Commons:

mc up -r .

Best Practices#

  1. Directory Organization
    • Keep project directory separate from simulation directory

    • Maintain consistent naming conventions

    • Use descriptive simulation directory names

  2. Metadata Management
    • Complete description.txt for each simulation

    • Document observations promptly

    • Maintain consistent parameter naming

  3. Version Control
    • Track code changes

    • Document simulation versions

    • Maintain change logs

  4. Data Synchronization
    • Regular uploads to Materials Commons

    • Verify successful transfers

    • Maintain local backups

Troubleshooting#

Common Issues#

  1. CLI Connection Issues
    • Verify API credentials

    • Check network connectivity

    • Confirm Materials Commons server status

  2. File Organization
    • Ensure correct directory structure

    • Verify file permissions

    • Check available disk space

  3. Visualization Problems
    • Confirm Visit installation

    • Verify FFmpeg availability

    • Check image sequence completeness

Getting Help#