TrussTopOptProblems

This sub-module of TopOpt defines truss topology optimization problems and the IO helpers to load truss geometries from JSON or .geo files.

Problem types

TopOpt.TrussTopOptProblems.TrussProblemType
TrussProblem(::Val{:Linear}, node_points, elements, loads, fixities, mats, crosssecs)

Truss topology optimization problem. Construct from node coordinates, element connectivity, loads, fixities, material and cross-section data. Use load_truss_json to load these from a JSON file.

source

Material and cross-section containers

Grid

Standard truss test problem

TopOpt.TrussTopOptProblems.PointLoadCantileverTrussFunction
PointLoadCantileverTruss(nels::NTuple{dim,Int}, sizes::NTuple{dim}, E = 1.0, ν = 0.3, force = 1.0; k_connect=1) where {dim, CellType}

Inputs

  • nels: number of elements in each direction, a 2-tuple for 2D problems and a 3-tuple for 3D problems
  • sizes: the size of each element in each direction, a 2-tuple for 2D problems and a 3-tuple for 3D problems
  • E: Young's modulus
  • ν: Poisson's ration
  • force: force at the center right of the cantilever beam (positive is downward)
  • k_connect: k-ring of a node to connect to form the ground mesh. Defaults to 1. For example, for a 2D domain, a node will be connected to 8 neighboring nodes if k_connect=1, and 8+16=24 neighboring nodes if k_connect=2.

Returns

  • TrussProblem

Example

nels = (60,20);sizes = (1.0,1.0);E = 1.0;ν = 0.3;force = 1.0;problem = PointLoadCantileverTruss(nels, sizes, E, ν, force, k_connect=2)
source

IO