Intact.Simulation for nTop Manual¶
Intact.Simulation offers a revolutionary meshing-free finite element method now fully integrated with nTop, enabling users to explore their design space rapidly without the usual meshing bottlenecks. This advanced technology is particularly adept at handling large geometric complexities, such as intricate lattice structures, which are often challenging to mesh using traditional finite element analysis (FEA) methods.
Key features and capabilities
Geometry Support
Implicit
Brep
Physics Support
Stress
Thermal
Modal (Coming Soon)
1. Getting Started¶
1.1 Installation and Accessing Intact inside nTop¶
Download and install Intact Simulation for nTop
You will receive download info and trial license in the email after applying for beta.
Default Installation directory (
Intact Directory
):C:\Users\$username$\AppData\Local\Programs\Intact.Simulation for nTop
Documentation and Example files are in
C:\Users\$username$\AppData\Local\Programs\Intact.Simulation for nTop\Getting Started
Move custom Intact blocks to nTop’s My Blocks folder directory
Go to:
nTop menu > File > My blocks folder
Copy Intact custom blocks from
C:\Users\$username$\AppData\Local\Programs\Intact.Simulation for nTop\Custom Blocks
to nTop’sMy Blocks folder
.
Restart nTop. Now you can access Intact Blocks within nTop by Searching “Intact“
1.2 Example Simulations¶
📌 See the file Example_GyroidShear.ntop
in the Getting Started
folder. Update the Intact Dir
and Project Dir
variables.
Change the parameter Gyroid Cell Size
to automatically update the simulation results.
2. How To Guide¶
The high-level workflow of nTop-Intact Integration. Intact requires the inputs needed for any typical structural FEA such as geometry, material, boundary conditions, and simulation settings.
Figure: Black boxes are nTop blocks. Blue boxes are Intact custom blocks
2.1 Intact Stress Custom Block¶
First import the Intact Stress
block for directly analyzing an implicit geometry or Intact Stress (Surface Mesh)
for analyzing a Brep (surface mesh) geometry.
Before setting up the simulation, set up the folders and simulation name.
Simulation Name
: A name for your simulation.Project Directory
: A directory to save the simulationIntact Directory
: Directory where Intact Program lives. The default is in the following folder in your AppData (replace \(username\) with your user name).C:\Users\$username$\AppData\Local\Programs\Intact.Simulation for nTop
2.2 Intact Thermal Custom Block¶
First import the Intact Thermal
block for directly analyzing an implicit geometry or Intact Thermal (Surface Mesh)
for analyzing a Brep (surface mesh) geometry.
Before setting up the simulation, set up the folders and simulation name.
Simulation Name
: A name for your simulation.Project Directory
: A directory to save the simulationIntact Directory
: Directory where Intact Program lives. The default is in the following folder in your AppData (replace \(username\) with your user name).C:\Users\$username$\AppData\Local\Programs\Intact.Simulation for nTop
2.3 Component Setup¶
Geometry¶
The simulation component consists of geometry and material.
When using the
Intact Stress
block, theGeometry
must be a nTop implicit model. Intact.Simulation can represent the implicit model as a VDB or Voxel Model: The VDB model efficiently stores the implicit field at the nodes of the voxel and interpolates the implicit field within the voxel. Voxel size is specified using theGeometry Tolerance
****parameter, which can be decided based on the minimum feature size as well as the level of accuracy desired.When using the
Intact Stress (Surface Mesh)
block, the Geometry must be aSurface Mesh
.
Recommendation: It is generally recommended to use VDB or Voxel Model, unless the geometry is predominantly CAD-like with edges and corners, in which case surface tessellation could be faster.
Material¶
Material is defined using nTop’s Isotropic Material
block with Isotropic Linear Elastic Properties
.
2.4 Boundary Conditions (Stress)¶
Restraints¶
Intact Fixed Restraint
A “Fixed Boundary” restraint fixes the selected geometry in all directions. The fixed boundary only has one input:
Unique Name
Project Directory
Boundary Mesh
surface to be fixed (must be a surface mesh)
Intact Displacement Restraint
A “Fixed Vector” restraint allows for each direction to be optionally set to a specified displacement value, 0 being fixed and ‘None’ being un-restrained. Note that a structural problem must have all three directions restrained somewhere to be valid. Also, note that this boundary condition doesn’t take custom units and it’s always in the units of the scenario metadata.
A fixed vector requires the following inputs:
Unique Name
Project Directory
the
Mesh Boundary
surface to be fixedthe
*_Displacement
magnitude with distance units to set the displacement for the *-axis direction (ignored if the toggle is off)
In the example below, the Z-axis is considered “free” and thus the z-displacement value is ignored/replaced by ‘null’ regardless of its input.
Structural Loads¶
Pressure
A “Pressure” load is a surface load specified in terms of force per unit area. Positive pressures ‘push’ into the surface, and negative pressures ‘pull’.
A Pressure Load requires three inputs:
Unique Name
Project Directory
the
boundary
surfaces where the load is appliedthe
UnitSystem
that applies to the magnitude - needs to be specified before the magnitude is set (default MKS)the
Magnitude
of the pressure with units (e.g. ‘Pa’ for Pascal).
Vector Force
“Vector Force” load is a surface load applied to a face in a specified direction. An example of this load is pressing on the top of a book to push it across a table.
A vector load requires four inputs:
Unique Name
Project Directory
the
Boundary Mesh
surfaces where the load is appliedthe
Force
vector with force units (e.g. ‘N’ for Newton)
Moment Load
“Moment” load is a surface load that applies a twisting force around an axis. The direction of the moment is determined using the right-hand rule: using your right hand, point your thumb in the direction of the axis. A positive moment value applies a moment acting in the direction the fingers of your right hand would wrap around the axis. The moment load is applied among the load faces with a distribution that varies linearly from zero at the axis.
A Moment load requires five inputs:
Unique Name
Project Directory
the
Boundary Mesh
surfaces where the load is appliedOrigin
is the starting point of the axis of rotationthe
Vector
which species the axis of rotation and the magnitude with units (e.g. ‘N*m’ for Newton-Meter).
Bearing Force
A “Bearing Force” is a surface load applied to a (typically) cylindrical face to approximate the effects of a shaft pressing against the side of a hole. The applied force gets converted to a varying pressure distribution on the portion of the face experiencing compressive pressure. The pressure distribution is computed automatically to achieve the specified overall bearing force.
A Bearing Force requires three inputs:
Unique Name
Project Directory
the
Boundary Mesh
surfaces where the load is appliedthe
Direction Vector
of the bearing forcethe
Magnitude
of the load with force units (e.g. ‘N’ for Newton)
Body Loads
Acceleration Load
An “Acceleration” load is a linear acceleration body load which acts on the entire component/body.
An Acceleration Load requires a single input:
the
Vector
of the acceleration which describes both the direction and magnitude of acceleration with units (e.g. ‘m/s^2’)
2.5 Boundary Conditions (Thermal)¶
Restraints¶
Temperature Restraint (Fixed Temperature)
A “Temperature Restraint” restraint fixes the temperature of a selected geometry to a set value. The fixed boundary custom block has four inputs:
Unique Name
Project Directory
Boundary Mesh
surface to be fixed (must be a surface mesh)Temperature
Thermal Loads¶
Surface Flux
A “Surface Flux” load is a surface load specified in terms of power per unit area.
A Surface Flux Load block requires four inputs:
Unique Name
Project Directory
the
Boundary Mesh
surfaces where the load is appliedthe
Magnitude
of the flux with units (e.g. ‘W/m^2’)
Convection
A “Convection” load specifies the transfer of heat from a surrounding medium.
A convection load requires five inputs:
Unique Name
Project Directory
the
Boundary Mesh
surfaces where the load is appliedthe
Heat Transfer Coefficient
with units (e.g. ‘W/m^2)the
Ambient Temperature
of the medium with units of temperature (e.g. ‘K’)
Thermal Body Loads
Volumetric Heat Generation
A “volumetric heat generation” load is a flux body load which applies uniform heat generation all over the component (volume).
Volumetric heat generation requires a single input:
the
Magnitude
of the flux with units (e.g. ‘W/m^3’)
2.6 Simulation Settings¶
Intact.Simulation allows customizations to support rapid coarse as well as accurate fine simulation as desired. The following Simulation Settings are available:
The
Basis order
is the order of finite elements used. It can beLinear
(default) orQuadratic
.Note that with quadratic elements, far fewer elements are needed to compute an accurate solution. However, quadratic elements are much more expensive in terms of time and memory resources than linear elements.
Recommendation:
Quadratic elements are suited for bending dominant problems like thin shells and beam-type structures.
Specify Precision Type and Precision Value for the desired accuracy/speed of the simulation.
Resolution
is the target number of finite elements. An iterative process determines aCell size
that achieves approximately the specified number of elements. The simulation log in the Project directory contains the exact cell size and number of finite elements used in the simulation.You can toggle on
Use Cell Size?
to directly specify theCell Size
instead of theResolution
, for example, when you want to resolve the correct behavior of certain geometric features. Note that whenUse Cell Size?
isOn
,Resolution
is ignored.The immerse grid for the simulation is stored in
_solution.vtu
in the project folder and can be visualized if desired (using Paraview).Recommendation:
We recommend using
Resolution
if you are unsure of the cell size. A smallCell Size
can quickly result in a large number of finite elements and long solve times.
Solver Type
is the linear solver used in the simulation with the following options:Direct
“directly” solves the linear system and is very robust but typically consumes more memory, which can be a problem for high resolution or small cell size.Iterative
solves the linear system “iteratively” and uses less memory thanDirect
. They are suited for high resolutions.Default
: Sets the solver automatically based onBasis order
andResolution
.For static structural
Linear
elements, default isIterative
Solver for resolution greater than 200K andDirect
Solver for less than 200K. Note that if thePrecision Type
iscell size
, the default is alwaysIterative
for linear elements.Quadratic
elements, it defaults toDirect
solver for all resolutions or cell sizes.Thermal solvers default to
Direct
, if desiredIterative
can be manually selected for some cases which utilize large amounts of memory.
2.7 Result Visualization¶
Default Result Visualization¶
By default, the visualization produced by the Intact Stress block includes both Displacement and von Mises stress fields. These can be accessed like other simulation results in nTop. Currently, visualization is supported only on surface tessellation, even for implicit geometry (visualization directly on implicit is in work in progress). The default surface meshes for different geometric representations are as follows:
Implicit/Voxel Model: Intact produces visualization on a surface mesh that represents the zero-level set as approximated by the voxel grid. You can also resample the solution on a higher-quality surface mesh for improved visualization.
Brep (Surface Mesh): Visualization is done on the input surface mesh geometry.
Resampling Immerse Grid Solution¶
The solution is computed on an immersed grid and can be interpolated within the grid cells. To resample an existing solution, use the Intact Resample
block**.** Resampling can generate a better visualization or create slice/cross-section views.
Intact Stress
is theIntact Stress
simulation being resampledPrevious Sim Name
: The name of theIntact Stress
simulation being resampledProject Directory
Intact Directory
Resampling Mesh
: The new mesh for resampling the FEA solution for visualizationResampling ID
: An optional input which allows resampling the sameIntact Stress
simulation on multipleResample Meshes
Material
: The material used for computing stresses (Should be the same as theIntact Stress
simulation being resampled)
📌 For a resampling example see the file Example_StaticConnectingRod.ntop
in the Getting Started\Static Structural
folder. Update the Intact Directory
/Project Directory
variables and manually run the unloaded lattice block to generate the geometry.
3. Technology Overview¶
3.1 Immersed Method of Moments Overview¶
Immersed Method of Moments (IMM) is a technology that uses the Finite Element Analysis (FEA) for performing simulation tasks, without the need to build a conformal mesh. IMM adopts an immersed-grid methodology where the geometry is “immersed” in a non-conformal background grid; and our patent-pending moment-vector technology is used to compute geometry and material-dependent quantities (e.g., element quadrature) at runtime for the FEA.
Figure: Immersed method of moments: Geometry is immersed in a grid & solved using the method of moments.
The above picture captures the essence of IMM. The geometry (left image) is immersed in a background analysis grid (middle image). The elements in the analysis grid are conventional FEA elements (e.g., 8-noded hexahedral linear elements or 27-noded hexahedral quadratic elements), except that the quadrature used for the elements are computed using the method of moments. For instance, an element that is completely inside the the geometry will have quadrature that is different from an element that is only partially inside the geometry. After computing the solution on the analysis grid, the quantities of interest are projected back on to the native geometry (right figure).
3.2 Benchmarks¶
Complex Benchmark- Lightweight Piston Connecting Rod¶
This comparison is for a complex geometry with a lattice. The goal is to compare the displacement and stress results for a similar number of elements. The stresses are compared away from stress singularity as stresses in areas of stress concentration do not converge.
📌 See the file Example_StaticConnectingRod.ntop
in the Getting Started\Static Structural
folder. Update the Intact Directory
/Project Directory
variables and manually run the unloaded lattice block to generate the geometry.
Number of Elements |
Displacement (mm) |
Total Time (secs) |
|
---|---|---|---|
nTop mesh-based FEA |
330,000 |
1.18 |
215 (includes meshing) |
Intact IMM FEA |
300,000 |
1.20 |
229 (includes VDB export) |
von Mises Stress comparison
Standard Benchmark- Beam¶
📌 See the file Benchmark_PlateWHole.ntop
in the Getting Started\Static Structural
folder. Update the Intact Directory
/Project Directory
variables and manually run any necessary unloaded blocks.
Displacement from Intact IMM vs nTop mesh-based FEA
Analytical |
nTop mesh-based FEA |
Intact IMM FEA |
|
---|---|---|---|
Beam Bending |
59.19 mm |
58.98 mm |
58.57 mm |
Beam Twisting |
- |
15.78 mm |
15.77 mm |
Beam Bending - nTop mesh-based:
Beam Bending - Intact:
Beam Twisting - nTop mesh-based:
Beam Twisting - Intact:
Standard Benchmark- Plate with a Hole¶
📌 See the file Benchmark_PlateWHole.ntop
in the Getting Started\Static Structural
folder. Update the Intact Directory
/Project Directory
variables and manually run any necessary unloaded blocks.
The figure below compares stress concentration due to the hole in a plate as obtained from mesh-based FEA and Intact IMM FEA.
The theoretical stress concentration (Stress XX) value can be computed using the analytical formulation for the stress concentration factor given as (d is hole diameter and W is plate width)
The above formula leads to a Kt = 2.233
and the resulting theoretical stress concentration value 3.72 Pa
.
Standard Thermal Benchmark - Cylinder with Convection¶
📌 See the file Benchmark_ThermalCylinder.ntop
in the Getting Started\Thermal
folder. Update the Intact Directory
/Project Directory
variables and manually run any necessary unloaded blocks.
Reference* |
nTop mesh-based FEA |
Intact IMM FEA |
|
---|---|---|---|
Inner Temperature (K) |
545.45 |
545.36 |
545.44 |
Outer Temperature (K) |
478.25 |
477.96 |
477.66 |
Inner Convection (W/m^2) |
34,160 |
33,294 |
33,605 |
Outer Convection (W/m^2) |
26,280 |
27,164 |
26,478 |
*Societe Francaise des Mecaniciens. Guide de validation des progiciels de calcul de structures. Paris, Afnor Technique, 1990. Test No. TPLA03/89.
Temperature - nTop mesh-based:
Temperaure - Intact:
Heat Flux - nTop mesh-based:
Heat Flux - Intact:
Complex Thermal Benchmark - Gyroid Heat Sink¶
📌 See the file Example_ThermalHeatSink.ntop
in the Getting Started\Thermal
folder. Update the Intact Directory
/Project Directory
variables and manually run any necessary unloaded blocks.
# of Elements |
Max/Min Temp (K) |
Total Time (secs) |
Local Flux (W/m^2) |
|
---|---|---|---|---|
nTop mesh-based FEA |
293,625 |
400/306 |
215 (includes meshing) |
3.86e5 |
Intact IMM FEA |
312,831 |
400/305 |
76 |
4.22e5 |
nTop Temperature:
Intact Temperature:
nTop Heat Flux (note there is some global maxima which impacts the flux scale):
Intact Heat Flux:
Release notes¶
[1.0.2] - 2024-10-10¶
Made
intact_ntop
a self-contained executable, so it is no longer necessary to separately install the .NET runtime.The resampling custom block now allows resampling the a solution multiple times when provided an optional “Resampling ID”.
Fixed a bug so the sample geometry is written to the project directory, and not the installation directory.
[1.0.0] - 2024-10-1¶
Initial release of Intact.Simulation for nTop.