Scientist installing PRISMS plasticity workflow on PC

Install the PRISMS Crystal Plasticity Workflow: 2026 Guide

Learn how to install the crystal prisms workflow effortlessly with this 2026 guide. Follow our step-by-step instructions for successful setup.

How to install the PRISMS-Plasticity workflow step by step

The fastest path to a working PRISMS-Plasticity setup is this: install MPI through your system package manager, compile deal.II without Trilinos, clone the GitHub repository, configure with CMake, and run parallel simulations using mpirun. That sequence covers the full install crystal prisms workflow from zero to a running simulation. Skip any step or get the dependency order wrong, and you will spend hours chasing linker errors that have nothing to do with your science.

Prerequisites checklist before you touch the repo:

  • MPI installed via your system package manager (for example, sudo apt-get install mpich* on Debian/Ubuntu) rather than through deal.II’s automatic download flag
  • deal.II compiled without the Trilinos package; if you use candi, comment out Trilinos in candi.cfg with #PACKAGES="${PACKAGES} once:trilinos"
  • $DEAL_II_DIR environment variable set and pointing to your deal.II installation
  • CMake available on your system path
  • Sufficient processor cores for parallel compilation and simulation runs

Once those are confirmed, the installation itself follows three numbered stages.

Step-by-step installation:

  1. Clone the repository

    git clone https://github.com/prisms-center/plasticity.git
    cd plasticity
    
  2. Compile the core library

    cmake .
    make -j N
    export PLAS_DIR=$PWD
    

    Replace N with the number of processor cores available. Using all available cores here cuts build time substantially on modern workstations.

  3. Compile the crystalPlasticity application

    cd applications/crystalPlasticity
    cmake .
    make release
    

Running your first simulation:

cd fcc/simpleTension
mkdir results
mpirun -np nprocs $PLAS_DIR/applications/crystalPlasticity/main prm.prm

Substitute nprocs with the actual number of processors you want to use. The fcc/simpleTension example is the recommended starting point because it is well-documented and produces output quickly enough to confirm your setup is working.

Infographic showing PRISMS installation step sequence

A few pitfalls worth flagging before you move on. The single most common failure is a linking error tied to MPI, which almost always traces back to letting deal.II or PETSc download their own MPI copy instead of using the system-installed one. The install documentation issue thread on GitHub documents this exact problem and the fix in detail. Also, keep your local clone current: PRISMS-Plasticity is actively maintained, and developers push bug fixes and new features to the upstream repository regularly, announcing changes through the mailing list.

Hands typing code commands for MPI troubleshooting


How do you configure and run simulations with PRISMS-Plasticity?

Understanding the repository’s folder layout is the fastest way to get oriented. The key directories are:

  • src/: material models for both continuum and crystal plasticity, the base class for parallel elliptic boundary value problems, and utility functions for crystal orientations and grain information I/O
  • applications/: ready-to-run continuum and crystal plasticity examples organized by crystal structure (FCC, BCC, HCP)
  • docs/: the Installation Manual, User Manual, and User-Defined Material Model Manual in PDF format
  • Training_Materials/: step-by-step instructions for preprocessing inputs and postprocessing outputs
  • utils/: IntegrationTools and JSON headers

Input files for each application live inside the corresponding applications/ subdirectory. The material and simulation parameters go into a single .prm input file, which keeps configuration centralized. Two additional input files handle mesh geometry and the mapping of microstructure data onto that mesh.

Input file type What it contains Typical source
Parameter file (.prm) Material constants, solver settings, boundary conditions Edited manually per simulation
Mesh file Hexahedral element geometry DREAM.3D or Neper + tet-to-hex converter
Microstructure map Grain orientations mapped to mesh elements DREAM.3D pipeline or Neper Euler angle conversion

Parallel execution scales well. PRISMS-Plasticity has been demonstrated on problems with up to 2 million elements and 6 million degrees of freedom running on hundreds of processors, so your HPC allocation is not wasted here.

