Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

TopOpt — Topology Optimization in Python

A Python Library for Topology Optimization

Build Status Documentation Status License

Warning: this library is in early stages of development and consequently the API may change to better improve usability.

Topology optimization is a form of structure optimization where the design variable is the topology of the structure. Topological changes are achieved by optimizing the material distribution within a given design space.

TopOpt is a python library for topology optimization. TopOpt contains common design problems (e.g. minimum compliance) solved using advanced methods (e.g. Method of Moving Asymptotes (MMA)). Using TopOpt we can optimize the classic Messerschmitt–Bölkow–Blohm (MBB) beam in a few lines of code:

import numpy
from topopt.boundary_conditions import MBBBeamBoundaryConditions
from topopt.problems import ComplianceProblem
from topopt.solvers import TopOptSolver
from topopt.filters import DensityBasedFilter
from topopt.guis import GUI

nelx, nely = 180, 60  # Number of elements in the x and y
volfrac = 0.4  # Volume fraction for constraints
penal = 3.0  # Penalty for SIMP
rmin = 5.4  # Filter radius

# Initial solution
x = volfrac * numpy.ones(nely * nelx, dtype=float)

# Boundary conditions defining the loads and fixed points
bc = MBBBeamBoundaryConditions(nelx, nely)

# Problem to optimize given objective and constraints
problem = ComplianceProblem(bc, penal)
gui = GUI(problem, "Topology Optimization Example")
topopt_filter = DensityBasedFilter(nelx, nely, rmin)
solver = TopOptSolver(problem, volfrac, topopt_filter, gui)
x_opt = solver.optimize(x)

input("Press enter...")

Output:

Development Status

TopOpt is in early stages of development and only features a limited set of finite element mesh options, optimization problems, and solvers. The following is a list of current and future features of TopOpt:

Meshes

  • 2D regular grid
  • 2D general mesh
    • triangle mesh
    • quadrilateral mesh
  • 3D regular grid
  • 3D general mesh
    • tetrahedron mesh
    • hexahedron mesh

Problems

  • compliance
    • linear elasticity
    • non-linear elasticity
  • stress
  • thermal conductivity
  • fluid flow

Solvers

Metadata

Release files for topopt 0.0.1a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for topopt 0.0.1a1
File Size Uploaded
topopt-0.0.1a1.tar.gz 19.6 kB Details

Release files / topopt-0.0.1a1.tar.gz

Download URL topopt-0.0.1a1.tar.gz
Size 19.6 kB
Tags Source
SHA-256 checksum
How to use checksums
1d5745c353bee69a3f4b359f5a5e2c5c654e9ab60fbdb553baf2f8e30b1c65e3
BLAKE2b-256 checksum
How to use checksums
28e6b58bd21ec780ef0c4fcb31da04e300cf00e5854c20c01b980bf112a109b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.6

Release history Release notifications | RSS feed

This release

0.0.1a1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page