# nTopology 3.45 - What's New?

• ### Bug Fixes

#### Mesh Face from Points

• We have added a new block called Mesh Face from Points. This block replaces Create Single Face Mesh block, which is now deprecated.
• You can use this block and Merge Meshes block as the input to the Graph from Mesh Faces (Beta) block to construct a custom face-based Unit Cell.
• Block Name: Mesh Face from Points
• Location: Modeling -> Utilities
• Description: Creates a Mesh comprised of a single face from 3 or 4 vertex points. Input the face's vertices in counter-clockwise order. If out of order, the face will be self-intersecting.
• Vertex 1: The first vertex of the mesh face.
• Vertex 2: The second vertex of the mesh face, counter-clockwise from the first. If out of order, the face will self-intersect.
• Vertex 3: The third vertex of the mesh face, counter-clockwise from the second. If out of order, the face will self-intersect.
• Vertex 4: Optional fourth face vertex, counter-clockwise from the third. If out of order, the face will self-intersect.
• Output: Mesh

#### Orthotropic Stiffness Tensor

• The Orthotropic Stiffness Tensor block lets users create an orthotropic linear elastic property directly from the non-zero stiffness tensor components. Besides numerical values, users can define spatially varying material properties using scalar fields for inputs. You can use this block to create orthotropic material properties for simulation and optimization workflows.
• Block Name: Orthotropic Stiffness Tensor
• Location: Simulation > Material Attributes
• Description: Defines an Orthotropic Linear Elastic Property by specifying a positive definite, second order, symmetric stiffness tensor in Voigt notation for the constitutive relationship, i=Cij*j (i,j=1,6), where =xx,yy,zz,yz,zx,xy and =xx,yy,zz, yz,zx,xy . Providing scalar fields as inputs will result in spatially varying material properties.
• C11: Material stiffness component 1,1.
• C12: Material stiffness component 1,2.
• C13: Material stiffness component 1,3.
• C22: Material stiffness component 2,2.
• C23: Material stiffness component 2,3.
• C33: Material stiffness component 3,3.
• C44: Material stiffness component 4,4.
• C55: Material stiffness component 5,5.
• C66: Material stiffness component 6,6.
• Output: Orthotropic Linear Elastic Property

#### Mass Response (Beta)

• The Mass Response block can be used as an optimization objective or a constraint in topology optimization or field optimization. The response is similar to a volume fraction response and requires an overall mass input instead of the volume ratio between the optimized geometry and the design space.
• Block Name: Mass Response
• Location: Beta > Topology Optimization
• Description: Create a Design Response that measures the total mass in some region. The response is computed by integrating the density field over the region.
• Region: Region that the Design Response will be integrated over. If a region is not provided, the response will be integrated over the entire design space.
• Output: Design Response

#### Center of Mass Response (Beta)

• The Center of Mass Response block allows a user to optimize for the location of a center of mass in topology optimization or set a constraint to ensure the center of mass of an object is within a threshold to a point, axis, or plane.
• Block Name: Center of Mass Response
• Location: Beta > Topology Optimization
• Description: Create a Design Response that measures a component of the Center of Mass vector in some region. For each vector component, the response is computed by integrating one of the following functions: vx=*xM,vy=*yM,vz=*zM over the region, where x, y, z are the coordinates of the material point in the given reference frame, is the density field and M is the total mass in the region.
• Direction: Component of the Center of Mass vector that will be used as a design response.
• Region: Region that the Design Response will be integrated over. If a region is not provided, the response will be integrated over the entire design space.
• Frame: Reference frame that the center of the mass vector is defined in. If a frame is not provided, the global frame will be used.
• Output: Design Response

#### Moment of Inertia Response (Beta)

