pyMOTO Reference

Core

pymoto.Signal

Manages the state data, sensitivities, and connects module in- and outputs

pymoto.Module

Main class: Module Transforms input signal to output signal and output signal sensitivity to input signal sensitivity

pymoto.Network

Binds multiple Modules together as one Module

Mathematical Modules

pymoto.EinSum

General linear algebra module which uses the Numpy function einsum

pymoto.MathGeneral

General mathematical expression module

pymoto.Inverse

Calculate the inverse of a matrix \(\mathbf{B} = \mathbf{A}^{-1}\)

pymoto.LinSolve

Solves linear system of equations \(\mathbf{A}\mathbf{x}=\mathbf{b}\)

pymoto.SystemOfEquations

Solve a partitioned linear system of equations

pymoto.StaticCondensation

Static condensation of a linear system of equations

pymoto.EigenSolve

Solves the (generalized) eigenvalue problem \(\mathbf{A}\mathbf{q}_i = \lambda_i \mathbf{B} \mathbf{q}_i\)

pymoto.Scaling

Scales (scalar) input for different response functions in optimization (objective / constraints).

Finite Element Modules

pymoto.AssembleGeneral

Assembles a sparse matrix according to element scaling \(\mathbf{A} = \sum_e x_e \mathbf{A}_e\)

pymoto.AssembleStiffness

Stiffness matrix assembly by scaling elements in 2D or 3D \(\mathbf{K} = \sum_e x_e \mathbf{K}_e\)

pymoto.AssembleMass

Consistent mass matrix or equivalents assembly by scaling elements \(\mathbf{M} = \sum_e x_e \mathbf{M}_e\)

pymoto.AssemblePoisson

Assembly of matrix to solve Poisson equation (e.g. Thermal conductivity, Electric permittivity) \(\mathbf{P} = \sum_e x_e \mathbf{P}_e\).

Filter Modules

pymoto.DensityFilter

Standard density filter for a structured mesh in topology optimization

pymoto.OverhangFilter

Implementation of overhang filter by Langelaar (2016, 2017)

Output Modules

pymoto.PlotDomain

Plots the densities of a domain (2D or 3D)

pymoto.PlotGraph

Plot an X-Y graph

pymoto.PlotIter

Plot iteration history of one or more variables

pymoto.WriteToVTI

Writes vectors to a Paraview VTI file

Complex-value Modules

pymoto.MakeComplex

Makes a complex variable from two real inputs \(z(x,y) = x + iy\)

pymoto.RealPart

Takes the real part of a complex value \(x = \text{Re}(z)\)

pymoto.ImagPart

Takes the imaginary part of a complex value \(y = \text{Im}(z)\)

pymoto.ComplexNorm

Takes the complex norm \(A = z z^*\)

Common Utilities and Routines

pymoto.DomainDefinition

Definition for a structured domain Nodal numbering used in the domain is given below.

pymoto.DyadCarrier

Efficient storage for dyadic or rank-N matrix

pymoto.finite_difference

Performs a finite difference check on the given Module or Network

pymoto.minimize_oc

Execute minimization using the OC-method

pymoto.minimize_mma

Execute minimization using the MMA-method Svanberg (1987), The method of moving asymptotes - a new method for structural optimization

Linear Solvers

pymoto.LDAWrapper

Linear dependency aware solver (LDAS)

pymoto.SolverDiagonal

Solver for diagonal matrices

pymoto.SolverDenseQR

Solver for dense (square) matrices using a QR decomposition

pymoto.SolverDenseLU

Solver for dense (square) matrices using an LU decomposition

pymoto.SolverDenseCholesky

Solver for Hermitian positive-definite matrices using a Cholesky factorization.

pymoto.SolverDenseLDL

Solver for Hermitian or symmetric matrices using an LDL factorization.

pymoto.SolverSparseLU

Solver for sparse (square) matrices using an LU decomposition.

pymoto.SolverSparsePardiso

Solver wrapper Intel MKL Pardiso solver, which is a very fast and flexible multi-threaded solver

pymoto.SolverSparseCholeskyScikit

Solver for positive-definite Hermitian matrices using a Cholesky factorization.

pymoto.SolverSparseCholeskyCVXOPT

Solver for positive-definite Hermitian matrices using a Cholesky factorization.