CIQ

Old: Running Camry Impact Model Using Open Radioss and Apptainer

Old: Running Camry Impact Model Using Open Radioss and Apptainer
Yoshiaki SendaOctober 14, 2022

There is an updated version of this article, which can be found here.

Altair Radioss is now available as an open source project! This is major news for the simulation community with many contributors already onboard with OpenRadioss. Moving into open source can speed collaborative efforts like containerizing the application and testing on a new operating system. That’s exactly what we at CIQ did within days of Altair’s announcement. 

This article describes two things:  (1) How to create an OpenRadioss Apptainer container image from a daily released repository and (2) How to run the 2012 Toyota Camry Detailed Finite Element Model Toyota Camry Impact Model in LS-DYNA® format using the OpenRadioss Apptainer container. We tested these procedures on Rocky Linux 8.6.

Installation

The steps below assume that Rocky Linux 8 is already installed as the operating system. This post does not cover the steps to install the OS.

Apptainer

The first step is to install Apptainer on Rocky Linux 8.

$ wget -O /tmp/apptainer-1.0.3-1.x86_64.rpm https://github.com/apptainer/apptainer/releases/download/v1.0.3/apptainer-1.0.3-1.x86_64.rpm

$ sudo dnf install -y /tmp/apptainer-1.0.3-1.x86_64.rpm

Definition file

The steps below pull in the necessary tools and libraries, grabs the OpenRadioss latest-20220920 release from source code that is available on OpenRadioss GitHub repository, then builds it.

These steps go into a definition file that is then used to build the container.

Create the definition file called openradioss-20220920.def and add (or cut & paste) the information shown below.

Bootstrap: docker From: rockylinux:8.6

%post dnf install -y gcc gcc-gfortran gcc-c++ make cmake perl git-lfs wget git patch cd /tmp wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.2.tar.gz tar xzvf openmpi-4.1.2.tar.gz cd openmpi-4.1.2 ./configure --prefix=/opt/openmpi make -j make install cd /opt git lfs install git clone --depth 1 --branch latest-20220920 https://github.com/OpenRadioss/OpenRadioss.git cd /opt/OpenRadioss/starter ./build_script.sh -arch=linux64_gf cd /opt/OpenRadioss/engine ./build_script.sh -arch=linux64_gf -mpi=ompi cd /opt/OpenRadioss/tools/anim_to_vtk/linux64 ./build.bash cd /opt/OpenRadioss/tools/th_to_csv/linux64 ./build.bash

%environment export OPENRADIOSS_PATH=/opt/OpenRadioss export RAD_CFG_PATH=$OPENRADIOSS_PATH/hm_cfg_files export OMP_STACKSIZE=400m

export PATH=$OPENRADIOSS_PATH/exec:$PATH export LD_LIBRARY_PATH=$OPENRADIOSS_PATH/extlib/hm_reader/linux64/:$OPENRADIOSS_PATH/extlib/h3d/lib/linux64/:$LD_LIBRARY_PATH

export PATH=/opt/openmpi/bin:$PATH export LD_LIBRARY_PATH=/opt/openmpi/lib:$LD_LIBRARY_PATH

Build OpenRadioss Apptainer image (SIF format)

Now we can build the OpenRadioss latest-20220920 Apptainer image with the following command: 

$ sudo apptainer build openradioss-20220920.sif openradioss-20220920.def

Copy this Apptainer image to somewhere in your PATH

$ sudo cp openradioss-20220920.sif /usr/local/bin

Containerized! We’re ready to utilize OpenRadioss using this openradioss-20220919.sif Apptainer on your compute resources. This can run on your laptop, workstation, on-prem HPC cluster, and cloud resources.

MPI

Before running a model, we do need to install OpenMPI on the system if it’s not already installed.

$ sudo dnf install -y openmpi numactl hwloc

Close your terminal, then open the terminal again to apply the changes. Now you can load the OpenMPI module using the module command.

Simulation setup

Now that we have the container, we want to test it with the Toyota Camry workload. This is a crash simulation, and we will use ParaView to visualize the result.

Download the 2012 Toyota Camry Impact Model in LS-DYNA® format

Download the model from CCSA, and download the OpenRadioss launch file for this file.

$ wget https://media.ccsa.gmu.edu/model/2012-toyota-camry-detailed-v5a.zip $ unzip 2012-toyota-camry-detailed-v5a.zip $ wget -O CamryOpenRadioss.key https://openradioss.atlassian.net/wiki/download/attachments/10518559/CamryOpenRadioss.key?api=v2 $ mv CamryOpenRadioss.key 2012-toyota-camry-detailed-v5a $ cd 2012-toyota-camry-detailed-v5a

Download attached based_on_pauly_workaround.patch and apply. You will need to unzip the downloaded file to extract the .patch file.

$ patch -p1 < based_on_pauly_workaround.patch

Running OpenRadioss using MPI

Go to the model directory and then load OpenMPI module.

$ module load mpi/openmpi-x86_64

Run starter first, and then run engine using OpenMPI. Here we specify 8 MPI processes to run this simulation.

$ openradioss-20220920.sif starter_linux64_gf -i CamryOpenRadioss.key -np 8

