VSim Release Notes

The release notes describe new features for the VSim computational engine (Vorpal) and the VSimComposer graphical user interface. Deprecated features and bug fixes are also noted within the release notes.

New and Updated 12.3 Features

VSim Computational Engine (Vorpal)

  • Continued improvments to speed up simulations with rare reactions by optimizing the sorting efficiency.

  • Improved the performance of the reactions framework around the use of updatePeriod including disabling operations in interations where no chemical reactions are performed.

  • Fixing issues with reactions not running with variable grids having to do with guard cells.

  • Improvements to Histories so that each history dataset has its own time axis instead of having a single one for all histories. This is especially important if applySteps are used.

  • Fixing an issue with particle-particle collisions in reactions causing vorpal to crash.

  • Fixed issue with reactions sorting causing a crash.

  • Improved the useability of log histories to better organize the parameters available.

  • Added new algorithms for reaction combiners: elastic, inelastic, fluxConserving, inelasticWithKELimit and velPhaseSpace

  • Fixed issue with matrix fillers to have boundary conditions first to allign with what is needed by the linear algebra framework and Trilinos.

  • Made all reporting of elapsed time be wall time to make times consistent on all operating systems.

  • Now allowing “single” to be a synonym for “float” in floattype vorpal.

  • Updated the axis stencil in the Poisson updater for 2D cylindrical coordinates to better account for charge on-axis.

  • Fixed an issue with electrostatic simulations with variable Cartesian grids were no getting the correct updaters.

  • Fixed issue with tensor histories where empty datasets were read in on restart, leading to HDF5 errors.

  • Fixed issue so that enables proper restoration of field slab histories.

  • Fixed issue with particle-per-cell dumps wherein a crash would occur during dump after restart.

  • Added a diagnostic history for computing power via two fields (J dot E).

  • Fixed issue with restoring larger field slab histories.

  • Fixed issue that occurs in parallel on Linux with cylindrical coordinates, where in certain cases, an improperly constructed array causes an allocation error.

  • Improved control of dumping backup Histories including disabling the feature for speed.

  • Fixed issue with particles that was preventing the manual domain decomp from working in some cases.

  • Added support for Infiniband cards with newer drivers in the distributed version of MPICH on Linux.

VSim Examples

  • Improving the speed of all examples on Windows by removing history file copy.

  • Making the waveguide exmaples more consistent between each other and with the documentation.

  • Updated examples cutCellPoisson updaters with uniCutCellPoisson Poisson updaters.

  • Improving the electrostatic solver timing attributes 8 VSimPD examples for a 20x speed-up in the first hundred electrostatic solves:

    VSimPD -> Inductively Coupled -> icpCyl & icpCylShapes (Text-based & Visual Setup) VSimPD -> Processes -> coronaDischarge3D VSimPD -> Spacecraft -> satelliteSurfaceCharge VSimPD -> Sputtering -> ionBeamSputtering VSimPD -> SurfaceInteractions -> waferImpact

  • Improved examples with gradient vector updater so that the bounds extends one cell in each direction.

  • Improvments in the way that History files are backed up at dump time.

  • Improved the cylindrical magnetron sputtering example with a different update and floating potention to allow for a different external circuit model.

  • Fixed issue with VSim_PD -> Ion Sources -> Penning Source where choosing energy conserving deposition/interpolation was not setting the guard cells correctly.

VSim Macros and Translator

  • Variable meshing bug for ES 3D cartesian/cylindrical

  • Using {x, y, z}Coordinate instead of ‘offset’ as an input file for plane properities to be clearer.

  • Fixed issue with matrix fillers to have boundary conditions first to allign with what is needed by the linear algebra framework and Trilinos.

  • Improvements to current distributions by adding a dipole current, allowing for cylindrical coordinates, making all current distirbutions consist, and refactoring the separable current distribution to only to one component for both spatial and temporal profiles.

  • Cleaning up how variable grid spacing is translated into the vorpal input file.

  • Improved the translator so that it now writes the needed section/delta breaks for variable grids, so the numbers do not be read from the Grid.h5 file.

  • Fixed the macro that sets up gradVecUpdater so that this operation now extends to [NX+1 NY+1 NZ+1].

  • Refactor of LogHistory feature to write the input file for vorpal, particularly for reactions.

  • Deprecated the speciesAbsPtclData history type.

  • Enabled floattype=float in the macros.

  • Fixed issue in the input parameters written by shapes.mac where vorpal would only mesh correctly if the geometry file contains exactly a single solid surface.

  • Added support for floating conductor boundary conditions in electrostatics.

VSim Analyzers

  • Improved computeDielectricModes.py and computePhotonicWaveguideModes.py and added computeWaveguideModesVarGrid.py to handle variable grids.

  • Improved documentation of how to run computeDebyeLength.py.

  • Added analzyer, computeSParamsFromHistsSubSampling.py, to sub sampling S parameters.

  • Improvments to the waveguide solver analzyer computeWaveguideModes.py: Added variable grids support , Normalize real and imaginary parts together and make sure nodes are placed in metal when they are endpoints of edges in metal.

  • Added the ability to import external fields to variable grid simulations by improving the importExternalField.py analyzer.

  • Analyzers were adjusted to comply with each history having its own time access.

  • Fixed the performTwoHistoryArithmetic.py analyzer to write the rectilinear mesh data.

  • Fixed the flux calculation in computeFlux.py and added more comments to clarify the weighting scheme in the history data.

VSim Graphical User Interface (VSimComposer)

Setup Tab:

  • Added refinement regions featrure for variable electrostatic and electromagnetic grids. This supports the following variable grid flavors - 1D, 2D, 3D, Cartesian, and Cylindrical

  • Cleaning up how variable grid spacing is specified. For example, removing the ‘grid spacing’ property has been removed from ‘Basic Settings’.

  • Made many improvements to the interface to add roughness to GDS2 imported geometry. Making the interface more consistent, user-friendly, and robust.

  • Improved robustness of setup tree interface by including handling cases when values entered into the tree create undesired states.

  • Improved the error message for when setup tree is not able to construct properly.

  • Improved the updating of property values ensuring that ones that are dependent on Parameters are updated when a Constant is changed.

  • Improved the status messages in the bar at the bottom of the application window.

  • Adding more sanity checks to when a Simulation Definition File is opened.

  • LogHistory now presents all available data points to the user as booleans that can be turned on or off as needed.

  • Added redumentary interface for adding floating conducting boundary conditions

  • Added availability of Geometries and Materials to the setup tree when “Constant Fields Solver” is selected in Basic Settings.

Run Tab:

  • Particle history logging fixes (seth, jared)

  • Change naming conventions for parameter scans directories.

General:
  • Improved the availability of the messages that are produced by python scripts in Composer, which improves analzyers and processing setup.

  • Improved documentation.

New and Updated 12.2 Features

VSim Computational Engine (Vorpal)

  • Added an implicit cylindrical EM solver. This solver computes the azimuthal electric field (E_theta) and the R-Z magnetic fields driven by azimuthal currents (J_theta) from both the plasma and an external antenna. This solver is absolutely stable in time and thus allows one to step at the time scales appropriate to plasma evolution without encountering the usual Courant instabilities. It is especially useful for modeling systems driven by induction, such as the inductively coupled plasmas used in wafer fabrication and ion sources.

  • Added a new attribute, useRelativeVelocity, to absAndSav, absSavCutCell, and absSavTriCutCell particle absorbers to have them store tangential and normal components of particle velocities as they’re absorbed.

  • Added a new capability which allows the user to store particle velocity data impacting a geometry in a local normal-tangent coordinate system with respect to the geometric surface.

  • Added the ability to specify a manual domain decomposition where domains can be specified as a text file of input blocks. These can be written manually, if needed, but works best when used with the new load balancing analyzer.

  • Added option to particle species to dump their particles per cell as a field. This can be used in conjunction with the new load balancing analyzer to improve simulation performance.

  • Added a new field interpolation scheme which allows the user to model a plasma on a grid with cell size(s) larger than the electron Debye length. We have tested this method using the Penning Source example and several CCP examples and get excellent results.

  • Added an anisotropy parameter for charge exchange reactions in the reactions framework.

  • Removed simpleSec emitters throughout in favor of absSavTriCutCell secondary electron emitters.

  • Fixed bug where vorpal would crash when a secondaryEmitter specifies “time” in functionVariables.

  • Fixed bug regarding restarts with timeAverage history.

  • Fixed bug with some histories not dumping a data point for time zero.

  • Fixed bug that occasionally prevented fluids from being restored correctly.

  • Improved file handling on Windows. This fixes the case where history data files are busy such as in Visualization and cannot be opened for dumping. It also speeds up dumping histories and prevents hangs on Windows for some special cases.

  • Fixed a bug where preprocessor output would sometimes appear after the computational engine completed.

  • Fixed a bug where an interval specified by an applyTimes range would add an unwanted apply step on the time step immediately after the right bound.

VSim Examples

Added the following new inductively coupled plasma examples that use the implicit cylindrical EM solver:

  • VSimPD -> Inductively Coupled Plasmas -> 2D Inductively Coupled Plasma Chamber

  • VSimPD -> Inductively Coupled Plasmas -> 2D Inductively Coupled Plasma with Shapes

Updated the following examples:

  • VSimPD -> Processes (text-based setup) -> Neutral Heat Transport (text-based setup): Now uses the new way of recording reaction statistics.

  • VSimPD -> Ion Sources -> Penning High Intensity Ion Source: Added a demonstration of how to use the new computeLoadBalancedDecomp.py utility analyzer.

  • VSimPD -> Surface Interactions -> Wafer Impact in Plasma Processing: SpaceTime Python functions can now include optional arguments. Therefore, the example has been updated to include the optional arguments in the SpaceTime Python function. The example was also modified by saving the particle data that impacts the wafer in a normal-tangent coordinate system (with respect to the wafer surface).

  • VSimPD -> Spacecraft -> Satellite Surface Charging: Improved the example by using Cut Cell Poisson. This electric field solve is faster than the older method and allows the user to include dielectrics in the field solve.

VSim Macros and Translator

  • Added macro support for when implicit electromagnetics is the simulation type.

  • Added macros to enable additional arguments to be passed to the Python functions in StFunc blocks of kind=stPyFunc.

  • Fixed the macro for adding a broad-band wave launcher with a sinc hat function.

  • Fixed a bug in the code that validates that masses and charges are balanced in the reactions framework macros.

  • Added support for energy conserving first order linear interpolation in electrostatic fields.

  • Added support for the new decomposition schemes and dumps of particles per cell information.

