Back to all tutorials

Injection Molding - CFD Simulation SimFlow Tutorial

1. Introduction

This tutorial is a simulation of the injection molding process. It uses the Power Law transport model, which is highly CPU-intensive due to its nonlinearity. The tutorial simulates filling a housing with melted plastic, starting from an empty domain (filled with air). It used time-variable pressure inlet conditions that caused gradual filling of the mold.

2. Download SimFlow

SimFlow is a general purpose CFD Software

To follow this tutorial, you will need SimFlow free version, you may download it via the following link:
Download SimFlow

3. Create Case

This tutorial will require high CPU usage and might take several hours to finish the calculation depending on the machine used.

Open SimFlow and create a new case named housing injection

  1. Click New
  2. Provide name housing injection
  3. Click Create to open a new case

4. Import Geometry

Firstly we need to Download GeometryHousing

  1. Click Import Geometry
  2. Select geometry file housing.stl
  3. Click Open
Housing Injection 02 Import Geometry

5. Imported Geometry Units

Since the imported geometry is in STL format, which does not store unit information, we need to confirm the unit in which the model was created. The Geometry size displays overall size of the model in each direction what should help to decide which unit is the valid one. In this case, the model was created in millimeters.

  1. Select mm unit
  2. Click OK button
Housing Injection 02 unit

6. Geometry - Housing

After importing geometry, it will appear in the 3D view.

  1. Click Fit View to fit geometry in the view
Housing Injection 03 Geometry

7. Split Geometry - Housing (I)

The imported geometry is made up of a single surface. We need to split it into separate faces for further processing.

  1. Expand the Options list
  2. Select Split
Housing Injection 06 Geometry split1

8. Split Geometry - Housing (II)

  1. Click Split
Housing Injection 07 Geometry split2

9. Create Face Groups (I)

We will add 3 face groups to the original geometry. SimFlow treats each face group as a mesh boundary. By using face groups, we can create separate boundaries for inlet and outlets.

  1. Select the inlet face by holding CTRL button and clicking on the geometry face
  2. Press Create face group from selection button
Housing Injection 08 Face group1 v2

10. Create Face Groups (II)

New component should be appeared on the Face Groups list.

  1. Change face group name from group_1 to inlet
    (double click to edit name and press Enter to confirm)
  2. To uncheck the selected face from graphics click on Clear Selection or press the Esc key
Housing Injection 09 Face group1 v2 1

11. Create Face Groups (III)

Repeat this operation for the outlets. Additionally, we need to add outlet tube walls as separate groups to set the mesh refinement for these regions. Each group should contain a single face.

  1. Create and rename new groups as follows:
Housing Injection 10 Face group2

12. Create Face Groups (IV)

In order to be able to set different settings per each face, we will convert the single geometry into multiple geometry objects.

  1. Select Geometry Faces
  2. Click on the inlet group
  3. Click on Extract group
  4. Repeat this operation for the rest of created face groups
Housing Injection 11 Face group3

13. Meshing Parameters - Housing

Before we start meshing we will specify geometry options used during the meshing. We will also increase the refinement level for better accuracy.

  1. Go to Hex Meshing panel
  2. Select the housing component
  3. Enable Mesh Geometry
  4. Set Refinement to Min 2 Max 2
Housing Injection 12 Hex Meshing1

14. Copy Meshing Parameters

We will use the copy option to apply common settings.

  1. Select housing
  2. Click on Copy Meshing Properties
  3. Select all remaining faces as a target
  4. Click on Copy
Housing Injection 13 Hex Meshing copy

15. Meshing Parameters - Housing Outlet 1 Tube Wall

For outlet tubes, we will increase copied refinement levels.

  1. Select the housing_outlet1_tube_wall
  2. Increase the Refinement to Min 3 Max 3
Housing Injection 14 Hex Meshing2 1

16. Meshing Parameters - Housing Outlet 2 Tube Wall

  1. Select the housing_outlet2_tube_wall
  2. Increase the Refinement to Min 3 Max 3
Housing Injection 15 Hex Meshing2 2

17. Base Mesh - Domain

Under the Base tab we will define the background mesh for the housing.

  1. Go to Base tab
  2. Click on Autosize
  3. Set the division of the base mesh
  4. Change Max [m] Z to 0.0205
