# Version 3.8

nTopology 3.8 is here! This release features a new block called Pore Diameters from Lattice Body. You can use this block to calculate pore diameters of any graph lattice. This block enables you to determine if the pores are large enough for powder removal in additive manufacturing and it can be useful for other applications, such as filtration. We also introduced several usage improvements. For example, the CFD Boundary on FE Mesh beta block now supports CFD boundary zones on either an FE Surface Mesh or an FE Volume Mesh. As with every release, nTopology’s dedicated support team is ready to answer your questions. Please visit support.ntopology.com to gain access to helpful tutorials and support articles.

#### Pore Diameters from Lattice Body (Beta)

- In 3.8, we released the Pore Diameters from Lattice Body (Beta) block which calculates pore diameters of any graph lattice. This is useful for verifying pores are large enough for powder removal, as well as other applications such as filtration analysis. Pore diameter is defined as the diameter of the largest sphere that fits inside a pore without overlapping the structure. The output is a Point Map that contains each sphere’s center point and diameter. Depending on the size and complexity of your lattice, the calculation may be CPU intensive.
- You can visualize spheres from the result by dragging the Point Map’s points properties into the Sphere block Center point input. For the radius input, first add the Divide block. Drag the Point Map’s values property into Operand A, and input 2 for Operand B to calculate the spheres’ radii. See the image below for an example.
- Name: Pore Diameters from Lattice Body (Beta)
- Location: Beta > Lattices-Utilities
- Description: Calculates the pore diameters of any graph lattice. Pore diameter is defined as the diameter of the largest sphere that fits inside a pore without overlapping the structure. The output is a Point Map that contains each sphere’s center point and diameter. Depending on the size and complexity of your lattice, the calculation may be CPU intensive.
- Input 01: Lattice body
- Type: Lattice Body
- Description: The Lattice Body from which to calculate pore diameters.

- Input 02: Smallest pore size
- Type: Scalar
- Description: The smallest anticipated pore size. Pores whose diameters are smaller than this value will be ignored and not included in the output. Must be greater than 0. As this value decreases the block will take longer to compute.

- Input 03: Domain
- Type: Implicit Body
- Optional
- Description: Optional boundary volume within which to calculate pores.

- Input 04: Allow overlap
- Type: Bool
- Optional
- Description: Option to allow overlapping pores. If true, spheres created from the resulting Point Map may intersect.

- Output: Scalar Point Map

#### Usage Improvements

- Vertex valencies are now available as a property of the Lattice type.
- Unit vectors are now available as a property of Vectors and Vector Fields.
- The CFD Boundary on FE Mesh beta block now supports CFD boundary zones on either an FE Surface Mesh or an FE Volume Mesh. Setup your fluid regions and boundary zones in nTopology and then export a surface mesh to ANSYS® Fluent® to perform a fluid flow or conjugate heat transfer analysis. By defining the fluid regions and boundary zones in nTopology, geometry updates are easily handled without redoing the setup in Fluent.
- nTopology now supports cyclic symmetry for both static and modal analysis, drastically reducing run time for models exhibiting cyclic symmetry. The symmetry condition is defined with the Cyclic Symmetry block. Below is an outline of the new block:

- Name: Cyclic Symmetry (Beta)
- Location: Beta > Simulation
- Description: Creates a cyclic symmetry constraint between the upper and lower boundaries of the sector.
- Input 01: Upper boundary
- Type: FE Boundary
- Description: The upper (dependent) FE boundary.

- Input 02: Lower boundary
- Type: FE Boundary
- Description: The lower (independent) FE boundary.

- Input 03: Rotational axis
- Type: Axis
- Description: Rotational axis.

- Input 04: Sector angle
- Type: Scalar
- Description: The angle between the upper and lower boundaries.

- Input 05: Tolerance
- Type: Scalar
- Description: Tolerance between the location of the slave and master nodes when they are mirrored on each other.

- Input 06: Harmonic count
- Type: Scalar
- Description: Number of harmonics to evaluate for the structure. The maximum number of harmonics to be evaluated is half the total number of sectors in the full model.

- Output: FE Connector
- When leveraging cyclic symmetry to reduce the overall model size, you can still visualize the results on the full model.

- Although it is not necessary, you can create a conformal mesh between the upper and lower boundaries of the sector using the Remesh Surface with Cyclic Symmetry block. In some cases, this will yield more accurate results.

- Name: Remesh Surface wtih Cyclic Symmetry (Beta)
- Description: Remesh a given surface mesh to create conformal nodes and elements on master and slave planes. The master plane is defined by a normal, and the slave plane is defined by rotating the normal about an axis of rotation in the master plane.
- Input 01: Surface
- Type: Mesh
- Description: Surface mesh to remesh.

- Input 02: Edge length
- Type: Scalar Field
- Description: The target edge length of the generated elements.

- Input 03: Shape
- Type: Surface Mesh Shape Enum
- Description: The element shape of the output mesh.

- Input 04: Span angle
- Type: Scalar
- Description: The maximum spanning angle for elements generated on curved surfaces. Decreasing the span angle will refine the mesh in areas of local curvature.

- Input 05: Growth rate
- Type: Scalar
- Description: The rate at which the size of the adjacent elements can grow. This value must be greater than 1.001.

- Input 06: Feature angle
- Type: Scalar
- Description: The maximum angle used to automatically compute preserved edges in the input geometry.

- Input 07: Min edge length
- Type: Scalar
- Description: The minimum allowed edge length of the generated elements in the output mesh.

- Input 08: Chord height
- Type: Scalar
- Description: The maximum distance from the midpoint of an element edge to the input surface. A value of zero turns off chord height sizing.

- Input 09: Min feature size
- Type: Scalar
- Description: The minimum small feature size to control the deletion of small features. A recommended value is about five percent of the edge length. A value of zero turns off feature deletion.

- Input 010: Rotational axis
- Type: Axis
- Description: The axis of rotation for the cyclic symmetric mesh. The master surface normal will be rotated about this axis to determine the plane to construct a conformal mesh. The rotational axis must lie in the plane defined by the master normal.

- Input 011: Master surface normal
- Type: Vector
- Description: The normal defining the master planar surface.

- Input 012: Sector angle
- Type: Scalar
- Description: The rotation of the master normal about the rotational axis to define the slave (and bounding) plane of the cyclic symmetric mesh. 360 (or 2 Pi) must be divided evenly by the sector angle.

- Output: Mesh
- We’ve modified the user dashboard so that the Example Files section is more apparent to encourage use and to make it more obvious when new example files have been added.

#### Bug Fixes

- We fixed an issue where getting the quad count too low in the Quadrangulate Mesh block would cause nTopology to unexpectedly exit.
- We resolved an issue where property or variable chips from a previously opened file were appearing in the notebook of a new instance of nTopology. If you attempted to click on the variable chip, nTopology would unexpectedly exit.
- The rotational degrees of freedom for both the Displacement Restraint and the Point Restraint blocks now only accept quantities with units of degree or radians.
- The Export option on the context menu for FE Model (right mouse click on FE Model block) has been disabled. As an alternative, use the Export FE Model block to export to an external CAE format.
- We resolved an issue where the Organization tab in Org. Admin dashboard was displaying users’ names as “undefined undefined” after a page refresh.
- We resolved an issue where Chrome was autofilling the Team and Password fields in the Edit User Details window of the Org. Admin dashboard.