• The Moment of Inertia Response allows a user to maximize or minimize a component of the moments of inertia as a design objective. The design response can also be used as a constraint in an optimization problem with other objectives like compliance or volume fraction.
• Block Name: Moment of Inertia Response
• Location: Beta > Topology Optimization
• Description: Create a Design Response that measures a component of the mass moment of inertia tensor in some region. For each tensor component, the response is computed by integrating one of the following functions: Ixx=(y2+z2), Iyy=(x2+z2), Izz=*(x2+y2), Ixy=Iyx=-xy, Ixz=Izx=-xz, Iyz=Izy=-yz over the region, where x, y, z are the coordinates of the material point in the given reference frame, and rho is the density field.
• Moment of inertia: Component of the Inertia tensor.
• Region: Region that the Design Response will be integrated over. If a region is not provided, the response will be integrated over the entire design space.
• Frame: Reference frame that the inertia tensor is defined in. If a frame is not specified, the global coordinate system will be used.
• Output: Design Response

#### Field Optimization (Beta)

• We have added a set of 7 new blocks to enable an exciting new functionality called Field Optimization. Field Optimization extends nTopology’s optimization toolset and allows users to optimize different design parameters for numerous constraints/objectives. The initial functionality released in 3.45 will enable optimizing the following structures: Voronoi lattices, Graph-based and TPMS lattices, variable shell, and variable shell+infill. To learn more about the new functionality, please visit our How to run a field optimization and field optimization FAQ. You can also click on the Learn More buttons on the individual blocks to understand each algorithmic control.
• Block Name: Field Optimization
• Location: Beta > Field Optimization
• Description: Perform a field optimization on a Parametric FE Model.
• Model - The parametric finite element model that defines the design space.
• Objective - The objective function for the optimization process.
• Constraints - The constraints to satisfy during the optimization process.
• Max iterations - The maximum number of iterations allowed during the optimization process.
• Min objective change - The minimum relative change in the objective function between consecutive iterations to consider the optimization process converged. Constraints must be satisfied in addition to this criterion.
• Min variable change - The minimum relative change in the variable fields between consecutive iterations to consider the optimization process converged. The process will terminate when the largest relative variable change is below this threshold, and all the constraints are satisfied. Save increment - Controls the amount of data that is accessible (within the same session) after the optimization is complete. 0 will save results for only the first and last iterations. 1 will save results at every iteration. For any value N greater than 1, results will be saved for every N iteration. Note: Only the last iteration is available when you open a *.ntop file with a built Field Optimization block, regardless of this input value.
• Move limit - A scalar value between 0 and 1, which sets the maximum update to the design variables per iteration as a percentage of the design variable range: Max variable update = Move limit * (Max variable update - Min variable update).
• Output: Field Optimization Result

#### Parametric Voronoi Component (Beta)

• Block Name: Parametric Voronoi Component
• Location: Beta > Field Optimization
• Description: Create a Parametric FE Component for a Voronoi Lattice with the following design parameters: cell size and beam thickness. The material model is homogenization-based so the model accuracy will improve as the cell size is reduced.
• Mesh - The finite element mesh that defines the design space.
• Material - Material that the Voronoi lattice is composed of.
• Min cell size - The minimum allowable cell size for the Voronoi lattice.
• Max cell size - The maximum allowable cell size for the Voronoi lattice.
• Initial cell size - The initial cell size for the Voronoi lattice. This defines the starting point of the optimization. Values exceeding the min/max bounds will be clamped.
• Min thickness - The minimum allowable beam thickness for the Voronoi lattice.
• Max thickness - The maximum allowable beam thickness for the Voronoi lattice.
• Initial thickness - The initial beam thickness for the Voronoi lattice. This defines the starting point of the optimization. Values exceeding the min/max bounds will be clamped.
• Filter size - A length measure that is used to control the smoothness of the design parameter field. A lower bound of 0 will be enforced. If not specified, a default will be estimated based on the model size.
• Output: Parametric FE Component

#### Parametric Lattice Component (Beta)