Housing Injection 16 Base Mesh

18. Material Point

Material Point tells the meshing algorithm on which side of the geometry the mesh is to be retained. Since we are considering flow inside the housing we need to place the material point inside the geometry.

  1. Go to Point tab
  2. Specify location inside housing geometry
    Material Point0.0191e-021e-02

You can specify the point location from the 3D view. Hold the CTRL key and drag the arrows to the destination.

Housing Injection 17 Material Point

19. Start Meshing

  1. Switch to Mesh tab
  2. Start the meshing process with Mesh button
Housing Injection 18 Meshing

20. Check Mesh - Section View (I)

After the meshing process is finished the mesh should appear in the graphics window. In order to check the quality of the mesh, we view the element’s shape using section view.

  1. Select Section View from panel
  2. Check the Section View
  3. Set the normal vector to the section plane
    Normal \({\sf [-]}\)-100
  4. Set the point to set the location of section plane
    Point \({\sf [m]}\)2e-0300
Housing Injection 19 Section check

21. Check Mesh - Section View (II)

After the mesh check, we will turn off the section view to return to the full model view.

  1. Uncheck the Section View
  2. Click Section View options or press ESC key to close panel
Housing Injection 19 Section exit

22. Mesh - Boundaries

To be able to assign inlet and outlet boundary conditions we have to adjust the boundary types.

  1. Set the boundary type to Patch for inlet and outlets boundaries
    inlet Patch
    outlet1 Patch
    outlet2 Patch
Housing Injection 20 Mesh BC

23. Select Solver - Inter

For injection molding, we will use Inter (interFoam) solver. This solver is designed to model two-phase flow with interface capturing capabilities.

  1. Go to SETUP panel
  2. Select Transient filter
  3. Check Multiphase model filter
  4. Pick Inter (interFoam) solver
  5. Select solver
Housing Injection 21 Select Solver

24. Transport Properties - HDPE

In the transport properties panel, we will define fluid parameters. Firstly, we will define High-Density Polyethylene (HDPE) phase using Power Low transport model.

  1. Go to Transport Properties panel
  2. Set the surface tension between fluids
    \(\sigma\) \({\sf [N/m]}\)0.026
  3. Change phase name from phase1 to HDPE
  4. Set the density
    \(\rho\) \({\sf [kg/m^3]}\)952
  5. Extend the list for Transport Model and choose Power Law
  6. Set the parameters accordingly
    \(\nu_{min}\) \({\sf [m^2/s]}\)6e-03
    \(\nu_{max}\) \({\sf [m^2/s]}\)1000
    \(k\) \({\sf [m^2/s]}\)21.0084
    \(n\) \({\sf [-]}\)0.41
Housing Injection 22 Transport properties1

25. Transport Properties - Air

For the second phase, we will use predefined air properties from the material database.

  1. Change phase name from phase2 to air
  2. Click on Material Database
  3. Select the air
  4. Click Apply
Housing Injection 23 Transport properties2

26. Solution - PIMPLE

For the purpose of the simulation, we will change the default PIMPLE algorithm parameters.

  1. Go to Solution panel
  2. Switch to the PIMPLE tab
  3. Set Non-Orthogonal Correctors to 0
  4. Uncheck Momentum Predictor for stability
Housing Injection 24 Solution Pimple

27. Solution - Limits

During computations sometimes velocity can spontaneously approach unphysical values due to numerical errors. In order to prevent computations from divergence, we can limit the velocity. As the result, we should get more stable computations.

  1. Switch to the Limits tab
  2. Check Velocity Damping
  3. Set the maximum velocity \(U_{max}\) to 10
Housing Injection 25 Solution Limits

28. Boundary Conditions - Inlet (Flow I)

In order to define injection, we will use pressure inlet boundary. We will define the pressure by time history table.

  1. Go to Boundary Conditions panel
  2. Select housing_inlet
  3. Change the pressure type to Uniform Fixed Value
  4. Set the Value [Pa] as table
  5. Press Edit Table
Housing Injection 26 Boundary Conditions

29. Boundary Conditions - Inlet (Flow II)

Fill in inlet pressure values history.

  1. Press Add Row two times
  2. Fill the table by values
  3. Close the window
Housing Injection 27 BC inlet table

30. Boundary Conditions - Inlet (Phases)

