jax_fem.mma module#

Copied and modified from UW-ERSL/AuTO Under GNU General Public License v3.0

Original copy from arjendeetman/GCMMA-MMA-Python

Improvement is made to avoid N^2 memory operation so that the MMA solver is more scalable.

class jax_fem.mma.MMA[source]#

Bases: object

getAsymptoteValues()[source]#
getLagrangeMultipliers()[source]#
getOptimalValues()[source]#
getSlackValue()[source]#
mmasub(xval)[source]#
registerMMAIter(xval, xold1, xold2)[source]#
resetMMACounter()[source]#
setConstraintWithGradient(cons, consGrad)[source]#
setLowerAndUpperAsymptotes(low, upp)[source]#
setMinandMaxBoundsForDesignVariables(xmin, xmax)[source]#
setMoveLimit(movelim)[source]#
setNumConstraints(numConstraints)[source]#
setNumDesignVariables(numDesVar)[source]#
setObjectiveWithGradient(obj, objGrad)[source]#
setScalingParams(zconst, zscale, ylinscale, yquadscale)[source]#
jax_fem.mma.applyDensityFilter(ft, rho)[source]#
jax_fem.mma.applySensitivityFilter(ft, rho, dJ, dvc)[source]#
jax_fem.mma.compute_filter_kd_tree(fe)[source]#

This function is created by Tianju. Not from the original code. We use k-d tree algorithm to compute the filter.

jax_fem.mma.optimize(fe, rho_ini, optimizationParams, objectiveHandle, consHandle, numConstraints)[source]#
class jax_fem.mma.partial[source]#

Bases: object

partial(func, *args, **keywords) - new function with partial application of the given arguments and keywords.

args#

tuple of arguments to future partial calls

func#

function object to use in future partial calls

keywords#

dictionary of keyword arguments to future partial calls

jax_fem.mma.subsolv(m, n, epsimin, low, upp, alfa, beta, p0, q0, P, Q, a0, a, b, c, d)[source]#