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).

_images/multiscale-periodic.png

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

See Meshing a Tessellation (-T, -M).

_images/periodic-reg.png

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

See Meshing a Tessellation (-T, -M).

_images/mesh-size-map.png

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

See Defining the Domain and Cutting (-T).

_images/hourglass-mesh.png

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

See Meshing a Tessellation (-T, -M).

_images/custom-nset.png

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 labeled cyl or hourglass.

  • 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 keys cell_<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 -stat options.

  • curpdf0 value 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, max and closest (-nset).

  • discontinuous and cohesive interfaces 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 -order and -sortnode.

  • Expressions in all -stat options.

  • Reproducible parallel hexahedral meshing of regularized tessellations (-elt hex).

Simulation Module (-S)#

  • <res>_eq element, 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 .sim file, and definitions are written to .def files. Input files are identified by their extensions and are not necessarily named simulation.*.

  • type= argument of file(), and steps of a simulation directory without results set from the .step* files of file().

  • 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, hl2 and hl3.

  • Node sets in the expressions of -shownode (nset==<label>).

  • -crysym for -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 tess and tesr file 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 the w keys of -morphooptilogvar and -statcell / -statseed, now apply to \(w\), while -morphooptideltamax applies to \(\sqrt{w}\), the optimization variable.

  • -orioptiini now uses : instead of =, as -morphooptiini does (e.g., weight:file(<file>) instead of weight=<file>). The former syntax is now an error.

  • -regularization, -fmax, -[r]sel, -mloop and -maxedgedelqty are renamed -reg, -regfmax, -reg[r]sel, -regloop and -regedgedelmax (the former names are deprecated).

  • [r]sel is removed from -morpho.

  • The transformations of -loadtesr are removed (use -transform).

  • Only the built-in subplex optimization algorithm remains (praxis, neldermead, cobyla, bobyqa and newuoa are removed).

Meshing Module (-M)#

  • The Gmsh library is now mandatory (version 4.9 or higher), and the gmsh program is no longer used: -gmsh and -tmp are obsolete.

  • The 3D meshing algorithm netg is no longer available.

  • The element sizes change as a result of the mesh size map.

  • The node order of the $Fasets elements is now the Gmsh order (it was reversed), and the msh format 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).

  • -part now takes only a number of partitions, and -partmethod is 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 .sim file (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.

  • -step is removed.

  • -orispace now only accepts rodrigues(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).