$ mpirun -np 8 openradioss-20220920.sif engine_linux64_gf_ompi -i CamryOpenRadioss_0001.rad

Output

If it runs successfully, it will shows you NORMAL TERMINATION.

 ELAPSED TIME =  80054.69 s                       22:14:14 ESTIMATED SPEEDUP=      7.95      NORMAL TERMINATION       TOTAL NUMBER OF CYCLES  :  172244

Post-processing using ParaView

Now we want to see our results using ParaView. The Toyota Camry simulation output files are in ANIM format. We need to convert them to VTK format and install ParaView. Then we can see our results.

Convert output files ANIM to VTK format

To visualize ANIM format with ParaView, we need to convert ANIM format to VTK format. The latest-20220913 OpenRadioss includes a converter utility anim_to_vtk inside the tools directory.

A directory listing shows we have 25 output files from our simulation to convert, and each file has a three-digit number, from 001 to 025, at the end of the name.

$ ls CamryOpenRadiossA* CamryOpenRadiossA001  CamryOpenRadiossA005  CamryOpenRadiossA009  CamryOpenRadiosA013   CamryOpenRadiossA017  CamryOpenRadiossA021  CamryOpenRadiossA025 CamryOpenRadiossA002  CamryOpenRadiossA006  CamryOpenRadiossA010  CamryOpenRadiosA014   CamryOpenRadiossA018  CamryOpenRadiossA022 CamryOpenRadiossA003  CamryOpenRadiossA007  CamryOpenRadiossA011  CamryOpenRadiosA015   CamryOpenRadiossA019  CamryOpenRadiossA023 CamryOpenRadiossA004  CamryOpenRadiossA008  CamryOpenRadiossA012  CamryOpenRadiosA016   CamryOpenRadiossA020  CamryOpenRadiossA024

The following command will convert all 25 files from ANIM format to VTK format.

$ seq -f CamryOpenRadiossA%03g 025 | xargs -L 1 -I{} sh -c 'openradioss-20220920.sif anim_to_vtk.linux64.exe "$1" > "$1.vtk"' -- {}

Now our directory listing shows our simulation results in VTK format, ready for rendering by ParaView.

$ ls CamryOpenRadiossA*.vtk CamryOpenRadiossA001.vtk  CamryOpenRadiossA006.vtk  CamryOpenRadiossA011.vtk  CamryOpenRadiossA016.vtk  CamryOpenRadiossA021.vtk CamryOpenRadiossA002.vtk  CamryOpenRadiossA007.vtk  CamryOpenRadiossA012.vtk  CamryOpenRadiossA017.vtk  CamryOpenRadiossA022.vtk CamryOpenRadiossA003.vtk  CamryOpenRadiossA008.vtk  CamryOpenRadiossA013.vtk  CamryOpenRadiossA018.vtk  CamryOpenRadiossA023.vtk CamryOpenRadiossA004.vtk  CamryOpenRadiossA009.vtk  CamryOpenRadiossA014.vtk  CamryOpenRadiossA019.vtk  CamryOpenRadiossA024.vtk CamryOpenRadiossA005.vtk  CamryOpenRadiossA010.vtk  CamryOpenRadiossA015.vtk  CamryOpenRadiossA020.vtk  CamryOpenRadiossA025.vtk

Install ParaView

Download ParaView from their official website and place it in your preferred location.

$ wget https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v5.10&type=binary&os=Linux&downloadFile=ParaView-5.10.1-MPI-Linux-Python3.9-x86_64.tar.gz $ tar zxvf ParaView-5.10.1-MPI-Linux-Python3.9-x86_64.tar.gz $ sudo mkdir -p /opt/ParaView $ sudo mv ParaView-5.10.1-MPI-Linux-Python3.9-x86_64 /opt/ParaView/5.10.1 $ rm -rf ParaView-5.10.1-MPI-Linux-Python3.9-x86_64.tar.gz $ export PATH=/opt/ParaView/5.10.1/bin:$PATH $ export LD_LIBRARY_PATH=/opt/ParaView/5.10.1/lib:$LD_LIBRARY_PATH

Rendering the results

To visualize our results, simply call ParaView and provide it with which file to render. Here is the command and resulting visualization for CamryOpenRadiossA020.vtk

$ paraview --data=CamryOpenRadiossA020.vtk

The pictures below show stress magnitude. Both images are renderings of CamryOpenRadiossA020.vtk. The result shows that most of the stress is absorbed at the front end and much less in the passenger cabin.

unnamed 1

unnamed 2

Contact us for the patch file.

Related posts

A New Approach to MPI in Apptainer

A New Approach to MPI in Apptainer

Jun 27, 2023

Apptainer / Singularity

Apptainer 1.1.0 Is Here, with Improved Security and User Experience

Apptainer 1.1.0 Is Here, with Improved Security and User Experience

Sep 29, 2022

Apptainer / Singularity

Apptainer Official PPA for Ubuntu Is Now Available!

Apptainer Official PPA for Ubuntu Is Now Available!

Feb 2, 2023

Apptainer / Singularity

123
17
>>>