VSim Analyzers

  • Added computeLoadBalancedDecomp.py which will recalculate the simulation decomposition to balance the computational load based on the macro-particle distributions. It recursively divides the simulation into domains that contain roughly the same number of particles so that the computational work is distributed evenly across CPU cores.

  • Added importExternalField.py analyzer utility that interpolates a CSV file containing field data, for instance an external magnetic field, to a VSim simulation grid. The utility works for both 2D and 3D field data, and creates VizSchema-compliant field files that can be visualized in Composer. The created fields can be imported into a simulation in Composer by selecting Field dynamics->Fields->Add->Add Field->External Field. This replaces the convertCSV2VsHdf5.py and convertHfss2VsHdf5.py analyzers, which were removed.

  • Improved computeThrust.py analyzer by taking advantage of the latest methods of collecting particle history data at a boundary.

  • Improved computeAED.py analyzer by allowing users to specify the time interval over which to collect data in seconds. This is more natural in simulations in which the voltage is DC. Also added a flag to specify whether data are collected in the simulation coordinate system or a coordinate system that specifies the particle velocity with respect to the local geometry normal.

  • Fixed bug in base analyzer code (VsHdf5.py) for getting the number of cells in 1D.

  • Added relative velocity feature

  • Added backwards compatibility in computeFarFieldFromKirchoffBox.py for uniform time meshes, and provided more useful error output if a simulation has not run for enough steps to effectively compute far field (most relevant in simulations that are not steady state and have fields that use applySteps).

  • Improving the opening time for examples where the geometry files were already regenerated the last time the project was opened.

VSim Graphical User Interface (VSimComposer)

Setup Tab:

  • Added support for the latest implicit electromagnetic solver in the field solver. basic settings for 2D cylindrical coordinates.

  • Added support for arguments to Python functions.

  • Added support for energy conserving first order linear interpolation in electrostatic fields.

  • Added support for variable grid spacing in the Visual Setup for VSim.

  • Added ability to specify domain decomposition in the setup tree, including “default decomposition”, “decomposition by axis”, and “manual decomposition”, where one can use the computeLoadBalancedDecomp.py analyzer utility to generate inter- and intra-node decomposition blocks. Removed “MPI decomposition” from Basic Settings.

  • Added option to dump particles on a cell-by-cell basis for load balancing needed for the computeLoadBalancedDecomp.py analyzer utility.

  • Added flag for useRelativeVelocity in particle sinks and accumulated particle sinks.

  • Added ability to specify the maximum number of time steps before a particle sort happens in Visual Setup. Default is 1000 steps.

  • Improved the efficiency of the code that updates the setup tree nodes that reference expressions or parameters.

  • The log is now shown when the cut-cell meshing fails so that the error is more obvious.

  • Tree items now use ‘Activate’ and ‘Deactivate’ instead of ‘Turn Off/On’ in the right-click context menu, have an (inactive) added to the item in gray when deactivated to be clearer about the state.

  • Geometries that are deactivated are no longer exported.

  • Fixed issues with the Add or Add Multiple buttons when the current selection does not support those functions.

  • Fixed several potential issues with the create geometry array dialog.

  • Improved readability of the XYZ axis in the 3D View of the Setup Tab by the following: switch to bold font, switch to uppercase letter, ensure letter have enough space to be visible, and ensure that the x-axis font color matches the x-axis color in cylinder coordinates.

  • Duplicate the tick marks on the axis in the 3D View offset by 90 degrees to make them more visible in different orientations of the view.

  • Fixed a rare issue opening PRE files in Composer by making the PRE file reading more robust.

  • Improved the Setup tree to respect the order of items from the SDF file.

Run Tab:

  • Track simulation wall clock time and display it to the user when the engine finishes.

  • Don’t force the output log windows to scroll to the bottom every time the text changes unless the scroll bar is moved to the bottom by the user.

  • Ensure Run button is disabled when a scheduler run is executed making scheduler runs like regular runs and preventing the user from accidentally scheduling multiple.

  • Improved tracking of restart at dump state and fixed a bug with saving the state for persistence.

Visualize Tab:

  • Added an unload data feature so that on Windows visualization file handles can be released so that other processes such as the engine and analyzers can use them.

  • Improved the color picking dialog on Mac and made it uniform across operating systems.

General:

  • Improved Euler fluid documentation to more accurately describe its capabilities and options.

  • Improved logging messages and handling of error conditions.

  • Fixed several crashes when right-clicking in the setup tree for rare cases.

  • Improved backwards compatibility of documentation links in the interface.

  • Fixed dialog titles of the scheduler Custom Command, scheduler Job Number, Curve Limits, and Axis Scale dialogs to match what they do.

  • Fixed issues with opening malformed simulation definition files.

VSim 12.2 Fixes

VSim Computational Engine (Vorpal)

  • Deprecated the randDensSrc particle source. Users are advised to use the more recent xvLoaderEmitter. (12.2.1)

  • Added ability to dump number of particles per cell information if requested even if not used in a reaction. (12.2.3)

VSim Examples

  • Updated VSimPD -> Inductively Coupled Plasmas -> 2D Inductively Coupled Plasma Chamber. (12.2.1)

  • Updated VSimPD -> Inductively Coupled Plasmas -> 2D Inductively Coupled Plasma with Shapes. (12.2.1)

  • Updated many examples to conform to new GUI interfaces and macro changes. (12.2.1)

VSim Macros and Translator

  • Fixed some minor issues in macros. (12.2.1)

  • Added support translating for ellipsoids and pyramids from VSimComposer to vorpal. (12.2.3)

  • Fixing issue were energy conserving deposition does not setup overlap vector correctly. (12.2.3)

  • Fixing issue where electrons were not properly added to the input file if they are not a reactant, which caused a vorpal crash. (12.2.3)

  • Improved energy conserving interpolation to more easily include external magnetic field. (12.2.3)

VSim Analyzers

  • Added new analzyers (computePotentialFromEField.py) for computing potential from an electric field. (12.2.1)

  • Fixed an issue with scaling of coordinates and fields for importExternalField.py analyzer. (12.2.1)

  • Improved computeAED.py analyzer by adding ability to run in 3D and write out angular and energy distributions. (12.2.1)

  • Improved computeAED.py analyzer by fixing comparison between simulation end time and input time and writing out energy binned data in MeV. (12.2.2)

  • Improved computeFlux.py analyzer by fixing time comparison. (12.2.2)

  • Improved computeThrust.py analyzer so that a rolling average of thrust can be computed with a smoothing factor specified by the user (12.2.2)

VSim Graphical User Interface (VSimComposer)

  • Fixed issue with constructing a box CSG Geometry with zero size. Falls back to a non-zero size. (12.2.1)

  • Fixed an issue with licensing when the system cannot determine the current directory. (12.2.1)

  • Improved Setup of and functionality for implicit electromagnetics simulations. (12.2.1)

  • Improved Setup for unified cut-cell Poisson solvers. (12.2.1)

  • Improved Setup for variable particle weighting in cylindrical coordinates. (12.2.1)

  • Fixed issues in reading rectilinear time series meshes in History files. (12.2.1)

  • Updated VSim’s keyword dictionary to highlight more attributes during text setup. (12.2.1)

  • Updated documentation for fixes applied and corrected ringResonatorMode example documentation on analyzer usage. (12.2.2)

  • Fixed issue creating new text-based simulation on Mac. (12.2.3)

  • Updated documentation with explicit run parameters and improvements for the Metal Waveguide with Dispersion examples. (12.2.3)

New and Updated 12.1 Features

VSim Computational Engine (Vorpal)

  • Added a new reaction type, Forward Scatter.

  • Added new scatter type (Turner) to electron ionization reactions

  • Added feature to allow for particle current fields to be stored by particle species in cartesian electrostatic simulations.

  • Improving Histories so that they can be more flexible to handle non-uniform time steps and restarts with different time step sizes.

  • Fixed several issues with reaction diagnostics.

VSim Examples

  • Converting the Turner and Capacitive Coupled Plasma (CCP) 1D examples to use new collisions framework. The new CCP example is named capacitivelyCoupledArPlasma1D.

  • Refined the Turner example to more clearly demonstrate agreement with Turner’s benchmark, and to discuss how this benchmark case can be modified to accurately model more general low-temperature plasma discharges, as shown in this and other CCP 1D examples.

  • Renamed capacitivelyCoupledPlasma1D to capacitivelyCoupledHePlasma1D and deprecated it as it uses impactColliders instead of the new reactions framework.

  • Improved the Wafer Impact example by including collisions between electrons and neutral species.

  • Improved the physics accuracy of the Negative Ion Beam example by changing it to use forwardScattering.

  • Improved the Penning Source example by implementing energy conserving particle deposition, which allows for reaching larger electron densities than the previous implementation and reaching steady state.

  • Modified the Cylindrical Hall Thruster visual example to make the boundary conditions similar to the ones discussed in the referenced publication.

  • Updated the Negative Ion Beam examples to use the forward scatter reaction.

VSim Analyzers

  • Improved convertSlabToPointHistories.py analyzer to generate arrays of cell coordinates for each axis for uniform Cartesian meshes.

  • Corrected normalization of computeAED.py so that phase space is correctly computed as a function of solid angle.

  • Added new analyzer, upgradeHistory, to convert Histories.h5 files to the new format (only needed if restarting from pre-12.1 History file)

  • Improved documentation of computeFlux.py analyzer.

  • Renamed analyzer hfssToVsh5.py to convertHFSS2VsHdf5.py.

  • Renamed analyzer photonicWaveguideModes.py to computePhotonicWaveguideModes.py.

  • Added two new analyzers. computeFlux.py, which computes the number, charge, and energy flux onto a surface. And convertCSV2VsHdf5.py, which takes a general CSV file with locations and field components and creates a VsHdf5-compatible field file that can then be read into VSim. An example of use for this analyzer is magnetic field data generated by FEMM as an external field.

  • computePhotonicWaveguideModes.py is deprecated and will be removed in the next major version of VSim.

VSim Graphical User Interface (VSimComposer)

  • Added interface support for cylindrical electromagnetic field solves

  • Allowing for removal of custom analyzers from VSimComposer and automatically cleaning up opened analyzer tabs pointing to removed custom analyzers.

  • Added support for recording several analyzers in a simulation in order to copy them to the save as directory and to add them to the analyzer list for a working directory.

  • Preventing the copying of an analyzer overtop of itself, which ultimately caused a removal of the original file.

  • Fixed issue with disabled dump slider with new 1D fields plots.

  • Fixed issue where the nodalE field on the cylindrical axis could be incorrect in visual setup simulations.

  • Improved messages about geometry operations and file copying in Composer.

  • Improved user feedback while simulations are closing.

  • Improved message visibility for rendering issues in Visualize Tab.

  • Improved the efficiency of closing a simulation with opened visualization.

  • Adding support for the Sun Grid Engine scheduler.

  • Continued improvements for robustness.

  • Fixed issue where some message dialogs with very long messages go off the visible screen by limiting the characters to 1000.

  • Improved the run log on the file system by adding a plain text version.

VSim Documentation

  • Correct discrepancy between documentation and visual setup charge exchange reactions.

New and Updated VSim 12.0 Features

