Skip to content
\( \def\pcF{\mathbf F} \def\pcV{\mathbf V} \def\pcR{\mathbf R} \def\pcD{\mathbf D} \def\pcDb{\bar {\mathbf D}} \def\pcDbprime{\bar {\mathbf D}'} \def\pcW{\mathbf W} \def\pcWb{\bar {\mathbf W}} \def\pcL{\mathbf L} \def\Cauchy{\sigma} \def\pcVbprime{\bar {\mathbf V}'} \def\pcVbdotprime{\dot {\bar {\mathbf V}}'} \def\pcRt{{\mathbf R}^\mathrm{T}} \def\pcJ{J} \def\mul{\cdot} \def\optrace{\mathrm{tr}\,} \newcommand{\opdev}[1]{{#1'}} \) \( \def\pcVai{\frac{1}{a}} \)

ASPA Proxy Application Multi-scale, adaptive sampling, materials science proxy.

A fundamental premise in ExMatEx is that scale-bridging performed in heterogeneous MPMD materials science simulations will place important demands upon the exascale ecosystem that need to be identified and quantified. As depicted in the figure shown below, we envision coarse “engineering” scale models coupled with concurrently executing “on demand” fine-scale models. The expense of performing fine-scale model evaluations, a large fraction of which will likely be similar to those previously performed, is mitigated by the use of adaptive sampling to “learn” the fine-scale response. In Y1 of our project, we focused on the single-scale components needed for a proxy implementation of this strategy, including LULESH, VPFFT and ASPA. In Y2, we have developed more of the “glue” needed to assemble a scale-bridging mini app that will eventually operate in the manner shown in the fugure below applied to a collection of demonstration problems. This will enable the quantification of problem-dependent “speeds and feeds” that are essential for the specification of job scheduling and database requirements.

                   of scale-bridging application

To provide a concrete and fully documented scale-bridging proxy app, we created a design document describing an elastoviscoplasticity (EVP) model and time integration algorithm. Beginning with a Lagrangian coarse-scale model, the EVP model incorporates viscoplastic material response (i.e., inelastic deformation that depends upon the rate at which loads are applied) using a fine-scale crystal plasticity model of the material microstructure in a representative volume element. The fundamental assumption coupling the coarse and fine-scale models is that the coarse-scale deformation gradient can be decomposed as $\pcF = \pcV \mul \pcR \mul \pcF^p \label{Fdef}$, where $\pcV$ is a symmetric, thermoelastic stretch tensor, $\pcF^p$ is the plastic deformation gradient determined by the fine-scale model, and $\pcR$ is a rotation between the fine and coarse-scale frames. This relation leads to a system of rate equations for the evolution of $\pcV$ and rotation $\pcR$ over a coarse time step:

\begin{align} \pcVai \pcVbdotprime &= \pcRt \mul \opdev{\pcD} \mul \pcR - \opdev{\pcDb}, \\ \dot{\pcJ} &= \pcJ \optrace{\pcD}, \\ \dot{\pcR} \mul \pcRt & = \pcW - \pcR \mul \pcWb \mul \pcRt \\ & - \frac{1}{a} \pcR \mul \left [ \pcVbprime \mul \left ( \pcDbprime + \frac{1}{2a} \pcVbdotprime \right ) - \left ( \pcDbprime + \frac{1}{2a} \pcVbdotprime \right ) \mul \pcVbprime \right ] \mul \pcRt , \end{align}

where $\pcD$ and $\pcDb$ are the coarse and fine-scale strain rates, respectively, $\pcW$ and $\pcWb$ are the coarse and fine-scale spin rates, respectively, $J={\rm det}(\pcV)$, $a = J^{1/3}$, dots denote time derivatives and primes denote tensor deviators. Once $\pcV$ is known at a new coarse time step, its logarithm can be used as a measure of strain in an appropriate elasticity model to obtain the stress needed by the coarse scale model. Although seemingly a bit complicated, we nevertheless believe that this choice for a scale-bridging algorithm coupling a continuum mechanics model with a mesoscale crystal plasticity model balances the competing goals of materials science relevance, minimization of complexity in a proxy app that will be used for multiple co-design purposes, and flexibility with respect to exploring a large model and algorithm space.

In order to serve as the coarse-scale model in the EVP proxy, an extension of LULESH was necessary to support high-strain-rate solid-phase materials. This involved the replacement of LULESH's original ideal gas equation of state with a strength model expressed as a full stress tensor $\Cauchy$ computed from an appropriate constitutive model. The divergence of the stress tensor yields the momentum equation force term used to accelerate element nodes, \begin{equation} \rho \dot{\mathbf{v}} = \mathbf{\nabla} \cdot \Cauchy + \rho \mathbf{f}, \label{momentum} \end{equation} and the inner product of its deviator $\Cauchy'$ with the velocity gradient $\pcL \equiv \nabla \otimes \mathbf{v}$ provides an additional term in the energy equation \begin{equation} \rho_0 \dot{e} = \eta \Cauchy' \mathbf{:} \pcL - \left ( p + q \right ) \dot{\eta}. \end{equation} Since this extension to LULESH had always been anticipated, the modifications are highly localized and cause no significant modification to the overall code structure.

Using this extension of LULESH, as well as the existing VPFFT and ASPA proxy apps, we have created an initial implementation of the specified EVP algorithm. This primarily required the addition of the above system of rate equations and some refactoring of ASPA to enable a constitutive model library to be created, which, at least for the time being, is statically linked with LULESH. The new proxy app is currently being tested on a Taylor cylinder impact problem, which has been selected because it represents a moderate strain rate problem in which the effects of anisotropy in the fine-scale microstructure are readily observable in the coarse-scale material behavior. We will also soon begin applying the EVP proxy to a high-strain-rate 1D shock problem in preparation for a Y4 demo.

ASPA Publictions


N. R. Barton, J. Knap, A. Arsenlis, R. Becker, R. D. Hornung and D. R. Jefferson, “Embedded polycrystal plasticity and adaptive sampling” Int. J. Plasticity, 24(2):242-266, 2008


“ASPA: Adaptive Sampling Proxy Application, Version 1.0” (October 25, 2012) LLNL-SM-595112 [open source at GitHub]

Most of our code is released as open source // Visit the ExMatEx GitHub site