Extending ModelBuilder for Post-processing Simulations

Advanced simulation workflows often require the application of several tools to aid in constructing geometric domains, in generating meshes, in modeling simulation information such as boundary conditions and material properties, in employing numerical solvers, and in post-processing results. Such application forces engineers and scientists to generate appropriate input files, understand different command-line tools, and develop code. In addition, many engineers and scientists need access to high-performance computational resources. As the July 2015 issue of the “Kitware Source” [3] describes, a team of developers at Kitware created the Computational Model Builder (CMB) framework [1] and the ModelBuilder application [2] to remove many of the obstacles that engineers and scientists face when they employ advanced simulation workflows.

ModelBuilder can create or load geometric domains, interface with various meshing technologies, model the information that simulations require, and generate—and in some cases, submit—the necessary files to run the simulations. However, to post-process results, ModelBuilder needs to access functionality from an additional tool such as ParaView. As part of a Phase I Department of Energy Small Business Innovation Research project to support multiphysics workflows for particle accelerator simulations, the team created a prototype of a custom version of ModelBuilder that completes the simulation workflow cycle. This version of ModelBuilder exposes some of the underlying post-processing capabilities that the ParaView architecture provides.

To test the new capabilities, the team modeled two electromagnetic workflows that have roots in the Omega3P module in the Advanced Computational Electromagnetics 3D Parallel (ACE3P) system at the SLAC National Accelerator Laboratory. For the tests, ModelBuilder generated a pillbox model and a crab cavity model. This article presents the results from the tests.

Adding Multiple Render Views

The latest major release of ModelBuilder is version 4.0. This version provides a single three-dimensional (3D) view that displays geometric domains and meshes.  In order to support additional post-processing functionality, ModelBuilder needed a second 3D view. The development team created this second view for ModelBuilder to use not only to post-process results but to enable side-by-side comparison of geometric domains and their respective analysis meshes.

Since only one view can be active at any time, the Info, Properties, and ColorMap components in the prototype user interface (UI) update to reflect the active source in the active view. The eyeball icons in the pipeline tree view also update to show the visibility status of the sources and filters in the active view.


The prototype UI in ModelBuilder shows a scalar field color map of an electric field.

In addition, the development team added a camera link between the two render views. This link allows ModelBuilder to exhibit the same camera setup in both views when changes occur in one view or the other.

Accessing Post-Processing Capabilities

ParaView is an open-source platform for analyzing and visualizing data [4].  It serves as the underlying foundation of CMB. To expose the functionality of ParaView in ModelBuilder, the development team added a Post Processing panel to the prototype UI. These capabilities allow ModelBuilder to display mesh readers and filters in a manner that is identical to the pipeline browser in ParaView.

The Post Processing panel in the ModelBuilder prototype contains Properties, Display, and View components. The Properties component exposes parameters for the readers and filters, the Display component controls properties for the mesh representations, and the View component customizes the visualizations. For example, the View section changes the background color.

The ModelBuilder prototype exposes the Properties component in the Post Processing panel.

The ModelBuilder prototype exposes the Properties component in the Post Processing panel.

The ModelBuilder prototype exposes the Properties component in the Post Processing panel.
In future efforts, the team aims to further extend ModelBuilder to support more views to analyze post-processed results. These views are available in ParaView and include Chart view, Histogram view, and Spreadsheet view. The team also looks to extend the Properties component to support additional filters.

Testing New Capabilities

To test the capabilities of the prototype with distinct and relevant examples of particle accelerator simulations, the development team selected two models.

The first model is the Gaussian pillbox. The Gaussian pillbox is a simple model that scientists use to perform electromagnetic accelerator simulations. The model contains a central cylinder, which makes up its geometry and represents the accelerator cavity. The model also contains two cylindrical beam pipes. During simulation, the central cylinder becomes excited. A charged particle beam enters the cylinder from the end of the upstream beam pipe. The particle beam accelerates along the cylinder and exits at the end of the downstream beam pipe.