VSim Computational Engine (Vorpal)

  • Added Euler fluid solver allowing for neutral fluid to evolve in time.

  • Added hybrid fluid solver allowing electrons to be treated as a fluid, while ions are kinetic.

  • Added a new reaction type to model an arbitrary number of reactants and products.

  • Added ability to specify a reaction to be localized to a geometry surface.

  • Improved cut-cell meshing of CAD geometry in simulations.

  • Added reaction diagnostics. These provide spatially resolved time-averaged reaction frequencies.

  • Improvements to the way reactions block are specified in input files. This allows usage of new kinds of reactants.

  • Added Euler fluid, hybrid fluid, grid boundary reactants so they can be part of a reaction.

  • Improved accuracy of the charge exchange algorithm.

  • Improvements to the reactions framework giving faster speeds, more stability, and robustness of the reactions especially in cylindrical coordinates.

  • Added ability of reactions framework to use LXCat electron and ion reactions cross-section data.

  • Improve general robustness, ability to use float precision, and log/error messages.

  • Improved accuracy of calculation of pseudopotential with geometries.

  • Fixed issue with Poisson updater potential when setting boundary conditions from a field when rho is non-zero at the boundary.

  • Fixed issue with recording total current when multiple species are specified in SpeciesAbsPtclData and SpeciesAbsPtclData2 Histories.

  • Fixed issue with Array Histories where field data can be lost on restart.

  • Added numMacroPPCRxns attribute to specify the number of particles-per-cell that represents a fluid during a reaction.

  • Fixed issue with charge density calculations near the axis when the cylindrical axis is included in the domain.

  • Input file parsing has been made slightly more strict – now reporting a few more syntax errors.

  • The anisotropy option for charge exchange is no longer being used and has been removed from the setup tree.

VSim Examples

  • Renamed the Microwave Devices package (VSimMD) to Vacuum Electronics (VSimVE) to be consistent with industry terms.

  • Updated all examples to use the latest engine physics features and specifications.

  • Exposed dumping factor and power for MAL boundaries in 13 examples.

  • Added diagnostics capability to reactions used in 9 examples.

  • Namespaced port launching boundary conditions in 15 examples allowing for multiple port wave launchers to be used on a single simulation boundary.

