Topology Optimization of a Constrained Body Loaded by a Force on the Edge.

There is some initial volume of material. The locations of the constraints are known, as well as the place of application of the load and its value.

1. Create a brick.

On the command bar, select: "Mode" — "Geometry", "Entity" — "Volume", "Action" — "Create".

From the list of geometric primitives, select "Brick".

Set the following parameters :

  • X (width): 10;

  • Y (heigtht): 6;

  • Z (depth): 10.

Click "Apply".

Brick will be created. Next, you need to cut it to create a point of application of the force in the center of the cross section.

Go to "Mode" — "Geometry", "Entity" — "Volume", "Action" — "WebCut"

Select "Coordinate Plane".

Click in the "Volume ID(s)" field, then click on the volume. The number of the selected volume should appear in the field.

Next, select the section plane "ZX" and check the Merge checkbox so that the objects obtained as a result of cutting are connected to each other.

Сlick "Apply".

Repeat this procedure, only enter "all" in the "Volume ID(s)" field to select all volumes.

Then select another section plane - "XY".

Click "Apply".

You get the following result.

2. Create a mesh.

Go to "Mode" — "Mesh", "Entity" — "Volume", "Action" — "Intervals".

Select "Automatic Sizing" and in the "Select Volumes" field, enter "all".

Move the slider just to the left of the middle and click "Mesh".

This is the result after the volume has been meshed.

3. Create material.

Go to "Mode" — "Material", "Entity" — "Materials Management". After that, the material management window will open, where you will need to enter a name for the material that will be used.

After you have set the name (in this case, MAT1), you need to expand the property tree in the "Elasticity" - "Hook Material" branch and drag, holding down the left mouse button, the "Young's Modulus" and "Poisson Ratio" from the property tree to the lower right area.

In the same way, you need to transfer the "Ultimate strength" from the "Strength" - "Strength Isotropic" branch.

Then set the values as in the example below.

Then click "Apply" and then "X" in the upper right corner of the Material Management panel.

The next step is to create a block to pass properties to the volume.

4. Create a block.

Go to "Mode" — "Blocks", "Entity" — "Block", "Action" — "Add"

Select "Volume" in the Entity List, and in the "Entity ID(s)" field enter "All" to add all volumes to the block at once.

Click "Apply".

Go to "Mode" — "Blocks", "Entity" — "Block", "Action" — "Block properties/parameters"

Select the created block from the "Block name" drop-down list (in this example it will be the only one).

Then select the created material from the "Material" drop-down list.

Click "Apply".

5. Create boundary conditions.

Go to "Mode" — "Boundary Conditions", "Entity" — "Displacement", "Action" — "Create"

Select "Surface", click in the "Entity ID(s)" field, and then hold down "Ctrl" click on the surfaces of interest, after which the numbers of the selected surfaces will appear in the "Entity ID(s)" field 23 35 9 21.

Check the "All" box in the "Degrees Of Freedom" menu and click "Apply".

6. Apply the load.


  • The load must be adequate to the strength properties of the material (at the first step of the calculation, the von Mises stresses must not exceed the ultimate strength, so first carry out a static calculation and make sure of this). Otherwise, the algorithm will either leave all the material in place under too much load, or there will be less material than the mesh can reflect, which will lead to artifacts if the load is too low.

Go to "Mode" — "Boundary Conditions", "Entity" — "Force", "Action" — "Create"

In the Entity list, select "Vertex", click in the "Entity ID(s)" field, and then on the central vertex on the opposite edge of the block, after which its number "17" will appear in the "Entity ID(s)" field.

In the "Force" field, enter the value "-1000000000" or "-1e9".

Enter "0 0 1"In the "Direction" field to indicate the direction along the "Z" axis.

Click "Apply".

7. Set the calculation settings.

Go to "Mode" — "Calculation Settings", "Calculation settings" — "Topological Optimization".

Select the dimension "3D".

Click "Apply" and then "Start Calculation".

In the window that opens, select the location to save the results and the file name. Then click "Save".

Calculation starts.

When the calculation is completed, the following message will appear on the "Command Line". After that, you can proceed to viewing the results.

To view the results, go to the "Fidesys Viewer" postprocessor. To do this, you need to go to "Mode" - "Results" and click "Open last result", after which the folder with the results will open.

Folder with results.

Then, inside the folder with the results, go to the "model" folder and find the last file with the results "result_XX.pvd" (with the highest serial number instead of "XX") and open it with a double click, after which the "Fidesys Viewer" postprocessor will start.

In the "Fidesys Viewer" window that opens, apply the "Threshold" filter ("Filters" - "Alphabetical" - "Threshold").

Next, select the input array "Elasticity Modulus", check the "All points of a cell" box and click "Apply".

Next, you need to move the slider of the minimum value of the modulus of elasticity to a value of the order of "1e+10" and click "Apply".

If everything was done correctly, then in the model window you will see the result - a topologically optimized shape. Then it can be exported in a format for 3D printing.

For a smoother look of the final design, you need to make a finer mesh. To obtain a result ideally suitable for 3D printing, it is necessary that the size of the final element is equal to the height of the printed layer. However, in this case, the time required to solve the problem can be significant.

Go to "File" — "Export Scene...".

Select the save location and format ".x3d" and click "OK".

Click "Save".

Then go to the folder with the saved model and double-click to open it. If you have a 3D printer slicer installed, such as Cura, it will be able to open the model and prepare it for printing.

brick x 10 y 6 z 10
webcut volume 1  with plane xplane offset 0 preview 
webcut volume 1  with plane yplane offset 0 preview 
webcut volume 1  with plane yplane offset 0 merge 
webcut volume all with plane zplane offset 0 merge preview 
webcut volume all with plane zplane offset 0 merge 
volume all size auto factor 4
mesh volume all
create material 1
modify material 1 name 'MAT1'
modify material 1 set property 'MODULUS' value 2e+11
modify material 1 set property 'POISSON' value 0.3
modify material 1 set property 'ISO_ULTIMATE_STRENGTH' value 4.5e+08
set duplicate block elements off
block 1 add volume all
block 'Block 1' material 1 cs 1 element solid order 1
create displacement  on surface 23 35 29 21  dof all fix  
create force  on vertex 17  force value -1e9 direction 0 0 1
analysis type optimization elasticity dim3
optimization bc_protection 1.0 block all
calculation start path 'C:/Users/User/Documents/CAE-Fidesys-4.0/Result.pvd'
И еще статьи из раздела