Simulation output lands in standard VTK format: .pvtu files for parallel runs and .vtu for serial runs. Both open directly in VisIt or ParaView for visualization of displacement, stress, and strain fields.

For data management in collaborative research settings, the prismscpfe_mcapi Python package connects PRISMS-Plasticity to Materials Commons. The command-line interface automatically parses your input file and uploads both inputs and results to the Materials Commons repository, which is particularly useful for DOE-funded projects that require data sharing and reproducibility.


Which preprocessing tools does the PRISMS-Plasticity workflow require?

PRISMS-Plasticity does not generate microstructure inputs on its own. It expects hexahedral mesh files with grain orientation data already mapped, so the preprocessing pipeline is not optional. Three tools handle this work, and each covers a different path from experimental data to simulation-ready input.

DREAM.3D takes EBSD data and converts it into a voxelated cuboidal synthetic microstructure. A prebuilt DREAM.3D pipeline is available through the PRISMS GitHub organization specifically for this purpose. The pipeline produces a mesh that PRISMS-Plasticity can read directly, because DREAM.3D’s voxelated output is already in hexahedral form. This makes DREAM.3D the most direct route from experimental characterization to a running simulation.

Neper handles the case where you want to generate a polycrystalline sample from grain statistics or grain-by-grain synchrotron X-ray diffraction data rather than EBSD. Neper uses Voronoi tessellations, including centroidal and Laguerre variants, to build grain-boundary-conforming meshes. The catch: Neper outputs tetrahedral meshes, and PRISMS-Plasticity requires hexahedral elements. The tet-to-hex conversion utility bundled inside PRISMS-Plasticity handles this conversion. Neper also outputs grain orientations as Euler angles, which need conversion to Rodrigues vectors; a MATLAB utility script for this is available through the same GitHub repository.

MTEX is a MATLAB toolbox used for postprocessing rather than preprocessing. Once your simulation finishes, MTEX plots pole figures and inverse pole figures from the output data, which is the standard way to compare simulation texture predictions against experimental measurements.

The data flow looks like this:

  • EBSD data → DREAM.3D pipeline → hexahedral mesh + microstructure map → PRISMS-Plasticity
  • Synchrotron/grain statistics → Neper → tetrahedral mesh → tet-to-hex converter → hexahedral mesh + Rodrigues orientation file → PRISMS-Plasticity
  • Simulation output → ParaView (stress/strain fields) or MTEX (pole figures)

Pro Tip: The tet-to-hex converter is bundled directly with PRISMS-Plasticity, so you do not need a separate installation. Run it from the utils/ directory immediately after Neper finishes, before attempting to set up your PRISMS input files.


Where do you find tutorials and documentation for PRISMS-Plasticity?

The documentation lives in three places, and knowing which one to open first saves real time. The docs/ folder in the repository contains three PDF manuals: the Installation Manual (start here), the User Manual (covers boundary conditions, solver options, and output formats), and the User-Defined Material Model Manual (for researchers extending the constitutive models). These are the authoritative references for any configuration question.

The

from the PRISMS developers walks through the workflow from installation through running examples. The playlist covers Session 01 (introduction) through more advanced topics, and the videos are particularly useful for understanding how the preprocessing pipeline connects to the solver. Watching Session 01 before touching the source code is the approach the developers explicitly recommend for new users.

The Training_Materials/ directory in the repository supplements the videos with written instructions for preprocessing and postprocessing tasks. This is where you find the DREAM.3D pipeline files and the MATLAB scripts for Euler-to-Rodrigues conversion. PRISMS developers recommend working through these materials before attempting any source code modifications, because the workflow has enough moving parts that skipping ahead tends to create problems that are hard to diagnose.

For questions that the documentation does not answer, the PRISMS-CPFE Google Group mailing list is the right channel. Developers monitor it and respond to installation and modeling questions. The GitHub Issues page is also active and is where the community documents workarounds for dependency conflicts and platform-specific build problems.