To assign injected material, the phase fraction parameter \(\alpha_{phase}\) is used. \(\alpha_{HDPE}\) equal 1 will stand for HDPE phase.

  1. Select housing_inlet
  2. Switch to the Phases tab
  3. Set the Type to Fixed Value
  4. Set the Value [-] to 1
Housing Injection 28 BC inlet phases.png

31. Boundary Conditions - Outlet (Flow I)

Outlets' boundary conditions simulate outflow to the atmosphere. The default phase setup allows both fluids to exit freely while in case of backflow only air can be sucked into the housing.

  1. Select housing_outlet1
  2. Switch the tab to Flow
  3. Set the pressure type and its value accordingly
    \(p{-}\rho gh\)TypeTotal Pressure
    \(p{-}\rho gh\)\(p_0\) \({\sf [Pa]}\)100000
  4. Change the velocity Type to Zero Gradient
Housing Injection 29 BC outlet1

32. Boundary Conditions - Outlet (Flow II)

We will copy the boundary condition settings to the second outlet.

  1. Select housing_outlet1
  2. Press Copy Boundary Conditions
  3. Check the housing_outlet2
  4. Press Copy
Housing Injection 30 BC outlet2

33. Create Geometry - Patch

Before we will set the initial condition we need to define the region representing the initial location of HDPE. For this purpose, we will create a box.

  1. Go to GEOMETRY panel
  2. Select Create Box
  3. Change geometry name from box_1 to patch
  4. Set the origin and box dimensions
    Origin \({\sf [m]}\)0.0125e-036e-03
    Dimensions \({\sf [m]}\)1e-021e-020.02
Housing Injection 31 Patch geom

34. Initial Conditions - Patch

By using the previously created geometry we will tell the solver where should be localized HDPE at the initial state.

  1. Go to Initial Conditions panel
  2. Switch to Patch tab
  3. Check the patch geometry
  4. Expand the Fields
  5. Check \(\alpha_{HDPE}\)
  6. Override \(\alpha_{HDPE}\) with the value of 1
Housing Injection 32 Initial Patch

35. Monitors - Sampling

During calculation, we can observe intermediate results on a section plane or probe plots. Note that runtime post-processing can only be defined before starting calculations and can not be changed later on. Firstly, we need to specify variables that will be sampled. After that, we will define the section plane and probes.

  1. Go to Monitors panel
  2. Switch to Sampling tab
  3. Expand Fields list
  4. Select the velocity U and the HDPE phase \(\alpha_{HDPE}\)
Housing Injection 34 Monitors Sampling1 1

36. Monitors - Create Slice (I)

To add sampling data on a plane we need to create a slice. To define a plane we need to set the normal vector and then select the point. In the current step, we will choose the normal vector and in the next step, we will choose a point that belongs to the plane.

  1. Select Create Slice
  2. Set the normal along Y axis
    Normal \({\sf [-]}\)010
Housing Injection 35 Monitors Sampling1 2

37. Monitors - Create Slice (II)

Now we will place the slice to the destination by setting the point coordinates. To achieve this we will use arrows in the graphic window. Before that, we will hide unnecessary geometries.

  1. Extend Graphic Objecyt List
  2. Uncheck Geometries
  3. Set YZ View orientation
  4. Click Fit View
  5. Holding CTRL button, click on the red arrow and drag it to the middle of the model
  6. The slice point coordinates should be like this
Housing Injection 36 Monitors Sampling2 1

38. Monitors - Create Probe

To track sampled parameters in a specific point in space, we can add the probe location monitor.

  1. Add New Probe
  2. Press the viewfinder icon next to Location [m] coordinates
  3. Set the probe location on the 3D view. Holding CTRL button, move the probe to the specific location
  4. The probe point location should be like this
    Location \({\sf [m]}\)2e-030.0171e-02
Housing Injection 37 Monitors Sampling3 1

39. Run - Time Control

For any simulation, it is very convenient to let the solver automatically determine the proper time step value. To use this option we need to define time step constraints by providing the initial time step (adjusted by the solver during computations), maximal time step value and Courant number.

  1. Go to RUN panel
  2. Set the Simulation Time [s] to 1.5
  3. Change Time Stepping to Automatic
  4. Set the parameters:
    Initial \(\Delta t\) \({\sf [s]}\)1e-06
    (solver will start computation with this value and adjust it in the next iterations)
    Max \(\Delta t\) \({\sf [s]}\)1e-03
    Max Co \({\sf [-]}\)1
    Max Alpha Co \({\sf [-]}\)0.5