The second model is a crab cavity model for the high-luminosity Large Hadron Collider (LHC) [5]. This model offers a more complex and realistic example. In particle colliders such as the high-luminosity LHC, two particle beams with opposing charges travel in different directions. They generally come toward each other at an angle, which reduces the chance that they will collide. The introduction of a crabbing scheme increases luminosity and rotates the beams so that they meet head-on.

The crab cavity model consists of a square tank and two rigid deflecting poles. During simulation, the model attaches to a fundamental power coupler. A radio-frequency power source drives power into the cavity, and dampers remove unwanted higher-order modes.

As part of the tests, ModelBuilder defined the pillbox model and the crab cavity model on both Linux and Mac OS desktops. ModelBuilder then submitted the simulations to run on Edison and Cori supercomputers at the National Energy Research Scientific Computing Center (NERSC). Once ModelBuilder received the results, it visualized them in its 3D views.

 ModelBuilder prepares the crab cavity example by editing simulation attributes.

ModelBuilder prepares the crab cavity example by editing simulation attributes.

ModelBuilder executes a slice operation through the crab cavity model and visualizes the magnitude of the electric field.

ModelBuilder executes a slice operation through the crab cavity model and visualizes the magnitude of the electric field.


ModelBuilder performs glyphing on the pillbox model.


With the capabilities that the development team added, ModelBuilder took less time to define the simulations and offered more visual feedback. For example, ModelBuilder displayed the model geometries as the application assigned material and boundary condition information. The capabilities also streamlined the process of submitting simulation jobs to the NERSC supercomputers.

Customizing ModelBuilder

Beyond high-energy particle accelerator workflows, the team has developed workflows in CMB for hydrology and nuclear energy. The team has also developed workflows for casting and modeling muliscale materials. To further tailor ModelBuilder to specific workflows, Kitware offers consulting and support services. Kitware also provides training courses on CMB and ModelBuilder. For more information, please e-mail kitware@kitware.com.


Tests on the ModelBuilder prototype implemented ACE3P and Omega3P from the SLAC National Accelerator Laboratory. Kitware would like to thank the SLAC National Accelerator Laboratory for its support throughout the development of the ModelBuilder application.

This material is based upon work supported by the U.S. Department of Energy, Office of Science, Office of Acquisition and Assistance, under Award Number DE-SC0013884. This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor any agency thereof, nor any of their employees, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.


[1] Kitware, Inc. “ModelBuilder.” http://www.computationalmodelbuilder.org/modelbuilder.

[2] Kitware, Inc. “Introducing the Computational Model Builder.” http://www.computationalmodelbuilder.org.

[3] Thompson, David, Bob O’Bara, and Yumin Yuan. “Representing Geometric Models with SMTK.” Kitware Source, October 14, 2015. https://blog.kitware.com/representing-geometric-models-with-smtk.

[4] Kitware, Inc. “Welcome to ParaView.” http://www.paraview.org.

[5] Li, Zenghai, J. R. Delayen, S. U. De Silva, HyeKyoung Park, and R. G. Olave, “FPC and Hi‐Pass Filter HOM Coupler Design for the RF Dipole Crab Cavity for the LHC HiLumi Upgrade.” Paper presented at the sixth International Particle Accelerator Conference, Richmond, Virginia, May 3‐8, 2015.

bob_headshotBob O’Bara is an assistant director of scientific computing at Kitware. His main areas of interest are geometric modeling, mesh generation, model and mesh visualization, and general scientific visualization.



yuan_headshotYumin Yuan is a staff research and development engineer on the scientific computing team at Kitware. He is the main software architect of the suite of CMB applications that model, mesh, analyze, and visualize geometries.



john_headshotJohn Tourtellot is a senior research and development engineer at Kitware. His areas of focus in scientific computing include digital map visualization and user interface design.



harris_headshotChris Harris is a staff research and development engineer who joined Kitware in 2011. Throughout his career, his efforts have pertained to high-performance, mission-critical systems.

Questions or comments are always welcome!