compas_tno.problems

Classes

Problem

The Problem class stores the matrices used in the optimisation.

Initialisation

Problem

The Problem class stores the matrices used in the optimisation.

FixedProblem

Problem with fixed diagram where independent edges are computed.

SymmetricProblem

Problem with symmetry constraints applied.

FixedSymmetricProblem

Problem with both fixed diagram and symmetry constraints.

apply_sym_to_form(form[, ...])

Apply symmetry to the form diagram.

Starting Points

Set up

set_up_general_optimisation(analysis)

Set up a nonlinear optimisation problem.

set_up_convex_optimisation(analysis)

Legacy alias for set_up_base_problem.

Objectives

objective_selector(objective)

Select objective callable and gradient vector based on the desired objective function.

f_min_thrust(variables, problem)

Objective function to minimise the horizontal thrust

f_max_thrust(variables, problem)

Objective function to maximise the horizontal thrust

f_bestfit(variables, problem)

Objective function to minimise the vertical squared distance to a given target

f_horprojection(variables, problem)

Objective function to minimise the horizontal squared distance of the nodes on the form diagram to a given pattern

f_loadpath_general(variables, problem)

Objective function to minimise the loadpath

f_complementary_energy(variables, problem)

Objective function to minimise the complementary energy to a given applied foundation displacement

f_complementary_energy_nonlinear(variables, ...)

Objective function to minimise the nonlinear complementary energy to a given applied foundation displacement

f_max_section(variables, problem)

Objective function to minimise additional thickness required to find a feasible thrust network

f_constant(variables, problem)

Constant or feasible objective function f=1

f_reduce_thk(variables, problem)

Objective function to reduce the thickness of the structure

f_tight_crosssection(variables, problem)

Objective function to tight the cross section using normal vectors

Derivatives

d_fobj(fobj, x0, eps, *args)

Gradient approximated by hand using finite differences.

compute_dQ(q, ind, dep, Edinv, Ei)

Sensitivity of (all) the force densities with regards to the independent force densities.

gradient_feasibility(variables, M)

Sensitivity of the feasibility objective function, which returns a null vector.

gradient_reduce_thk(variables[, M])

Sensitivity of the objective function to minimise the thickness.

gradient_tight_crosssection(variables, M)

Sensitivity of the objective function to tight the cross section.

gradient_fmin(variables, M)

Sensitivity of the objective function to minimise the thrust.

gradient_fmax(variables, M)

Sensitivity of the objective function to maximise the thrust.

gradient_bestfit(variables, M)

Sensitivity of the objective function to minimise the vertical squared distance to the target.

gradient_horprojection(variables, M)

Sensitivity of the objective function to minimise the horizontal squared distance of the nodes on the form diagram to a given pattern.

gradient_complementary_energy(variables, M)

Sensitivity of the objective function to minimise the complementary energy.

gradient_complementary_energy_nonlinear(...)

Sensitivity of the objective function to minimise nonlinear complementary energy.

gradient_loadpath(variables, M)

Sensitivity of the objective function to minimise the loadpath.

gradient_max_section(variables, M)

Sensitivity of the objective function to minimise additional thickness required to find a feasible thrust network.

Constraints

constr_wrapper(variables, M)

Wrapper of the constraints assigned.

Gradients

d_fobj(fobj, x0, eps, *args)

Gradient approximated by hand using finite differences.

compute_dQ(q, ind, dep, Edinv, Ei)

Sensitivity of (all) the force densities with regards to the independent force densities.

gradient_feasibility(variables, M)

Sensitivity of the feasibility objective function, which returns a null vector.

gradient_reduce_thk(variables[, M])

Sensitivity of the objective function to minimise the thickness.

gradient_tight_crosssection(variables, M)

Sensitivity of the objective function to tight the cross section.

gradient_fmin(variables, M)

Sensitivity of the objective function to minimise the thrust.

gradient_fmax(variables, M)

Sensitivity of the objective function to maximise the thrust.

gradient_bestfit(variables, M)

Sensitivity of the objective function to minimise the vertical squared distance to the target.

gradient_horprojection(variables, M)

Sensitivity of the objective function to minimise the horizontal squared distance of the nodes on the form diagram to a given pattern.

gradient_complementary_energy(variables, M)

Sensitivity of the objective function to minimise the complementary energy.

gradient_complementary_energy_nonlinear(...)

Sensitivity of the objective function to minimise nonlinear complementary energy.

gradient_loadpath(variables, M)

Sensitivity of the objective function to minimise the loadpath.

gradient_max_section(variables, M)

Sensitivity of the objective function to minimise additional thickness required to find a feasible thrust network.

Jacobian

d_fconstr(fconstr, x0, eps, *args)

Jacobian matrix approximated using finite differences.

sensitivities_wrapper(variables, M)

Jacobian matrix computed analytically based on the constraints and variables assigned.

Bounds Update

ub_lb_update(x, y, thk, t, envelope, ub, lb, ...)

Function to update the ub-lb vertical bounds of the vertices.

dub_dlb_update(x, y, thk, t, envelope, ub, ...)

Function to update the derivatives of the ub-lb vertical bounds of the vertices.

b_update(x, y, thk, fixed, envelope, b, ...)

Function to update the limits of the extension of the reaction forces on the support vertices.

db_update(x, y, thk, fixed, envelope, b, ...)

Function to update the derrivatives of the limits of the extension of the reaction forces on the support vertices.

Callbacks

callback_save_json(xopt, *args, **kwargs)

Save the variables in the output.json file created.

callback_create_json()

Create a output.json to store the iterations of an optimisation

save_geometry_at_iterations(form, optimiser)

Save the geometry of the form (and force) during iterations of the optimisation.