Added the following new examples:

  • VSimPD -> Sputtering -> Cylindrical Magnetron Sputtering

  • VSimPD -> Sputtering (Text-Based) -> 2D Cartesian Magnetron Sputtering ESPIC

  • VSimPD -> Processes -> Townsend Discharge (completed example with demonstration of parameter scan capability to this example and an analyzer to aggregate the results.

  • VSimPD -> ProcessesT -> Neutral Heat Transport (text-based setup)

  • VSimBase -> Kelvin Helmholtz

Updated the following examples:

  • VSimVE -> CavitiesWaveguides -> S-Matrix of Box Cavity: Now makes use of a unidirectional wave launcher, which greatly simplifies the simulation setup.

  • VSimEM -> Photonics -> Microring Resonator with Mode Launcher: Change setup to use EM plane instead of using E and B separate planes. Cleaning from unused parameters. Now uses syncHat function, which is much easier. Changing B to D in mode solver.

  • VSimEM -> Photonics -> Dielectric Waveguide Mode Calculation: No longer uses unnecessary scaling. Corrected the dimensionality.

  • VSimEM -> Photonics -> Dielectric Waveguide with Gaussian Launcher: No longer uses unnecessary scaling. Removed unused slab history. Using default dt, using calculated number of steps.

  • VSimEM -> Photonics -> Microring Resonator with Gaussian Launcher: Removed unused parameters. Corrected an error in calculating the number of steps.

  • VSimPA -> BeamDriven -> Electron Beam Driven Plasma Wakefield: Updated the MALs on the transverse sides of the moving window. Modified total number of steps to match the documentation.

  • VSimPA -> LaserDriven -> Laser Ionization: Improved visualization instructions.

  • VSimPA -> LaserDriven -> Laser Plasma Accelerator: Removed two unneeded visualization views. Clarified documentation regarding visualization.

  • VSimPA -> LaserDriven -> Colliding Pulse Injection (text-based setup): Clarified documentation.

  • VSimPA -> LaserDriven -> Ionization Injection (text-based setup): Clarified documentation.

  • VSimEM -> Photonics -> Dielectric Waveguide with Gaussian Launcher: Added new parameters and histories. Automated S parameters calculation.

  • VSimEM -> Photonics -> Dielectric Waveguide Mode Calculation: No longer using length unit variable (LENGTH_UNIT).

  • VSimEM -> Antennas -> Phased Array Antenna: Improved upper bounds for far field history.

  • VSimPD -> Spacecraft -> Cylindrical Hall Thruster: Ensured partial Z boundary conditions extend to guard cells for better accuracy. Clarified boundary conditions and documentation regarding this issue.

  • VSimEM -> Multipacting -> Multipacting Growth Using Prescribed Fields: Now shows better electron growth. Better documentation of surface meshing sensitivity.

Removed the following examples:

  • VSimEM -> ScatteringT -> Radar Cross Section: Its capabilities are now in the “Scattering off a Metal Sphere” example.

  • VSimEM -> Antennas -> Dipole: Not useful for VSim.

VSim Analyzers

  • Added a new analyzer (computeFieldDotProduct.py) for computing the dot product of two vector fields, resulting in a scalar field of the same spatial dimensions for a specific dump.

  • Added a new analyzer (computeFieldTimeAverage.py) for computing the average of a given field over some specified number of dumps.

  • Added a new analyzer (computeFieldTimeAverageSequence.py) that computes a sequence of time averages of fields.

  • All analyzers were updated to use Python3 syntax and objects.

  • Fixed an issue with exit where some of the output was not flushed properly.

  • S-Params analyzer (computeSParamsViaOverlapIntegral.py) improved:

    • Changing the analyzer to expose in and out planes for combined EM fields instead of separate planes for E and B planes.

  • Waveguide Mode analyzer (computeWaveguideModes.py) improved:

    • Correcting data writing for 2D setups so that modes are visualized as curves for them.

    • Corrected an error for the upper bounds. Now the curves are centered around the waveguides.

    • Now uses a separate variable for each component of the slice so that parameters may be assigned to it and have an option to create a second file for use when launching a mode in the same simulation.

  • Filter Diagonalization analyzer (FilterDiagonalizationMethod.py) improved:

  • New convention to choose a solution for the mode. If the first non-zero component of the Eigen field in the center cell is negative, then the mode is inverted. If all components in that cell are zero then the difference between the +1 cell in (x,y,z) and the origin cell is tested in the same way. Default is to not invert.

    • Added message to report if positive mode is being chosen by convention for each mode that is calculated.

    • Better documentation of requirements on the maximum number of uniform sampling points allowed with respect to the spatial dimensions of the mode fields.

  • Point History analyzer (convertSlabToPointHistories.py)

    • Now has the option (flag) to include extraction of a 1D time history for the cell at the center of the slab, an option (flag) to write history datasets for all cells, and the ability to specify multiple points within the slab for datasets.

    • Improved error handling for points that are not inside the slab.

    • Better output about what points correspond to which cells, and what the coordinate and cell index bounds of the slab are.

    • Better template for importing modules.

    • Now interpolates the field in the History to the evaluation point including the appropriate Yee offsets.

  • Particle Density analyzer (computePtclNumDensity.py) improved:

    • Fixed issue so that it now handles particle data sets with no particles and now issues a warning that no particles are in the data.

    • Corrected an issue in 2D cylindrical where a variable was not properly initialized.

  • Kirchhoff Box analyzer (computeFarFieldFromKirchhoffBox.py) improved:

    • Now correctly handles float precision.

  • Debye Length analyzer (computeDebyeLength.py) improved:

    • Now computes the density and temperature in 1D, 2D and 3D Cartesian in addition to 2D Cylindrical

VSim Tools

  • Improvements to the cut-cell meshing appear in the grid boundary tool as well as the engine.

  • Improvements to pre-processing tool include:

    • Conditional imports are more robust.

    • Printouts are easier to read.

    • Better messaging.

    • Better handling of paths on windows.

    • More robust usage of character encoding.

VSim Graphical User Interface (VSimComposer)

Setup Tab:

  • Added ability to add unidirectional wave launchers.

  • Added ability to add general reactions in visual setup

  • Added ability to add external circuit models in visual setup and specify their usage in dirichlet boundary conditions.

  • Added ability for Electric/Magnetic/EMField histories to be specified as a coordinate slab.

  • Added ability to specify power of Matched Absorbing Boundaries.

  • Added ability to select minimum noise or maximum stability for particles, changing the depositor to areaWeighting or esirk1stOrder, respectively.

  • Enabled Euler and Hybrid fluids in visual setup.

  • Added “reaction resolution”, which gives the ability to specify the number of particles-per-cell that a fluid is represented by during a reaction.

  • Added ability to create speed limited particles.

  • Added a constant fields option as field solver, which can set a constant field value for E/B.

  • Allowed usage of variables for time step length and number.

  • Corrected an issue in the single dissociative ionization reaction.

  • Improved visual setup to allow for better selective processing of cylindrical electrostatic simulations.

  • Corrected an issue in the gaussian pulse space time function.

  • Added support for importing an Hdf5 file by grid index for prescribed fields simulations.

  • Added translation of fluid energy density to replace fluid pressure.

  • Changed to variable weight particle loaders in cylindrical coordinates allowing for a consistent macroparticle loading density which improves performance with reactions.

  • Corrected issue with particle density setting in cylindrical coordinates when the lower R bound is not 0.

  • Added automated support for gridBoundaries in pseudo potential histories.

  • Added diagnostics to reactions specification.

  • Implemented a scaling field if using maximum stability particle deposition to function properly in cylindrical coordinates.

  • Improved support for linear plasma dielectrics.

  • Improved robustness in CAD file imports.

  • Fixed an issue that prevented field imports with cylindrical simulations.

  • Improved selective processing.

  • Added error checking that the bounds of a far field history are acceptably inside the simulation so that they may be properly analyzed.

  • Added verification that if an external cross section data file is used it exists in the local directory at simulation save time.

  • Improved robustness of material specification to geometries.

  • Improved secondary emitters selective processing

  • Added verification that a file used for a Particle loader from the file exists, as well as has the correct number of columns for a given dimensionality/weighting scheme.

  • Improved error checking for unset and overlapping electrostatic boundary conditions.

  • Made behavior change in electrostatic boundary setting, so that Dirichlet boundaries are always translated before Neumann boundaries. This causes the rail between a Dirichlet and Neumann boundary to always go to the Dirichlet.

  • Implemented verification if an updater is less than one cell thick in any direction.

  • Updated to how overlapping partial boundary conditions are handled for electrostatics. New behavior is to process full bound Dirichlet first, then full bound Neumann, then partial Dirichlet, then partial Neumann. If a full bound is set, partial bounds automatically remove the partial bound from the rail. If two partial bounds share a rail it is up to the user to decide and set which one will get the rail.

  • Made use of nonRelES particles when appropriate in electrostatic simulations for improved performance.

  • Improved handling of cylindrical axes in electrostatic simulations.

  • Fixed an issue in secondary emitter specification on R boundaries.

  • Fixed potential issue in port launchers.

  • More intuitive specification of velocity when using a surface coordinate system with slab emitters. Positive is always into the simulation space with surface.

  • Clarified in properties of secondary emitters when working with a cut cell and non cut-cell emitter specification.

  • Added a distance measuring tool in the 3D View of the Setup Tab to find sizes with two mouse clicks.

  • Parameters and Constants from the Setup Tab can now be used in Run and Analyze Tabs. They also can be used for creating an array of geometries.

  • Fixed issues with picking up names of geometry parts from STEP files.

  • Improved accuracy of parameters in list of materials.

  • Improved importing of GDSII files.

  • Added an option to the setup tree to show only nodes with an assigned material.

  • Substantial improvements to the roughness feature interface giving the user more control over adding roughness to geometry.

  • Moved ‘User Defined’ option to the end of the SpaceTimeFunctions list in the setup tree.

  • Adding UI to support boolean operations for GDSII geometry objects

  • Allow objects in the setup 3D view to be turned off/on, including geometry.

  • The axis in the Perspective view box updates automatically when the view is rotated by the user.

  • Added feature so a user can click in the 3D view and see the coordinates of where they clicked.

  • Improved ability automatically to create hollow CSG shapes without having to manually perform boolean operation of two primitives. All existing geometry operations can be preformed on these hollow shapes (e.g arrays, boolean ops, cloning).

  • Improved user interface for entering long expressions for properties values.

  • Fixed issue with boolean subtraction operation between CSG primitives whose dimensions differ by a small amount

  • Upgraded library used for the 3D View in the Setup Tab for improved robustness of modeling algorithms and compatibility with OpenGL.

  • Added ability to edit CSG objects by translating a set of points that are selected by an overlapping shape.

  • Added feature to support the non-uniform scaling of geometry.

  • Improved ability to hide/show items in the Setup Tab tree.

  • Added capability to create variable grids in visual setup for both cartesian and cylindrical grids.

  • Fixed several updating issues with 3D View as simulation setup changes (especially camera view changes).

  • Added ability to repair holes in CAD geometries.

Run Tab:

  • Now displaying the number of licensed cores in the parallel run options.

  • Added capability to switch between Run Parameters and Run Mode while run is in progress.

  • Now the engine run log is always updated to the new logging position.

  • The color-coding in the run log is now preserved when simulation is saved and reopened.

Design Tab:

  • Added Design Tab. This is a new interface for running parameter scans.

Analyzer Tab:

  • Added feature to be able to assign parameters and constants from setup tab in analyzers.

  • Added feature where analyzers can be marked and run automatically after engine run is finished.

Visualize Tab:

  • Added feature to copy text out of tables in Composer. Items in a row are separated by commas, and each row is separated by a semicolon.

  • Added feature to be able swap the coordinate axes in any 2D visualization.

  • Added ability to use simulation limits in particle plots to better understand where the particles appear relative to the whole simulation.

  • Added ability to set more than one clipping plane for 3d plots in data overview tool.

  • Added feature to be able to create a MPEG-formatted movie from the Visualize Tab.

  • Added ability to change color tables for poly surface plots in the Visualize Tab.

  • Improved History plot controls making them more intuitive.

  • Fixed issue on Windows where history files were not freed by the operating system for visualization mid-run.

General:
  • Moved to Python3 on all platforms. VSim no longer uses system Python on Mac and is more self-contained.

  • Moved to MPICH on Mac, which is more reliable in our testing.

  • Added capability to support Apple Silicon (M1 chips).

  • Fixed allowing for Composer to run on Cray machines.

  • Updates to handle Mac application security

  • Now the full state of the application is saved and any changes detected for saving.

Licensing

  • Improved messaging and logging for diagnosing issues.

  • Added Usage Tracking feature, which is off by default.

  • Simplifying heart beat period and fixing the issue that the license log files get too large for long runs.

  • Improved cluster license interaction with file systems so that large parallel jobs rely less on performant file systems.

  • Added floating-cluster license type.

VSim 12.0 Fixes

VSim Computational Engine (Vorpal)

  • Now report an error if the mode file does not exist. (12.0.1)

  • Add support for time step calculation when using variable grids. (12.0.1)

  • Fixed parallel MAL issue. (12.0.1)

VSim Examples

  • Fixed issue with floating license so that all examples only require a license for the package containing the example. (12.0.1)

VSim Macros and Translator

  • Fixed multifields macro to create multifields if reaction diagnostics are present with constant field solvers. (12.0.1)

VSim Analyzers

  • Fixed logicals for testing if lower/upperBounds can be found in History file of convertSlabToPointHistories analyzer. (12.0.1)

VSim Graphical User Interface (VSimComposer)

  • Saving input files now puts tabs in alphabetical order. (12.0.1)

  • Add ability to remove all files related to a simulation through composer. (12.0.1)

  • Fixed python path in included setupLinuxEnv.sh script. (12.0.1)

  • Fixed a composer crash when the vorpal run output gets too long. (12.0.2)

  • Fixed runtime crash on Windows related to OpenMesh (12.0.2)

  • Fixed using floating license with parameter scans (12.0.2)

  • Fixed an issue in Scheduler runs where the list of queues/partitions was not being populated except with the default queue name. (12.0.3)

  • Fixed crash of Composer when parameters or constants associated with geometries are changed such that they extend beyond the bounding box. (12.0.3)

Licensing

  • Improved checking of the queue command output. (12.0.1)

  • Fixed composer crash on opening with cluster type license. (12.0.1)

  • Fixed issue with floating licenses where it incorrectly attempted to checkout an unlicensed package and caused vorpal to quit inadvertently. (12.0.1)

  • Fixed issue with floating licenses where the vorpal engine would hang. (12.0.1)

  • Fixed issue with floating licenses where encrypted macros were not handled correctly. (12.0.1)

  • Added ability to set the licensing log directory by setting TECHX_LOG_DIR environment variable and touching the appropriate files. (12.0.1)

  • Fixed engine license error when running with a cluster license on a node listed in the non-queued section of the license. (12.0.3)

VSim Documentation

  • Updated documentation (12.0.1)

New and Updated VSim 11.0 Features

VSim Computational Engine (Vorpal)

  • Added new Poisson solver that is highly accurate by using cut cell technology, has the ability to have imbedded conductors and dielectrics, and supports any of the VSim coordinates systems

  • Added the ability to impose Neumann boundary conditions with new cut-cell Poisson solver

  • Child Langmuir emission now works for conformal boundaries

  • Collision gas types now available through dictionary

  • Improved output between solvers

  • Improved naming for log histories

  • Improved handling of data dumping when particles are not present thus preventing confusion in visualization

  • Added field location and position history

  • Space charge limited emission now works for conformal shapes

  • Improved and unified parsing and construction of various types of grids

VSim Examples

Added the following new examples:

  • VSimEM -> Antennas -> Dipole Radiation

  • VSimEM -> Photonics -> Microring Resonator Gaussian Mode

  • VSimEM -> Scattering -> Scattering off a Metal Sphere

  • VSimEM -> Scattering -> Scattering off a Metal Sphere with a Dielectric Coating

  • VSimMD -> Cavities and Waveguides -> Circular Metal Waveguide Dispersion

  • VSimMD -> Cavities and Waveguides -> Rectangular Metal Waveguide Dispersion

  • VSimPD -> Processes -> Corona Discharge 3D

  • VSimPD -> Surface Interactions -> Wafer Impact in Plasma Processing

Significantly updated the following examples:

  • VSimEM -> Photonics -> Microring Resonator with Mode Launcher

  • VSimPD -> Spacecraft -> Satellite Surface Charging

These items have changed in the examples going from version 10 to 11. So, if you encounter the following error messages when opening simulation examples from 10 in the 11 product, please make the noted corrections:

  • Error Message during Setup, “Cannot use Pre-conditoner smoother symmetricvariableblockGaussSeidel …” – correction is to change the “smoother type” under Field Dynamics -> Poisson Solver from “symmetric variable block Gauss Seidel” to “Gauss Seidel”. This is present when opening: + VSimEM -> Electrostatics -> Like-Charge Dipole

  • Error Message during Setup “Cannot use Pre-conditoner smoother Aztec with DD defaults other than SA” – correction is to change the “mg defaults” under Field Dynamics -> Poisson Solver from “DD” to “SA”. This is present when opening: + VSimPD -> Sputtering -> Ion Beam Sputtering + VSimPD -> Spacecraft -> Coupon Array Charging + VSimPD -> Capacitively Coupled Plasmas -> 1D Capacitive Plasma Chamber

  • Error Message during Run “Engine completed with error: Engine exited with error code: 139” – correction is to change the attribute “smootherType = Aztec” to “smootherType = Chebyshev” in the Preconditioner block. + VSimPD -> Capacitively Coupled Plasmas (text-based) -> 2D Capacitive Plasma Chamber (text-based)

  • Particle Does not show during visualization of VSimPD -> Processes -> Single Particle Circular Motion – correction is to change Parameters -> HALF_ZCELL from DZ/2 to DZ.

VSim Analyzers

  • Added a new analyzer for calculating thrust due to particles absorbed at a boundary (computeThrust.py)

  • Added a new analyzer for calculating angular energy distribution for particles absorbed at a boundary (computeAED.py)

  • Added a new analyzer for converting field Histories on slabs to Histories at points, allowing for visualization as a function of time (convertSlabToPointHistories.py)

  • Added a new analyzer for calculating antenna gain and phase information (compute2DantennaGainAndPhase.py)

  • Farfield analyzer (computeFarfieldFromKirchhoffBox.py) improved:

    • 2nd-order accuracy for Kirchhoff integration

    • Now computes phase information in addition to gain

    • Improved API for more intuitive integration with the farfield analyzer

    • Improved performance, error checking and error handling

    • Validation against Method-of-Moments and analytic results

    • Better documentation

  • Analyzer that computes particle kinetic energy as a History (addSpeciesWithKinEnrgInEV.py) now works in cylindrical and Cartesian coordinate systems and does more error checking

  • Analyzer that calculates waveguide modes (computeWaveguideModes.py) now computes modes in the presence of conductors and return a mode of consistent sign

VSim Tools

  • Added new grid boundary tool (gridbndry) that allows one to create cut-cell meshes at the command line using Cartesian or cylindrical grids while identifying and merging overlapping objects

VSim Graphical User Interface (VSimComposer)

Setup Tab:

  • Added ability to create and modify arrays of objects

  • Added the ability to clip and slice scene and geometries on a per variable basis

  • Added the ability to set transparency on a per variable basis

  • Added additional CSG primitives

  • Added ability to clone all elements in the setup tree

  • Improved Boolean operations between CAD and CSG files

  • Added ability to rotate imported geometries

  • Added a scale slider to improve geometry visualization experience

  • Improved, faster import of GDS2 files with the ability to set layers height and layers materials

  • Added predefined space-time functions

  • Added capability of creating cut-cell meshes for certain geometries

  • Added repair surface feature

  • Added capability to separate surfaces

  • Added a “zoom to fit” context menu for geometries for convenience to reset display

  • Improved to Material Database interface

  • Improved robustness in opening incorrectly formatting input files

  • Added support in setup for Neumann boundaries with CAD defined dielectrics

  • Added support for Time Average Histories

  • Enabled condition of “no field solver” for cylindrical coordinates

  • Decreased setup time of simulations with many secondary emitters

  • Correct issue in the weighting of variable weight particles in cylindrical coordinates

  • Improvements to setup files given to engine to produce better output from the engine such as the output of iterative solvers

Run Tab:

  • Added the ability to invoke simulation runs through schedulers, like SLURM

  • Added ability to set environment variables for run

  • Added ability to specify mpiexec options

  • Added display for number of licensed cores

Analyzer Tab:

  • Proper handling of missing data, empty particle dumps created when there are no particles

  • Improved error handling and logging

  • Improved performance and improved interfaces for writing custom analyzers in Python

Visualize Tab:

  • Upgrade the embedded VisIt code to version 3.2

  • Added ability to set plot attributes for each plot or sets of plots

  • More color options

  • Preset camera positions made available for 3D plots

  • User friendly histories for S parameters

  • Improved visualization of Neutral Fluids

General:

  • Improved the user experience with enhanced user interface

  • Persistence across Visualize, Run, and Analyze Tabs

  • Added dark mode support for macOS

  • Enabled displays on high DPI screens

  • Reduced footprint of Composer, now works on displays limited to 1280x1024

  • Documentation now opens in default browser on system

  • Support for the macOS security features such as Notarization

  • Improved logging messages and handling of error conditions

Licensing

  • Added floating license capability and license server capability so that MAC addresses do not have to be gathered

  • Private cloud licenses now available

  • Refactored license manager code for more consistent behavior between composer, engine and tools

  • Improved how license files are found. There is now a way to set an environment variable to a directory that holds a license

  • Improved method in which node list for a cluster license is found

  • Fixed various issues with licensing including better messaging

VSim 11.0 Fixes

VSim Computational Engine (Vorpal)

  • Fixed failure of the Aztec smoother type used in capacitive coupled plasma examples (11.0.1)

  • Fixed messaging ambiguity in field messaging across multiple nodes eliminating need for explicit messing step in simulation (11.0.1)

  • Added stair step updaters for the hybrid model which includes centDiffCurl, ElectronPressure, GenOhm, and Smoothing (11.0.1)

  • Improved atomic sort algorithm for Particle Species (11.0.1)

  • Changed combiner block to allow a user defined expression for the combining threshold (11.0.1)

  • For cylindrical simulations, VSim now defines a particular function for the threshold of splitters and combiners that scales with radius so that macroparticle equilibrium is maintained correctly (11.0.1)

  • Fixed crash when using the Aztec smootherType. This affects the Capacitively Coupled Plasma 2D example (11.0.2)

  • Protecting against using only smoothed aggregation (SA) for Trilinos ML method with the Aztec smoother type (11.0.2)

VSim Examples

  • Removed unnecessary warnings from several examples (11.0.1)

  • Added missing thumbnail image for dipole example (11.0.1)

  • Cleaned up table of contents in example documentation (11.0.1)

  • Changed smoother type Aztec in Capacitively Coupled Plasma 2D text-based example for better performance (11.0.1)

  • Added more detail to documentation regarding the spatial profile and current source used in the wave launcher (11.0.1)

  • Modified the linear solver to decrease the compute time (11.0.1)

  • Updated 3 examples to not use emitDirSign rather the deprecated emitSign attribute (11.0.1)

  • corrected for use of analyzer in Dipole Above Conducting Plane example given that the analyzer was updated (11.0.1)

  • Added ability to add a history to the Current Density in the S-Matrix of Box Cavity example (11.0.1)

  • Remove scaling from all photonics examples (11.0.1)

  • Added a feature computeFarFieldFromKirchhoffBox Python analyzer to take a new argument (backgroundEpsRel) to set the background relative dielectric (11.0.2)

  • Fixed issue with number of steps in the Multimode Fiber Mode Extract example not being editable (11.0.2)

VSim Tools

  • Improved robustness of gridbndry tool for doing cut+cell meshes (11.0.1)

  • Improved farfield executable so that it validates lower and upper bounds of History field slabs (11.0.1)

  • Improved error messages of gridbndry and farfield tools (11.0.1)

  • Fixed issue on MacOS Monterey 12.2+ where the system Python2 has been removed by Apple (11.0.2)

VSim Macros and Translator

  • Improved the order that particle blocks get created in translator (11.0.1)

  • Reduced warnings at engine run time by updating translator output (11.0.1)

  • Ensuring that simulation files with a relative permittivity will be properly translated (11.0.1)

  • Updated bounds of cut cell absorbers to not include guard cells which prevents overlap with the absorbing box, which can allow for particles to leak out of a part of a cell that has a cut cell absorber in it (but no gridBoundary) and an absorber, as only one boundary condition can exist per grid cell (11.0.1)

  • Added verification that a Kirchhoff box recording time is greater than the crossing time to help prevent user specification errors (11.0.1)

  • Update tooltip on mode launchers to be explicit about required naming conventions (11.0.1)

  • Set silica by default to be lossless, as is appropriate for most applications (11.0.1)

  • Correct minor bug in visual setup computation of parameters (11.0.1)

  • Adjust upper/lower bounds of cut cell absorbers to suppress warnings (11.0.1)

  • Improved the handling of secondary particle emission in visual setup (11.0.2)

VSim Graphical User Interface (VSimComposer)

  • Fixed setting of log scale color in field analysis data view (11.0.1)

  • Fixed saving and restoring limits for all visualization plots (11.0.1)

  • Fixed issue when one geometry node for a boolean operation was missing from the simulation file (11.0.1)

  • Improved error message when importing geometry or material files fail (11.0.1)

  • Prevent user from removing geometry parts as this causes issues on reopen of the simulation (11.0.1)

  • Not removing STL file produced for the gridbndry executable so it can be run from the command-line outside Composer (11.0.1)

  • Updated documentation to be more explicit about naming convention required for mode launching file (11.0.1)

  • Corrected missing reference to license needed to have Conductor block (11.0.1)

Licensing

  • Added block kind to VSimPD license (11.0.1)

  • Improved determination of node list for cluster licenses (11.0.1)

  • Improved error messages for license server issues (11.0.1)

  • Fixed logging of errors when running Queue Command for cluster licenses (11.0.1)

New and Updated VSim 10.1 Features

VSim Computational Engine (Vorpal)

  • Added new Photon Emission via a new Radiation Reaction feature. This allows for relativistic electrons to emit photons that can be optionally tracked in the simulation to record emission energy (weight), position, and relativistic gamma (number of photons). The Radiation Reaction feature is associated with the new particle species: relBorisRad, relBorisRadVW, relBorisRadCyl, and relBorisRadCylVW available with a VSimPA license.

  • Fixed issue where alsoAfterRestore was being set to True in the InitialUpdateStep blocks from the Visual Setup. It is now set to False for Electrostatic Phi Field InitUpdateSteps.

  • Fixed implementation for simpleSec for both variable weight and constant weight electrons. A single emission probability p is specified. If constant weight, a single constant weight particle is emitted with probability p, or the primary is absorbed with probability (1-p). If variable weight, a single variable weight electron is emitted always, with weight reduced by a factor of p.

  • Improved the VpGridBndry error message so that it is clear.

  • Fixed issue where tolerance in AztecOO was never set if unspecified in .pre/.in file

  • Improved the robustness of triangle absorbers when running in parallel on windows.

  • Improved the output of Field Updaters, by increasing the support of the “output” attribute. If you set “output = none” inside a LinearSolver block of kind iterativeSolver, you will not see any output from the solver. You can also use “output = summary”, “output = last”, “output = warnings” and these are passed to the solver. Control of output through the verbosity is still supported as well.

  • Added transparentBndry to the VSimMD license package. It was previously only in VSimPD.

  • Fixed license issue that prevented speciesRmsDistToAxis and speciesRmsMomen being used.

VSim Examples

  • New Antenna Array with Single Excited Element example

  • New Phased Array Antenna example

  • New Visual Setup version of Electron Beam Driven Plasma example

VSim Graphical User Interface (VSimComposer)

  • Added the ability to create Arrays of CAD Geometry. Individual parts of step files or stl files can be duplicated into rectangular arrays by right clicking and selecting “Create Array”. This function works just like Array creation with CSG Objects.

  • Added the ability to perform boolean operations between CAD and CSG Geometry, as well as between CAD Objects. This can be used to provide modifications to an existing geometry or to simplify being able to set multiple CAD objects to a single Particle or Electrostatic Boundary Condition. This feature works just like boolean operations with CSG.

  • Added support for Photon Emission Reaction. This reaction allows for relativistic electrons to emit a photon which is not tracked in the simulation, however the emission energy (weight) position, relativistic gamma (num photons) are recorded automatically in a history. Note that this reaction is incompatible with physics defined electron emitters (e.g. Child Langmuir), as well as particle loading from a file. The user will be prevented from running simulations with these features. The user may get to an undefined state if using secondary electron emission either into or from these species with other electron species.

  • Added support for Initial Beam specification for use with electron beam driven plasmas

  • Simple secondary emitters will now take an emission probability parameter, SEY curves were not properly used.

  • Field at position histories now have a point representation in the setup window

  • Accumulate Particle Boundary conditions can now be used with log histories

  • Excitation Reactions can now use 2Column Data for cross section

  • Fixed bug that prevented proper use of some more complexly organized .step files

  • Allowed for imported CAD files that lead with a number (e.g. 15Pipe.stl)

  • Fixed bug that prevented use of Combo Histories in electrostatic simulations

  • Allowed use of all SpaceTimeFunctions in Neumann Boundary Conditions

  • Fixed bug where variable weight neutral particles would have weight 0.

  • Fixed bug where initial update step in electrostatic simulations was updating incorrect field. No impact on simulation results

  • Corrected particles specification from the minimum electron temperature to the maximum electron temperature.

  • Added safety factor added to automatic calculation of time step in particle simulations.

  • Fixed bug in Fowler-Nordheim emission so that field enhancement property is correctly applied

  • Improved robustness of importing STL files. Now double-checks whether STL files whose header indicates ASCII are actually ASCII, and clean it up to avoid problems with potential binary files. Fixed issue with distinquishing facet tag from the solid tag.

  • More user-friendly messages for when failing to import and use tables when importing an h5/vsh5 file.

  • Added protection again user’s system language local settings interfering with reading of input files

  • Improvements to Linux system information script to help diagnose system issues.

  • Added the attribute includeCylVolElem to xvLoaderEmitters in cylindrical coordinates for inputs produced in Visual Setup. Removed the scaling done in the Visual Setup as it is now being done inside by composer (txgml).

  • Added specification of default value of numPSBins in Visual Setup in order to suppress a warning in vorpal.

  • Converted failing to findInsideCorner from warning to notice.

  • Fixed bug where Dirichlet shape boundary conditions were not being created if the shape name itself started with a number.

  • Fixed bug to ensure emissionProb variable is set properly for usage of secondary emitters when constant weight particles are used.

  • New MacOSX Catalina security feature (notarization) supported.

New and Updated VSim 10.0 Features

VSim Computational Engine (Vorpal)

  • Improved robustness and user experience for non-UniCart grids.

  • Fixed an issue where fields were not being interpolated correctly onto particles if the field overlap was larger than the underlying grid overlap.

  • Corrected XvLoaderEmitter so that particles with zero weight (by default) are not loaded. Users can still use the loadZeroWeightPtcls flag.

  • Improved accuracy and stability of cut-cell meshing algorithm especially for simulations with large numbers of MPI ranks (more than 10,000).

  • Simplified XvLoaderEmitter parameters: useCornerMove = “false” is now entranceMove = “default” (or do not specify entranceMove); useCornerMove = “true” is now entranceMove = “corner”; useStairStepMove = “false” is now entranceMove = “default” (or do not specify entranceMove); and useStairStepMove = “true” is now entranceMove = “stairstep”

  • Fixed unphysical asymmetry in the binaryElastic and chargeExchange reactions.

  • Corrected issue that prevented usage of scalars (time-dependent, spatially independent values) with linear solvers.

  • Improved Histories so that syncing is more sophisticated and efficient.

  • Expand the cases where feedbackMeasured Histories can be used.

  • Added capability for initializing beam self-fields as particles are loaded. This simplifies the new linear algebra infrastructure

  • Fixed an issue where particles could pass through a cut-cell boundary without being absorbed if the boundary coincided with a cell face.

  • Reducing and clarifying output from simulations.

  • Added support for tagged particles in cylindrical coordinates.

  • The particle combination algorithm was improved to make the choice of final velocity quadrant more efficient and deterministic.

  • Added Dey-Mittra field extrapolation for cut cells.

  • Added support for speciesNumberOf and speciesNumberGener histories to be used with binary combination history.

  • Improved the absorption/emission calculations that affect long-running simulations.

  • Deprecated VpPoissonUpdaterInput.

  • Deprecated all EmField-based input as they have fully replaced by the setup described by MultiField-based input.

VSim Examples

  • New VSimPD “Townsend Discharge” example.

  • New VSimEM “Dipole Antenna” example.

  • Replaced VSimEM Photonics examples with improved versions: Removed “Cylindrical Dielectric Fiber,” “Dielectric Waveguide Mode Calculation using Point Permittivity” (Visual and Text), “An example of modeling a Microring Resonator,” and “An example of extracting the mode of a Microring Resonator” and added “Multimode Fiber Mode Calculation,” “Multimode Fiber Mode Extraction,” “Multimode Fiber with Mode Launcher,” “Dielectric in Electromagnetics,” “Dielectric in Electrostatics,” and “Ring Resonator” examples.

  • New VSimEM “Scattering off MIM Waveguide” example.

  • New VSimMD “Vaughan Secondary Electron Emission” text-based example.

  • New VSimMD “Laminar Brillouin Flow” text-based example.

  • New VSimMD “Smith-Purcell Radiation (SPR)” example.

  • New VSimPD “Penning High Intensity Ion Source” example.

  • New VSimPD “Ion Source” example.

  • New VSimPA “Dielectric Wall Wakefield Acceleration” text-based example.

  • The “Laser Ionization” example was moved from VSimPD to VSimPA.

  • The MIM Waveguide example was moved to the Photonics section and renamed drudeLorentzMIM.

  • Removed text-based examples that have visual-setup equivalent examples.

VSim Macros and Translator

  • Particle Log Histories now make use of the kind speciesAbsPtclData2.

  • Current Density field no longer needs to be explicitly added, but is only created if necessary for the simulation.

  • Improved verification that electrostatic boundary conditions are not overlapping.

  • Guard Cells properly created in “no field solver” and “prescribed fields” simulations.

  • Improvements to specular boundary conditions preventing particles from being removed from the simulation.

  • Improvements to selective processing.

  • Performance improvements to feedback stfuncs.

  • Corrected field ionization collisions in electrostatic simulations.

  • Corrected emission offset property of particle emitters in cylindrical coordinates.

  • Fixed Constant Weight Particles Particle Loader with physical density allowing the use of spatial profiles.

  • Corrected calculation of time dependent external fields.

  • Improved interpolation of fields for Prescribed Fields solver when multipacting.

  • Field Scaling Electrons are now Constant Weight. Previously variable weights were used to index particle creation. This can now be accomplished with the Binning Feature of Visualization.

  • Can now use all built in SpaceTimeFunctions when setting velocity of particle emitters. Note that if a built-in function is used only global velocity coordinate systems can be used, and if used for the thermal velocity component a gauss function will not automatically be applied.

  • Deprecated VSim GPU macros

VSim Analyzers

There are 13 new analyzers in VSim 10.0:

  • annotateSpeciesDataOnPlane.py: provides particles files corresponding to the data in the history

  • compareFields.py: compares fields, outputting the difference field

  • computeDielectricModes.py: computes the profiles and effective indices of guided modes

  • computeFieldCrossProduct.py: performs a cross product of two different vector fields

  • computeFieldMaxAmplitude.py: reads field data and writing the max amplitude to a history

  • computeFieldRelIntensityHilbert.py: uses a Hilbert transform of the E field to obtain the time invariant E amplitude

  • computeGradient.py: writes the gradient of a history into a new history

  • computePtclBalance.py: plots the number of particles on each rank for small computations

  • computePtclImpactSpectrum.py: generates particle number density, and macroparticle spectrum fields

  • hfssToVsh5.py: converts an HFSS field files to a vsh5 file

  • removePtclComponent.py: removes additional particle components

  • truncateHistory.py: removes records from start and end in a scalar history

  • writeCutCellField.py: puts the cut-and-kept and cut-and-excluded cells from a geometry into a separate field object

VSim Graphical User Interface (VSimComposer)

  • Managed Weights “Macroparticles per cell for Combining” property can now be assigned constants and parameters.

  • Addition of a Separable Current Distribution. This provides performance improvements but requires the spatial component and temporal component of the current distribution be specified separately. The spatial component may be specified using functions or an external field.

  • Addition of External Mode Launching Field for electromagnetic simulations. This will import a 2D field generated by the computeDielectricModes analyzer and launch a mode from it with a defined temporal profile. The 2D field may be positioned anywhere in a 3D simulation. Note that in simulations with dielectrics the “D” field should be used in place of the “E” field.

  • Addition of a flux conserving particle combination algorithm for managed weight particles.

  • Addition of physical offset parameter to particle emitters, this can specify an emission location in physical distance rather than in grid cells.

  • Allow particle log histories to be assigned any number of particle attributes.

  • Addition of Plasma Dielectric Specification in electromagnetic simulations.

  • Addition of Drude-Lorentz and Debye-Lorentz dielectrics in electromagnetic simulations.

  • Particle Combination Histories now support any number of histories to combine.

  • Specification of Time Variance in Prescribed Fields Simulations independent for Electric and Magnetic Fields

  • Interior Partial Transmitter particle boundary conditions now support option to reflect non-transmitted particles

  • Can now use .step files with restricted character names (:, -, >, = etc.)

  • Can now set Field Scaling Particle Loaders with Grid alignment.

  • Can now use all built in SpaceTimeFunctions when setting velocity of particle emitters. This includes external python functions.

  • Improved saving run settings in simulation input files.

  • Improved efficiency when opening large .stl files.

  • Improved controls for visualization plots.

  • Improved user experience with rerunning a simulation.

  • Fixed issues with the setup tree interface.

New and Updated VSim 9.0 Features

VSim Computational Engine (Vorpal)

A new reaction framework that has more and faster reactions was implemented. The speed of the new reaction framework comes from implementing the no-time-counter algorithm.

Previous reactions implemented with this new capability are

  • elastic collisions

  • charge exchange collisions electron ionization

  • impact ionization

  • field ionization

  • recombination (e.g., H+ + e- -> H)

  • 3-body recombination (e.g., H+ + e- + e- -> H + e-)

  • electron impact dissociation (e.g., H2 + e -> H + H + e)

  • excitation (e.g., H + H/e -> H* + H/e)

  • dissociation (e.g., H2 + H/e -> H + H + H/e)

  • electron attachment (e.g., H + e- -> H-)

  • negative ion detachment (e.g., H- + H/e -> H + e- + H/e)

New reactions are

  • dissociative ionization (e.g., H2 + e -> H+ H + e)

  • dissociative recombination (e.g., H3+ + e -> H2 + H)

  • general inelastic binary reaction with 2 reactants -> 2 products, momentum conserved, and a specified energy lost. (e.g., H2 + H2+ -> H3+ + H)

In addition, field ionization removes the ionization energy from the field.

One can now specify the species in fluid and particle blocks by element name, which sets the mass, charge, ionization energy, and excitation energy. Once a predefined species has been set, it is ready to be used within the rxn framework. In addition, these properties can be defined for a custom species with (species=custom) in the ptcl/fluid block. Further, one can still override the values for any species, e.g., select Hydrogen but set its ionization energy to be different from 13.8 eV.

The secondary emission process was generalized so that the impact of any species on a wall can lead to the emission of itself or any other species. (In the prior implementation, the allowance of secondary emission was determined by the order of appearance in the input file.) The user now has some control over secondary particles, including customizable weighting and tagging, as well as correlated secondary emission of multiple species.

Memory usage was reduced for electromagnetic simulations.

The computation of surface fields at boundaries was improved, making the motion of particles more accurate, even in cells that overlap the boundary.

Slab histories with reduced communication and memory usages were developed, enabling larger simulations on multi-core CPUs.

The methodology for second-order dielectric updaters with conformal boundaries and dispersion was developed and implemented.

Restarts were enabled for simulations with grid boundaries having cuts at domain boundaries.

All random processes can be controlled by a seed.

There are now emitter diagnostics that record individual particle data of emitted particles as well as sums and averages over all particles emitted in each time step.

More robust cut-cell absorption with optional diagnostics recording the absorption location, the surface normal at that location, and the exact time of absorption.

For variable weight particles, collisions now demonstrate the correct collision frequency based on the supplied cross-section (with version 9.0.1)

VSim Analyzers

All analyzers updated to a common interface to reduce the need to look up certain individual properties.

Custom analyzer development was simplified through restructuring so that basic services (file reading, options) flow automatically.

New analyzers:

  • S Parameters from History (computeSParamsFromHists.py)

  • S Parameters from Overlap Integral Calculation (computeSParamsViaOverlapIntegral.py)

  • Compute Geometry Cavity Merit Factor G (computeCavityG.py)

  • Extract Modes via Operator (extractModesViaOperator.py)

  • Compute Accelerating Voltage and Transit Time of a Cavity Mode (computeTransitTimeFactor.py)

  • Create Field Data on an Unstructured Mesh Representing Surface Geometry (putFieldOnSurfaceMesh.py)

  • Annotate fieldOnLine history files (annotateFieldOnLine.py) (added back in 9.0.2)

  • Generates particle number density, and associated fields based on particles stored in history data files (annotateSpeciesAbsPtclData2.py) (added back in 9.0.2)

  • Sum a history, for example to get a total charge from a current measurement (computeCumulativeSumHistory.py) (added back in 9.0.2)

  • Computes the emittance as a bunch travels through the simulation (computeEmittanceFromDump.py) (new in 9.0.2)

  • Computes the emittance as a bunch travels through the simulation on a plane (computeEmittanceOnPlane.py) (new in 9.0.2)

  • Computes history output containing maximum and minimum particle coordinates for each time step (computePtclLimits.py) (added back in 9.0.2)

  • Computes spectrograms from time-series data in history files (computeSpectrogram.py) (added back in 9.0.2)

  • Converts XYZ particle data around the x axis to cylindrical components (convertPtclComponentsCartToCylX.py) (added back in 9.0.2)

  • Converts XYZ particle data around the z axis to cylindrical components (convertPtclComponentsCartToCylZ.py) (added back in 9.0.2)

  • Creates data files with containing particle paths over time (createParticleTracks.py) (added back in 9.0.2)

  • Reads in a single H5 file for a particle species and exports it as a text file or as a sequence of text files (exportSpecies.py) (added back in 9.0.2)

  • Performs arithmetic operations on two histories from the same simulation and writing to a third history (performTwoHistoryArithmetic.py) (added back in 9.0.2)

The following analyzers were removed:

  • addPtclComponentKEeVx.py

  • addPtclComponentKEeVy.py

  • addPtclComponentKEeVz.py

  • calculateEmittance.py

  • calculateFieldMaxAmplitude.py

  • computeFarFieldFourierComponent.py

  • computeFieldCrossProduct.py

  • computeLineIntegral.py

  • computeSurfaceFlux.py

  • getFieldComponentsOnPlane.py

VSimComposer

The input file is now generated more quickly. Status messages have been expanded to give more detail. The Run Panel was restructured to allow all parameters to be visible at once, and to show the VSim recommendation for certain parameters, such as the time step. The Analyze Panel was restructured to allow several analyzers to be open at once, with separate output windows for each.

Visual Setup generalized to allow easier specification of many simulation parameters:

Basic Settings

  • Phase shift boundary conditions

  • Easier switching between 2D and 3D simulations

  • Decomposition direction specification

  • Dump in groups (for use by extract modes by operator)

  • Suppress dumps of certain fields

Fields

  • Expanded options for Linear Solver

  • 2nd order dielectrics, up to 9 dielectrics

  • Feedback driven ports

  • Import external VSim and function defined fields

Particles

  • Charge accumulation particle boundaries

  • Partial transmitter particle boundary

  • Diffuse reflector particle boundary

  • Monte Carlo interactions

  • Particle load From file

Collisions

  • Background gas can be a fluid

  • Specification of Charged Particles by species name as an option

  • Managed weight particles weight setting

Histories

  • Accelerating Voltage and Field Slab History

Space Time Functions

  • Feedback SpaceTimeFunctions can now use absorbed particle current histories as the feedback history. (with version 9.0.1)

VSim Documentation

The documentation was rewritten and expanded. There are now five manuals, VSim Installation, VSim User Guide, VSim Examples, VSim Customization, and VSim Reference. The User Guide contains an extensive section on the basic concepts of simulation.

VSim Examples

VSim examples contain many new examples, in particular concerning photonics and plasma discharges. In detail:

  • a6Magnetron1Modes.sdf

  • a6Magnetron2Power.sdf

  • arrayedWaveguideGrating.sdf

  • cylFiber.sdf

  • cylindricalWaveguide.sdf

  • dielectricWaveguide.sdf

  • dielectricWaveguideMode.sdf

  • dipoleOnConductingPlane.sdf

  • microringResonator.sdf

  • microringResonatorMode.sdf

  • pillboxCavity.sdf

  • singleParticleCircularMotion.sdf

  • antennaOnHand.sdf (new in 9.0.2)

One example was removed (advancedDipoleAboveConductingPlane.sdf).

VSim Distribution and Licensing

Installers and installations reduced in size.

VSim 9.0 Bug Fixes

VSim Computational Engine (Vorpal) Bug Fixes

  • Collisions between a single species were occurring at a factor of 2 too often, this has been fixed and the reactions have been validated (with version 9.0.1)

  • Accuracy of reaction rate improved for nearly mono-energetic collisions (with version 9.0.2)

  • Power law and exponential polynomial cross-sections have improved documentation and performance (with version 9.0.2)

  • Bug fix in reactions using fluids with moving window (mainly laser ionization) for parallel artifacts (with version 9.0.2)

  • Reactions of fluids with or resulting in variable weight particles now have more accurate results and flexibility by introducing a new attribute to fluids - numMacroPPCRxns - that determines how many equivalent macro particles per cell are used for the fluids within reactions. For variable weight, this determines the maximum number of macroparticles that could result from the reaction in each time step. (with version 9.0.2)

Visual Setup Bug Fixes

  • Corrected potential bug in update period specification for reactions framework (with version 9.0.1)

  • Improved partial pre-processing for reactions and monte carlo interactions (with version 9.0.1)

  • Corrected improper warning message with MAL boundaries (with version 9.0.1)

  • Allowed assignment of non-expression space time functions for relative density particle loaders (with version 9.0.1)

  • Automated interpolation for proper particle loading on cylindrical grids (with version 9.0.1)

  • Enabled right click assignment of constants and parameters to strings when the default value is a string (with version 9.0.1)

  • Removed unused menu item (with version 9.0.1)

  • Fixed bug where external help window would block composer window (with version 9.0.1)

  • Fixed bug where Analyzer lost focus when set to default (with version 9.0.1)

  • Fixed name of starting run log file (with version 9.0.1)

  • Fixed bug where removed stfuncs would still be listed (with version 9.0.1)

  • Fixed bug where stfuncs could be removed while being referenced (with version 9.0.1)

  • Fixed composer freezing if translator could not be found (with version 9.0.1)

  • Improved speed of loading SDF files (with version 9.0.2)

  • Fixed issues with “Abort Setup” button (with version 9.0.2)

  • Prevented crash when changing the name of variable to pre-existing variable name (with version 9.0.2)

  • Improved usability of long item lists in the right click context menu of the setup properties (with version 9.0.2)

  • Improved usability of save dialog (with version 9.0.2)

  • Fixed issue with new setup tree items having the same name as a previous item (with version 9.0.2)

  • Fixed bug in certain analyzers on Windows (with version 9.0.2)

  • Added more time logging when opening files (with version 9.0.2)

  • Made importing STP files faster (with version 9.0.2)

  • Fixed bug where unselected shapes were not made invisible (with version 9.0.2)

  • Centered default values of lineout intercepts (with version 9.0.2)

  • Fixed bug so that window title bar updates when shortDescription is changed in a text-based simulation (with version 9.0.2)

  • Ensured user chosen histories are respected when reloading data (with version 9.0.2)

  • Fixed bug where variable names inside expressions in setup were not updated when the variable name was changed (with version 9.0.2)

  • Allowed user setting of temporary directory (TMPDIR) to address issues when the default directory is too long (with version 9.0.2)

  • Fixed bug with disable of “Save and Setup” button when a run is canceled (with version 9.0.2)

  • Fixed issue with loading sdf files with arrays of constructive solid geometry in them (with version 9.0.2)

  • Fixed bug with pseudo potential and accelerating voltage histories in electrostatics (with version 9.0.2)

  • Added verification that dielectric materials are not used in electrostatic simulations (with version 9.0.2)

  • Enabled field imports for 2D simulations (with version 9.0.2)

  • Bug fix to include cylindrical axis only if necessary (with version 9.0.2)

  • Bug fix for partial Neumann boundary conditions had wrong offset in some situations (with version 9.0.2)

  • Added PEC to Normal Basic Setting to select the normal of PEC materials. This feature is useful for CAD imports that may have a reversed normal from expectation. (with version 9.0.2)

  • Added option to include effects of unmodeled photons in decay reactions (with version 9.0.2)

  • Allowed binary combination histories to be used in feedback functions (with version 9.0.2)

  • Changed default parameters of electrostatic solvers to more commonly used values (with version 9.0.2)

  • Clarified basic setting of how a Perfect Electric Conductor is assigned to a shape (with version 9.0.2)

New and Updated VSim 8.2 Features

The following features are new or have been updated for the 8.2.0 release.

VSim Computational Engine (Vorpal)

  • Added a new Monte-Carlo elastic collision algorithm with threshold energy functionality

  • Removed assumption in elastic collisions of first incoming particle being light compared with second incoming particle with the result being energy conservation in the collisions of particles of similar masses.

  • Fixed memory leaks with some histories on long runs

VSim Graphical User Interface (VSimComposer)

  • Removed gstreamer-0.10 requirement on Linux

VSim Macros and Translator

  • Capitalization fix in embcs.mac

Other

  • Improved general robustness of license management

  • Made cluster and node-locked license tokenfile behavior consistent between Vorpal and VSimComposer

Known Issues in VSim 8.2

  • Remote VSimComposer does not work * Windows Cluster support was lost with the upgrade to MPI on windows needed for certain simulations. * EM Cylindrical not implemented for visual setup * Occasionally, for parallel runs, the stl reader can spuriously set some regions outside of objects to being inside. When this happens, it is manifest in the visualization of the corresponding geometry field in Data Overview. In all cases observed so far, this has been fixed by offsetting the grid a small amount, changing the number of cells, and/or changing the number of parallel processes.

New and Updated VSim 8.1 Features

The following features are new or have been updated for the 8.1 release.

VSim Computational Engine (Vorpal)

  • Scattering processes added for antimony (Sb), including electron-electron scattering

  • Added transport and emission from antimony (Sb) using the density of states

  • Added model to specify percentage of specular and diffusive emissions

  • Added Species kind “bandSpeciesES” to the VSimSD license

  • Fixed issues with several command-line arguments including -h and –help

  • Improved warnings when improper values are given for simulation parameters

  • Fixed issue with line dumping without a name

  • Fixed issue where all 3 components of deltaAtBreaks were not checked to determine if the grid is uniform

VSim Examples

These examples now have Visual Setup:

  • A Loop Antenna created from a coaxial cable (VSimEM)

  • Horn Antenna (VSimEM)

  • Patch Antenna Far Field (VSimEM)

  • Rectangular Waveguide (VSimEM)

  • Electron Gun (VSimMD)

  • Gyrotron Mode (VSimMD)

  • Helix Traveling Wave Tube 1: Dispersion (VSimMD)

  • Helix Traveling Wave Tube 2: Impedance and Attenuation (VSimMD)

  • Helix Traveling Wave Tube 3: Power Run (VSimMD)

  • 2D Magnetron (VSimMD)

  • Multipacting Resonance in Waveguide (VSimMD)

  • Multistage Collector (VSimMD)

  • 3D Stripline Multipacting (VSimMD)

Other example features include:

  • Updated examples to take advance of new macro functionality

  • Added the numerical Cherenkov filter option to EM examples

  • Improved Photonic Crystal examples

VSim Macros and Translator

  • New macro to allow numerical Cherenkov filters in Visual Setup as a parameter of the field solver

  • New macro, stfuncs.mac, to handle built-in Space-Time functions including Python file import and feedback

  • Added support to set localVelocity parameter off of shape emitters

  • Updated the reflecting particle boundary macros to handle rails and corners

  • Added history to let user set pseudoPotential by coordinates in addition to via grid index

  • Added support for secondary emitters to test particles

  • Added support to simplify creation of rectangular and coaxial waveguides

  • Added pipe primitive

  • Fixed issue with HalfWave Dipole Antenna failing on GPU

  • Fixed several issues dealing with handling of cylindrical coordinates

  • Improved performance of filters macro

  • Improved embcs.mac and VSimEm.mac for a faster implement of MAL boundaries

  • Improved particles.mac (support for particle species loader with repeat loading)

  • Removed unused macros, unnecessary parameters, and cleaned up referenced inside macros

  • Fixed several issues with histories.mac for logging of ptclQty and speciesAbsPtclData

  • Fixed issue with parallel restarts on Win10 with CAD geometries

  • Fixed issue with specifying name of external magnetic fields

  • Better handling of global variables in macros

VSim Analyzers

  • Improvements to data analysis executables

  • New analyzer, exportSpecies.py, that exports a particle species to a text file or sequence of text files

  • New analyzer, getFieldComponentsOnPlane.py, to get field components on a plane

  • Updated the computePtclNumDensity.py analyzer to perform spatial averaging

  • Improved addPtclComponentKEeV.py, fixing a bug involving mismatched components after multiple runs, adding check on restart, executing dump files in numerical order, better specifying of KEeV, KEeVx, KEeVy, or KEeVz, all in one script

VSim Graphical User Interface (VSimComposer)

  • Improvements to tree-based/visual setup

  • Fixed issue in visual setup of current sources, changing field specified from E-Field to a proper J-Field

  • Better handling of Space-Time functions in Visual Setup tree

  • Added support for Field Scaling Electrons

  • Improved Constructive Solid Geometry tessellation and meshing for geometry primitives

  • Improved speed of Visual Setup rendering

  • Added support for geometries described by Python functions

  • Improved expression handling in Visual Setup tree

  • Fixed issues with certain plots incorrectly displaying in Visualization Tab

  • Fixed automatic scrolling issues in Run and Analyze Tabs

  • Added support for scaling and translation of STL files

  • Added support for all macro changes above in Visual Setup tree

  • Fixes issues with resizing of the grid

  • Improved usability and robustness of Visual Setup tree interface

  • Improved wildcard searching in Documentation/Help

  • Improved searching with omitting terms with minus sign in Documentation/Help

  • Reduced the verbosity of search results in Documentation/Help

  • Added instructions on searching in Documentation/Help

  • Improved navigation in sidebar contents in Documentation/Help

  • Fixed issue with equation rendering speed in Documentation/Help.

  • Improved appearance of overall Documentation/Help formatting

  • Improved documentation of Visual Setup

Other

  • Over 50 use issues fixed.

Known Issues in VSim 8.1

  • Remote VSimComposer does not work

  • Windows Cluster support was lost with the upgrade to MPI on windows needed for certain simulations.

  • EM Cylindrical not implemented for visual setup

  • Occasionally, for parallel runs, the stl reader can spuriously set some regions outside of objects to being inside. When this happens, it is manifest in the visualization of the corresponding geometry field in Data Overview. In all cases observed so far, this has been fixed by offsetting the grid a small amount, changing the number of cells, and/or changing the number of parallel processes.

New and Updated VSim 8.0 Features

The following features are new or have been updated for the 8.0 release.

VSim Computational Engine (Vorpal)

  • New package: VSim for Semiconductor Devices for modeling electron transport in diamond or Gallium Arsenide

  • Fast dielectric algorithm can take multiple dielectrics assigned to multiple shapes

  • Windows Cluster Support with graceful shutdown of job

  • Automatic detection of GPU acceleration

  • Ability to use cross-section data files from a user definable location

  • 17+ new simulation object kinds (including Species, Particle Sources/Sinks, Emission Models, Histories, Field Updaters, Grids, Grid Boundaries, and Domains)

  • Improved reliability of fast electrostatic solves on Linux

VSim Examples

  • Charge Carrier Dynamics in Diamond (VSimSD)

  • Electron Transport in GaAs (VSimSD)

  • MESFET Device (VSimSD)

  • Metal Schottky Contact and Transport in Diamond (VSimSD)

  • Transport and Emission in Diamond (VSimSD)

  • Electron Emission in GaAs (VSimSD)

  • Langmuir Probe (VSimPD)

  • Turner Plasma Discharge, Case 2 (VSimPD)

  • Electron Gun (VSimMD)

  • Half-Wave Dipole in Free Space (VSimEM)

  • Linear Phased Scanning Array (VSimEM)

  • Gaussian Laser Beam and Photonic Crystal Cavity (VSimEM)

  • Dipole Source and Photonic Crystal Cavity (VSimEM)

  • Scattering off Multiple Objects (VSimEM)

  • Drude-Lorentz Metal-Insulator-Metal Waveguide (VSimEM)

  • Spherical Lens (VSimEM)

  • Halfwave Antenna (VSimBase)

  • Cylindrical Capacitor (VSimBase)

VSim Macros

  • Macros standardized and simplified

  • Ability to use macros from a user definable location.

VSim Analyzers

  • VSim now comes with more than 30 data analysis executables.

  • Standardization of all analyzers so that user defined input will show up as entry boxes.

VSim Graphical User Interface (VSimComposer)

  • Easy, configurable tree-based/visual setup for many problems

  • Ability to import materials from a file.

  • Easily switch between different simulation types (electrostatic, electromagnetic, with or without particles) with GUI adapting to the selection.

  • Import CAD objects from multiple formats (step, stl, ply, vtk) and set materials of those objects

  • Multiple Geometry shapes can be visually added to simulation.

  • Ability to define parts through constructive solid geometry.

  • Ability to define expressions and parameters and use those in defining the simulation.

  • Ability to assign materials to parts, regardless of how they were imported or constructed.

  • Minimize data reloading during visualization.

  • Uniformization of output across all platforms.

  • Multiple simulations can be saved to one directory.

Other

  • Over 373 use issues fixed.

Known Issues in VSim 8.0

  • Remote VSimComposer does not work

  • EM Cylindrical not implemented for visual setup

  • Occasionally, for parallel runs, the stl reader can spuriously set some regions outside of objects to being inside. When this happens, it is manifest in the visualization of the corresponding geometry field in Data Overview. In all cases observed so far, this has been fixed by offsetting the grid a small amount, changing the number of cells, and/or changing the number of parallel processes.

Deprecated Features for VSim 8.0

VSim Computational Engine (Vorpal)

The following engine features are deprecated as of the VSim 8.0.0 release and may no longer be supported in future releases of VSim:

Attributes Deprecated in Version 8.0

  • The kinds bitRevDensSrc, bitRevDensSrcVW, gaussDensSrc, gridDenSrcVW, and planarPtclEmitter of the ParticleSource block have been deprecated. Please use the xvLoaderEmitter kind instead.

  • kind is deprecated for the Decomp block. The regular decomposition is the only one available and therefore this attribute is not needed at all. Please simply omit “kind = ” from the Decomp block

  • stCadRgn kind of STRgn block has been deprecated. Please use gridRgnBndry kind of GridBoundary block instead. The gridRgnBndry is a much faster method for importing STL geometries.

  • cell kind of Species block has been deprecated.

Features Deprecated in Version 8.0

  • Chinese is no longer supported for VSimComposer

Attributes Deprecated in Version 7.0

  • The attributes GridDenSrc, CoordProdGridPosGen, CoordProdGridDenSrcVW of the ParticleSource block have been deprecated. Please use gridPosGen of the xvLoaderEmitter kind instead.

  • The attribute numPhysCells of the Grid block has been deprecated. Please use numCells instead.

Deprecated in Version 6.0

Attributes

- The attributes `kind=yeeEmField` and `kind=exp24EmField`
  of the `EmField` block have been deprecated.
  Use `MultiField` block instead

- The attributes `kind=block`, `kind=cosSqPulse`,
  `kind=expPeak`, `kind=gaussianGrad`,
  `kind=gaussianLapl`, `kind=linearRamp`,
  `kind=mask`, `kind=muWaveMode`,
  `kind=periodicSTFunc`, `kind=qFormPolyn`,
  `kind=radSymFunc`, `kind=sawtoothWave`,
  `kind=strap` and `kind=waveguide`
  of the `STFunc` block have been deprecated.
  Use `kind=expression` and specify desired functional
  expression instead

- The attributes `kind=smoothWide1D` and
  `kind=spaceScalarFieldFuncUpdater`
  of the `FieldUpdater` block have been deprecated.
  Use `kind=smooth1D` instead

- The `Component` sub block of the `EmField` of
  `kind=funcEmField` has been deprecated. The components
  are now set using `STFunc` blocks with the names E0,E1,E2,B1,B2 and B3.

VorpalView

  • VorpalView, an IDL-based visualization tool, is a deprecated feature as of VSim 6.0.0.

Deprecated in Version 5.2

- The `STFunc` block with the name `loadProb`, which is a sub-block of the
  `ParticleSource` block, which is, in turn, a sub-block of the `Species`
  block, has been renamed to an `STFunc` block with the name `macroDensFunc`.
- The attribute `loadInGuardCellFlag` of the `ParticleSource` block
  with `kind=ptclEmitter`, which is a sub-block of the `Species` block,
  has been renamed `loadInGuardCell`.
- The attributes `kind=speciesTrackTagInternals`,
  `kind=speciesTrackTagTraj`, `kind=speciesTrackTraj`, and
  `kind=speciesTracVel` have been deprecated.
  Use `kind=speciesTrackTag` instead.
  We are now only supporting history tracking if the user uses tagged particles.

Deprecated in Version 5.0

Attributes

  • The components attribute in the FieldUpdater blocks of kind=gpuSTFuncUpdater, kind=STFuncUpdater, and kind=unaryFieldOpUpdater has been renamed writeComponents.

  • The attributes kind=nonRelESCell and kind=2ndOrderRelBorisCell of the Species block have been deprecated. The same models can be accessed with kind=cell and pusher=nonRelEs for kind=nonRelESCell and kind=cell, pusher=relBoris and stencil=spline2ndOrder for kind=2ndOrderRelBorisCell.

Blocks

  • Collision

  • ImpactCollider

  • Ionizer. Use the Monte-Carlo framework (i.e., the MonteCarloInteractions blocks) in place of using the above deprecated blocks.

Attributes Deprecated in Version 4.2

  • The attribute function of the BoundaryCondition block and the EmField blocks of kind=yeeStaticElecField, kind=funcEmField, and kind=yeeStaticElecFieldTrillinos, has been replaced with an STFunc block with the name function.

  • The UserFunc block now requires specific names. Arbitrary names for this block have been deprecated.

Attributes Deprecated in Version 4.0

  • The attribute periodicityDirs of the Decomp block has been renamed periodicDirs.

  • The attribute indices of the BoundaryCondition and InitialCondition blocks have been replaced with the attribute components.

  • The attribute function of the STFunc block has been replaced by the attribute kind.

  • The attribute singleEmission of the ParticleSource block, which is a sub-block of the Species block, has been deprecated. The option singleEmission=true has been replaced by the option ptclCountType=noCounting, while the default setting is equivalent to the option singleEmission=false.

Attribute Deprecated in Version 2.0

  • The attribute xtendUpdate of the FieldUpdater block has been replaced by the attributes cellsToUpdateAboveDomain and cellsToUpdateBelowDomain.