What’s New Since Version 5.0.0#
This page lists the main new capabilities of the development version of Neper (9 November 2026) since version 5.0.0, starting with some highlights. These changes are not yet part of an official release. Several of them change existing behavior or remove options, see Incompatible Changes.
Highlights#
Faster Execution and Improved 3D Regularization#
All modules run faster, in particular tessellation generation, with an about 25% faster computation of the cells and a faster neighbor search. The 3D regularization (-reg) has been improved, and its results no longer depend on the build.
Multiscale Periodic Tessellations#
Multiscale tessellations can now be periodic. Here, grain-growth primary cells are divided into Voronoi secondary cells, whose number is proportional to the volume of the primary cell.
$ neper -T -n 30::300*size -morpho "gg::voronoi" -periodicity all
See Generating a Multiscale Tessellation (-T) and Generating a Periodic Tessellation (-T).
Regularization of Periodic Tessellations#
Periodic tessellations can now be regularized, which removes their small edges and so the local mesh overrefinements.
$ neper -T -n 300 -morpho gg -periodicity all -reg 1
$ neper -M n300-id1.tess
Mesh Size Map#
The element sizes inside the faces and cells are now set by a mesh size map: they increase from the boundaries at a rate set by -pl, up to the specified value. The edges follow the same map. Sizes can be set for the vertices, edges, faces and polyhedra, using -[r]clpoly in particular, and progression factors for the edges, faces and polyhedra, using -pl{edge,face,poly}.
$ neper -T -n from_morpho -morpho "cube(3)" -o d
$ neper -M d.tess -rcl 1 -rclface 0.15 -rcledge 0.05 -pl 1.5
Exact Curved Domains#
Cylindrical and spherical domains are now exact (curved) instead of faceted, unless a number of facets is requested, and they remain exact when translated or rotated. An hourglass domain has been added. Meshes follow the curved surfaces, including their second-order nodes, and large faces are meshed more accurately.
$ neper -T -n 1000 -morpho gg -morphooptistop val=1e-2 -reg 1 -domain "hourglass(1.5,1,0.98)"
$ neper -M n1000-id1.tess
Discontinuous and Cohesive Elements for Periodic and Multiscale Tessellations#
Option -interface can now produce discontinuous and cohesive interfaces for periodic tessellations, where an interface between a cell and the periodic image of another cell is described at its master location, and for multiscale tessellations, with a different value for each scale (e.g., cohesive elements between the primary cells only).
$ neper -M per.tess -interface cohesive
$ neper -M n10x10.tess -interface "cohesive::continuous"
Custom Node Sets#
Option -nset can now define node sets from expressions, as <label>:<expr>, and from min, max and closest. A node set can then be shown using -shownode nset==<label>. Here, a node set is defined at the center of the top face of a cylindrical sample of diameter 1 and length 1.5.
$ neper -T -n 100 -reg 1 -domain "cylinder(1.5,1)"
$ neper -M n100-id1.tess -nset "faces,edges,vertices,topcenter:closest(0.5,0.5,1.5)"
$ neper -V n100-id1.tess,n100-id1.msh -shownode nset==topcenter -datanodecol red -datanoderad 0.04
Orilib Program#
The orilib program can run most of the functions of the Orilib library from the command line, interactively or in scripts, for example to convert orientations between descriptors or to compute disorientations:
$ echo 0 30 0 | orilib ol_e_q
0.965925826 0.258819045 0.000000000 0.000000000
See Orilib Program.
Tutorials#
The tutorials have been extended and rewritten, and they now cover most capabilities of Neper, from tessellation generation to meshing, visualization and post-processing of simulation results. Each tutorial is a step-by-step guide whose commands can be run directly, and they are part of the documentation:
New Capabilities by Module#
Tessellation Module (-T)#
Exact cylinder and sphere domains, also for a cylinder periodic along its axis, and hourglass domain (
-domain). The curved domain faces are labeledcylorhourglass.Improved cutting algorithm (direct cutting).
Periodic multiscale tessellations.
-morpho diameq2d, for 2D equivalent diameters.-transform rmseed, which removes seeds matching expressions and recomputes the tessellation, and the seed keyscell_<key>, which give access to the keys of the cell of a seed.-transform renamedomface, which renames a domain face.-regdelcell, which allows regularization to delete cells.Improved 3D regularization.
Expressions in all
-statoptions.curpdf0value of-morphooptilogdis, for the current, not smoothed PDF.Faster morphology optimization: about 25% faster computation of the cells, and faster neighbor search.
Deterministic morphology optimization, and results of regularization that do not depend on the build.
Meshing Module (-M)#
Mesh size map, for the edges, faces and cells (
-pl), with-[r]clpoly,-pl{edge,face,poly}and-mesh2dclreps.Custom node sets, as
<label>:<expr>,min,maxandclosest(-nset).discontinuousandcohesiveinterfaces for periodic tessellations (-interface).Second-order nodes projected onto the curved faces and edges.
Improved meshing of the curved faces: conformal projection for the sphere, and conformal unrolling for the hourglass and torus cuts.
Any number of partitions, not necessarily a power of 2 (
-part).Node sets kept when a mesh is loaded without its tessellation, and updated by
-orderand-sortnode.Expressions in all
-statoptions.Reproducible parallel hexahedral meshing of regularized tessellations (
-elt hex).
Simulation Module (-S)#
<res>_eqelement, elset and mesh results, which give the equivalent value of a symmetric tensor result, as computed by FEPX (e.g.,stress_eq).Simplified simulation directories: the directory content is read directly, without a
.simfile, and definitions are written to.deffiles. Input files are identified by their extensions and are not necessarily namedsimulation.*.type=argument offile(), and steps of a simulation directory without results set from the.step*files offile().Case-insensitive keywords and values in
simulation.cfg.Steps without result files skipped during post-processing.
Clear error messages for invalid simulation directories, configuration files and results.
Visualization Module (-V)#
Sample symmetry in orientation space (
-orisym).Highlighting colors
hl1,hl2andhl3.Node sets in the expressions of
-shownode(nset==<label>).-crysymfor-space rodrigues.Clear errors when POV-Ray or Asymptote is missing or does not generate a file.
General#
orilib program, which can run most of the functions of the Orilib library from the command line (make orilib), see Orilib Program.
Fewer dependencies: NLopt is no longer needed.
macOS compatibility fixes, and Bash completion for all options.
Numerous bug fixes in all modules, including memory errors found with AddressSanitizer.
Incompatible Changes#
Tessellation Module (-T)#
Warning
Seed weights are now the actual Laguerre weights, \(w\) (power distance \(d^2 - w\)), instead of their square roots. Tessellations are unchanged, but the weight values are not. In particular, -morphooptiini weight:radeq (and avradeq, etc.) must be replaced by weight:radeq^2 (and avradeq^2, etc.): the former syntax still runs, with no warning, but sets a different initial solution. Custom weight values (real values, data files, multiscale cell files) must be squared too.
The
tessandtesrfile format versions are now 3.6 and 2.3. Older files can still be read, and their weights are converted; new files cannot be read by former versions.-morphooptiboundlower/upper w:, and thewkeys of-morphooptilogvarand-statcell/-statseed, now apply to \(w\), while-morphooptideltamaxapplies to \(\sqrt{w}\), the optimization variable.-orioptiininow uses:instead of=, as-morphooptiinidoes (e.g.,weight:file(<file>)instead ofweight=<file>). The former syntax is now an error.-regularization,-fmax,-[r]sel,-mloopand-maxedgedelqtyare renamed-reg,-regfmax,-reg[r]sel,-regloopand-regedgedelmax(the former names are deprecated).[r]selis removed from-morpho.The transformations of
-loadtesrare removed (use-transform).Only the built-in
subplexoptimization algorithm remains (praxis,neldermead,cobyla,bobyqaandnewuoaare removed).
Meshing Module (-M)#
The Gmsh library is now mandatory (version 4.9 or higher), and the gmsh program is no longer used:
-gmshand-tmpare obsolete.The 3D meshing algorithm
netgis no longer available.The element sizes change as a result of the mesh size map.
The node order of the
$Fasetselements is now the Gmsh order (it was reversed), and themshformat version is now 2.4 (version 2.3 can still be read).Nodes and elements are no longer renumbered by partition after partitioning (left to FEPX).
-partnow takes only a number of partitions, and-partmethodis removed (libscotch is always used).The transformations of the tesr input are removed (use
neper -T -transform).
Simulation Module (-S)#
Simulation directories no longer use a
.simfile (the definitions of a legacy file are migrated).The old simulation directory format (report file) can no longer be read.
The conversion of FEPX raw result directories (
post.report) is removed.-stepis removed.-orispacenow only acceptsrodrigues(fr<N>).ODF-based results are not available for the triclinic crystal symmetry.
Visualization Module (-V)#
-colormode(dark color mode),-povrayantialiasing(antialiasing is always used) and-outdir(images are written relative to the current directory) are removed.
Orilib#
Many functions of the Orilib library have been removed, merged or changed, and orientations written by Neper as Euler angles are now in the standard ranges (no longer negative).