• Block Name: Parametric Lattice Component
• Location: Beta > Field Optimization
• Description: Create a Parametric FE Component for a periodic lattice with the following design parameters: lattice thickness. The material model is homogenization-based so the model accuracy will improve as the cell size is reduced.
• Mesh - The finite element mesh that defines the design space.
• Material - Material that the periodic lattice is composed of.
• Unit cell - The unit cell used to create the periodic lattice.
• Boundary behavior - Determines how the periodic lattice will fill the design space. The Conformal option will warp the outer cells to fill the design space. The Trimmed option will trim the lattice to the design space.
• Cell size - The cell size for the periodic lattice.
• Min thickness - The minimum allowable lattice thickness.
• Max thickness - The maximum allowable lattice thickness.
• Initial thickness - The initial lattice thickness. This defines the starting point of the optimization. Values exceeding the min/max bounds will be clamped.
• Density threshold - The threshold signifies a lower bound limit on lattice porosity (=relative density), under which the lattice will be eliminated from the design space. Maintaining a 0 threshold will fill the entire domain with a lattice in the optimization process. A threshold between zero and one will remove the design boundary in parallel to the lattice optimization, removing less important material.
• Filter size - A length measure that is used to control the smoothness of the design parameter field. A lower bound of 0 will be enforced. If not specified, a default will be estimated based on the model size.
• Output: Parametric FE Component

#### Parametric Shell Component (Beta)

• Block Name: Parametric Shell Component
• Location: Beta > Field Optimization
• Description: Creates a Parametric FE Component, which has been parameterized with the following design parameter for variable shell thickness. The block uses a FE Solid Mesh as an input Mesh. After field optimization, the optimal value for the shell thickness will apply to the design space.
• Mesh - The finite element mesh that defines the design space.
• Material - Material that the shell is composed of.
• Min shell thickness - The minimum allowable thickness for the shell.
• Max shell thickness - The maximum allowable thickness for the shell.
• Initial shell thickness - The initial shell thickness. This defines the starting point of the optimization. Values exceeding the min/max bounds will be clamped.
• Filter size - A length measure that is used to control the smoothness of the design parameter field. A lower bound of 0 will be enforced. If not specified, a default will be estimated based on the model size.
• Output: Parametric FE Component

#### Parametric Shell-Infill Component (Beta)

• Block Name: Parametric Shell-Infill Component
• Location: Beta > Field Optimization
• Description: Create a Parametric FE Component for a variable shell structure with a periodic lattice infill with the following design parameters: shell thickness (inward direction), and lattice thickness. The infill material model is homogenization-based, so the model accuracy will improve as the cell size is reduced.
• Mesh - The finite element model that defines the design space.
• Material - Material that the shell and lattice infill is composed of.
• Unit cell - The unit cell used to create the lattice infill.
• Cell size - The cell size of the lattice infill.
• Min infill thickness - The minimum allowable lattice infill thickness.
• Max infill thickness - The maximum allowable lattice infill thickness.
• Initial infill thickness - The initial lattice infill thickness. This defines the starting point of the optimization. Values exceeding the min/max bounds will be clamped.
• Min shell thickness - The minimum allowable thickness for the shell.
• Max shell thickness - The maximum allowable thickness for the shell.
• Initial shell thickness - The initial shell thickness. This defines the starting point of the optimization. Values exceeding the min/max bounds will be clamped.
• Filter size - A length measure that is used to control the smoothness of the design parameter fields. A lower bound of 0 will be enforced. If not specified, a default will be estimated based on the model size.
• Output: Parametric FE Component

#### Parametric FE Model (Beta)

• Block Name: Parametric FE model
• Location: Beta > Field Optimization
• Description: Combine a list of Parametric FE Components and corresponding FE Connectors into a Parametric FE Model. The block performs checks to determine whether all objects are restrained properly.
• Components - The Parametric FE Components in the model.
• Connectors - The connectors and interactions in the model.
• Output: Parametric FE Model

#### Parametric FE Component (Beta)

