compas_tno.problems

Classes

Problem

The Problem class stores the matrices used in the optimisation.

Initialisation

initialise_form(form[, find_inds, method, ...])

Initialise the problem for a FormDiagram and return the FormDiagram with independent edges assigned and the matrices relevant to the equilibrium problem.

initialise_problem_general(form)

Initialise the problem for a given Form-Diagram building the main matrices used in the subsequent analysis.

adapt_problem_to_fixed_diagram(problem, form)

Adapt the problem assuming that the form diagram is fixed in plan, by selecting the independent edges.

adapt_problem_to_sym_diagram(problem, form)

Adapt the problem assuming that the form diagram is symmetric.

adapt_problem_to_sym_and_fixed_diagram(...)

Adapt the problem assuming that the form diagram is symmetric and fixed in plane.

apply_sym_to_form(form[, ...])

Apply symmetry to the form diagram.

Starting Points

startingpoint_sag(form[, boundary_force])

Initialize the equilibrium in a form diagram with applied loads using sag approach

startingpoint_loadpath(form[, problem, ...])

Built-in function to optimise the loadpath considering diagram fixed projection.

startingpoint_tna(form[, plot])

Initialize the equilibrium in a form diagram with applied loads using TNA interative solver procedure (form and force diagrams are parallel)

startingpoint_fdm(form, **kwargs)

Initialize the equilibrium in a form diagram with applied loads using FDM approach for the q's stored in the form

Set up

set_up_general_optimisation(analysis)

Set up a nonlinear optimisation problem.

set_up_convex_optimisation(analysis)

Set up a convex optimisation 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.