Staying current matters. The development team pushes updates to the upstream repository and announces them through the mailing list, so subscribing is the most reliable way to catch breaking changes before they affect your simulations.


Expert tips for a successful PRISMS-Plasticity installation in 2026

Most installation failures share a common root: MPI dependency conflicts introduced during the deal.II or PETSc build. The fix is straightforward but easy to miss in the documentation. Install MPI explicitly through your system package manager before building anything else. On Debian-based systems, sudo apt-get install mpich* handles this. The deal.II documentation explicitly warns against using --download-mpich when building PETSc, because the automatically downloaded version frequently conflicts with the compiler environment and produces linker errors that appear to come from PRISMS-Plasticity itself.

  • Library conflict prevention: Set PETSC_DIR and PETSC_ARCH environment variables before running CMake on deal.II. Missing these is the second most common source of build failures.
  • Compilation speed: Use make -j N where N matches your core count. On an 8-core workstation, this cuts compile time from roughly an hour to under 15 minutes.
  • Trilinos exclusion: Confirm Trilinos is disabled before compiling deal.II. A deal.II build that includes Trilinos will cause PRISMS-Plasticity’s CMake step to fail with a configuration error that is easy to misread as a code bug.
  • Tet-to-hex workflow: Use the bundled converter immediately after Neper mesh generation. Trying to use a third-party converter introduces format inconsistencies that break the microstructure mapping step.
  • Repository sync: Pull from upstream before starting any new project. The active development pace means a month-old clone may be missing fixes that affect your specific crystal structure or boundary condition setup.

Pro Tip: If you hit a linking error during the PRISMS-Plasticity CMake step, run ldd $PLAS_DIR/applications/crystalPlasticity/main after a partial build to identify exactly which library is missing or mislinked. This narrows the problem to a specific dependency in seconds rather than requiring a full rebuild cycle.

For researchers extending the code, a working knowledge of the deal.II finite element framework is the most useful investment you can make before modifying src/. The material model files in src/ follow deal.II conventions closely, so the deal.II documentation and tutorials directly apply. Start with the User-Defined Material Model Manual in docs/ to understand how PRISMS-Plasticity wraps deal.II before reading the source.


Key Takeaways

Installing and running the PRISMS-Plasticity crystal plasticity workflow requires MPI installed via your system package manager, deal.II compiled without Trilinos, and a three-stage build process followed by parallel execution with mpirun.

Point Details
MPI installation method Install MPI via system package manager (e.g., sudo apt-get install mpich*) to avoid linking errors during deal.II and PETSc builds.
Three-stage build process Clone the repo, compile the core library with make -j N, then compile the crystalPlasticity application separately with make release.
Preprocessing pipeline DREAM.3D handles EBSD-based microstructures; Neper generates polycrystalline samples and requires the bundled tet-to-hex converter for mesh compatibility.
Data management integration The prismscpfe_mcapi Python package automates upload of inputs and results to Materials Commons for collaborative and reproducible research.
Sync and training first Pull from the upstream repository regularly and complete the YouTube tutorial series before modifying source code.

If you arrived here researching decorative crystal prisms for chandeliers or lighting installations rather than computational materials software, Crystalplace has you covered. The team at Crystalplace has been sourcing authentic Swarovski and premium crystal products since 1992, with crystal prisms and chandelier decor available with free shipping on orders over $22 within the USA. For practical guidance on physical installation, the Crystalplace blog covers how to install crystal prisms for light effects in detail. You can also find inspiration for statement lighting to pair with your crystal selections.

https://crystalplace.com

Tags

Leave a comment

Leave a comment


The Crystal Place

© 2026 CrystalPlace, Powered by Shopify

    • Amazon
    • American Express
    • Apple Pay
    • Bancontact
    • Diners Club
    • Discover
    • Google Pay
    • iDEAL Wero
    • Mastercard
    • PayPal
    • Shop Pay
    • Visa

    Login

    Forgot your password?

    Don't have an account yet?
    Create account