• Block Name: Parametric FE Component
• Location: Beta > Field Optimization
• Description: Create a Parametric FE Component by assigning material, porosity, and geometry function objects to an FE Mesh.
• Mesh - The finite element mesh that defines the design space.
• Material function - A function object that describes the material model as a function of the design parameters.
• Porosity function - A function object that describes the material porosity (also known as relative density) as a function of the design parameters.
• Geometry function - A function object that describes the implicit geometry as a function of the design parameters. The function will only be used for visualization and will not impact the optimization process.
• Parameter names - A list of names for the design parameters. These names will be used to identify the design parameters in the HUD. The order of parameters in the list must correspond to the order used in the material, porosity, and geometry functions.
• Lower bounds - A list of minimum field values for the design parameters. The order of parameters in the list must correspond to the order used in the material, porosity, and geometry functions.
• Upper bounds - A list of maximum field values for the design parameters. The order of parameters in the list must correspond to the order used in the material, porosity, and geometry functions.
• Initial values - A list of initial field values for the design parameters. Values exceeding the design domain spanned by 'Lower bounds' and 'Upper bounds' will be clamped. The order of parameters in the list must correspond to the order used in the material, porosity, and geometry functions. Parameter constraints - An optional collection of geometric constraints applied to individual design parameters. The constraints are stored in a Dictionary with keys representing design parameter indices and values representing constraints.
• Filter size - A constant or spatially-varying length measure that ensures mesh-independency. A lower bound of 0 will be enforced. If not specified, a default will be estimated based on the model size.
• Frame - The reference frame of the material model.
• Output: Parametric FE Component

#### Usage Improvements

• When manually switching from an overloaded block that has an input containing an auto-populated default value, nTopology will no longer prevent you from switching overloads and will discard the default value (shown below with Subdivisions input). Note: Deleting the default value and typing in any user-defined value will prevent the overload from switching until the value is cleared.

• We released a new version of the Boolean Union block and deprecated version 1.0.0, which had a bug that produced the incorrect gradient on the surface of the output body when we set the Blend type to Rounded with a Blend radius of 0. Version 1.1.0 fixes this issue, and as a result, other operations downstream that were affected by this will be fixed. For example, if you saw the warning “Input Body contains 0-length gradients” in the Mesh from Implicit Body block, that warning should go away, and your mesh will generate faster.
• We released a new version, 2.4.0, of the Mesh from Implicit Body block and have a deprecated version, 2.3.0, due to an improvement that prevents nTop from unexpectedly exiting, reduces self-intersections frequency in some instances, and improves block runtime.
• We have updated the CAD Body from Implicit Body (Beta) block, adding an optional third input, Preserved CAD. You can input one or more CAD Bodies, and the block will iterate through the CAD Body’s faces and attempt to stitch those faces into the final result. You can also input CAD faces directly, which will auto-cast to a CAD Body. If the sewing does not succeed, the block will ignore the face input.

The image below shows planar ribbing applied to a panel imported as CAD and converted to an implicit body.

The image below shows the Implicit Body converted to a CAD Body in nTop 3.44 using the CAD Body from Implicit Body block.

The image below shows the Implicit Body converted to a CAD Body using the CAD Body from Implicit Body block in nTop 3.45. In the optional Preserved CAD input, we provided the base of the panel, imported initially into nTop. As a result, five planar faces are present in the CAD Body.

#### Bug Fixes

• We fixed an issue in the Refine Mesh block, causing nTop unexpectedly exit under certain random and rare conditions.
• We fixed an issue where canceling during the “Regenerating Objects” stage of opening a file would cause nTopology to exit unexpectedly.
• We fixed an issue where we did not display the ribbon for new users.
• We fixed an issue: when duplicating a block, the new block would reference any intermediate values from the old one.
• We fixed an issue with the Outline Search not showing blocks that are variables.
• We fixed an issue with property chips accessed from Custom Blocks, inheriting the Custom Block visual indicator and context menu option.
• We fixed an issue with property chips accessed from overloaded blocks inheriting the overload dropdown UI button.
• We fixed an issue where context search doesn’t yield results for non-variable embedded blocks.
• We fixed an issue where context search doesn’t yield results for some deprecated blocks.
• We fixed an issue where selecting and removing unused blocks from the Imports panel would not mark your file as unsaved.
• We fixed an issue in the Mirror FE Mesh block that caused the Topology Optimization block to crash when users use the block on quadratic volume meshes. This fix will prevent this nTop from unexpectedly exiting in any analysis block using quadratic volume meshes generated by the Mirror FE Mesh block.