This calculation will require high CPU usage and might take several hours to finish the calculation depending on the machine used. If you want to shorten the computation time, you can decrease the Simulation Time to 0.4s - this is enough for purpose of further postprocessing.

Housing Injection 38 Run Time

40. Run - Output

We can control how often results should be saved on the hard drive. Only this data will be available for postprocessing.

  1. Switch to Output tab
  2. Set the Interval [s] to 1e-02
Housing Injection 39 Run Output

41. Run - CPU

Due to the non-newtonian fluid and 2 phase model, the calculation is very time-consuming. To speed up the calculation process increase the number of CPUs basing on your PC capability. We recommend using at least 6 cores for this tutorial. If you are using a free version you can use the contact form to Request 30-day Trial

Estimated computation time for 2 processors: over 5 hours

  1. Switch to CPU tab
  2. Use parallel mode
  3. Increase the Number of processors
  4. Click Run Simulation button
Housing Injection 40 Run CPU

42. Monitor Solution - Residuals

When the calculation is finished we should see a similar residual plot.

Housing Injection 41 Residuals

43. Results - Slice

Slices tab appears next to Residuals. Under this tab, we can preview results on the defined slice planes. The results preview is available during the calculation and we can track it on a regular basis. The newly calculated time step will be actualized automatically as long as the time selector points to the latest time step.

  1. Switch to Slices tab
  2. Click ViewXY
  3. Click Fit View to zoom the geometry
  4. Choose alpha.HDPE field
  5. Click Adjust range to data
  6. Play with an animation buttons to track the results of analysis
  7. Probes outputs are available to preview on the sheets next to Slice
Housing Injection 41 Slice

44. Calculate - Mass Flow

After computations are finished, we will investigate the mass flow rate during the injection. We will compute it by using already existing data (this feature is not available as a monitor).

  1. Go to Calculate panel
  2. Switch to Boundary tab
  3. Select Full Time Range
  4. Select the boundary as housing_inlet
  5. Select mass \(\varphi\)
  6. Click on Calculate
Housing Injection 42 Inlet mass flow

45. Results - Mass Flow

  1. Computed variables are displayed on the chart in the tab Integral of phi
Housing Injection 43 Inlet mass flow2

46. Postprocessing - ParaView

We can do the complex visualization of our results with ParaView.

  1. Go to POSTPROCESSING panel
  2. Click on Run ParaView
Housing Injection 44 Postprocessing ParaView

47. ParaView - Load the results

Load the results into the program.

  1. Mark housing_injection.foam
  2. Click Apply to load results into ParaView
  3. Select the phase alpha.HDPE from the list
  4. After loading results they will be shown in the 3D graphic window
Housing Injection 45 PV read results

48. ParaView - Results (I)

We will focus on the HPDE phase behavior and observe form filling during the injection.

  1. Select Clip from top menu
  2. Change the clip type to Scalar
  3. Select alpha.HDPE from the scalar list
  4. Click Refresh
  5. Uncheck Invert option
  6. Click Apply
  7. Select the phase alpha.HDPE to preview
  8. Play with the animation buttons to track the HDPE phase movement
Housing Injection 46 PV Phase volume

49. ParaView - Results (II)

To show the housing together with the fluids we will follow these steps

  1. Unhide housing_injection.foam
  2. Set the coloring by the Solid Color
  3. Set the opacity to 0.3
Housing Injection 47 PV Phase volume2

50. Final Results

Now we can see the final results with the original geometry.

Housing Injection 45 Final Results

51. Advanced Postprocessing with ParaView

This concludes the tutorial, covering all the aspects we intended to showcase. For a finely tuned presentation of the results, you may take advantage of the more advanced features.

In ParaView, you can display streamlines, contour plots, vector fields, line or time plots, calculating volume or surface integrals and create animations.

To familiarize yourself with the ParaView capabilities, it’s worth checking out our video tutorial, Paraview CFD Tutorial - Advanced Postprocessing in ParaView, in which we demonstrate some of the most commonly used post-processing techniques.