Going further with CIVA Script



CIVA Script allows you to load and modify CIVA configurations, run the simulation(s), then extract the results, and repeat this sequence without opening the Graphical User Interface. The main objective is to save significant time for your simulation projects, especially for large scale computations and analysis work.

CIVA Script is an optional add-on, available for any license, and is compatible with all CIVA modules: UT, ET, RT-CT, GWT, CIVA ATHENA2D, CIVA FIDEL2D.



With CIVA Script, CIVA is driven by an XML file whose features and syntax are defined precisely in the user manual. For more advanced use, you can build and manage this XML file, post-process the results and performs series of simulations thanks to an external programming language such as the open source Python.

In particular, CIVA Script provides Python readers in order to read binary data files generated from CIVA Script computations.




Automate your calculation and analysis loops

In a simulation project, the time-consuming part is often not the computation itself, but the operations needed to run and analyze simulations one after the other. With CIVA Script, you can automate extensive calculation sequences and extract results of interest without opening the user interface!

In the example below, an Eddy Current model is run. This involves a calibration stage on a reference defect and a target defect simulation stage. The script here makes it possible to put both calculations in the same loop, optimizes defect mesh parameters iteratively, automates the calibration of the target defect case versus the calibration one, and finally, extracts the results of interest.

Everything is done in one shot, while it corresponds to several manual operations without CIVA Script!


Eddy Current simulation project managed by CIVA Script in a single loop:
Reference Notch simulation, Target defect simulation and calibration including defect mesh optimization


Optimize your simulation model

Design, optimization or characterization studies often rely on iterative loops. In a simulation context, it means that you need to analyze results first, before launching new computations. With CIVA Script, you can define your analyses criteria, your target result, and then create your iteration loops that will monitor CIVA parameters depending on previous analysis results, in order to converge faster to an optimal result!

In the UT Immersion example below, the script is used to perform efficiently an optimization operation. The process iterates on the probe focusing radius in order to maximize the response of a target reflector.

Starting from a first range of values for this parameter, a dichotomy process is managed by CIVA Script to converge quickly to the target result by refining progressively the variation step.


UT simulation optimization managed by CIVA Script in a single loop:
Probe Crystal focusing adjusted to maximize defect response


The same type of approach would apply if you need to characterize a probe: you do not know all its parameters, but you know its performance. CIVA Script will ease the "reverse engineering" process that consists in finding the parameter that matches with a target result.


Customize the post-processing of your simulation results

CIVA provides results in a NDE-oriented analysis environment, but you might want to adapt the analysis results to your application context.
With CIVA Script, you can export full simulation “raw” data, and use your own programming tools and languages (such as Python) to define your dedicated post-processing operations (Field or Inspection Simulation analysis, Full Matrix Capture (FMC) data for Total Focusing Method (TFM) processing, etc.).

In the example below, CIVA Script drives several beam calculations for different refraction angles, then exports the resulting beam data, then a Python function plots the beam charts, and also identifies maximum locations and values.


UT beams calculated and analyzed by CIVA Script in a single loop:
custom charts and information extraction


Drive all parameters, including non-numerical ones

CIVA already provides a parametric study built-in manager, but this one can only drive numerical CIVA parameters. With CIVA Script, you can drive all types of parameters (such as CAD files, ultrasound and Eddy Current probe or  radiographic source files, trajectory files, etc.), and therefore benefit from the advantages of CIVA Script (automation, optimization, analysis customization, etc.) for these types of parameters too.

In the example below, 4 X-ray detector files are used as variable parameters, then CIVA Script runs all the simulations, adjusts detector gains to reach similar mean Grey levels for each case, and finally extracts and compares the results.


X-ray simulation project managed by CIVA Script in a single loop:
automatic calibration and comparison of different detectors


Application Programming Interface (API) with an external software “chain”

NDT is just one stage in an industrial context of manufacturing or maintenance works. Simulation software is now sometimes embedded in large multiphysics simulation platforms and database, such as in a Product Lifecycle Management (PLM) environment. With CIVA Script, launch CIVA without user interface operations and enable interoperability between CIVA and other software environment.