compas_tno.problems

Classes

Problem()

The Problem class stores the matrices used in the optimisation.

Initialisation

initialize_fdm(form)

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

initialize_tna(form[, plot])

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

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

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

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

Initialise the problem for a Form-Diagram 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.

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.

Set up

set_up_general_optimisation(analysis)

Set up a nonlinear optimisation problem.

set_up_convex_optimisation(analysis)

Set up a convex optimisation problem.

Starting Points

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

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

initialize_tna(form[, plot])

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

Objectives

objective_selector(objective)

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

f_min_thrust(variables, M)

Objective function to minimise the horizontal thrust

f_max_thrust(variables, M)

Objective function to maximise the horizontal thrust

f_bestfit(variables, M)

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

f_horprojection(variables, M)

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

f_loadpath_general(variables, M)

Objective function to minimise the loadpath

f_complementary_energy(variables, M)

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

f_complementary_energy_nonlinear(variables, M)

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

f_max_section(variables, M)

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

f_constant(variables, M)

Constant or feasible objective function f=1

f_reduce_thk(variables, M)

Objective function to reduce the thickness of the structure

f_tight_crosssection(variables, M)

Objective function to tight the cross section using normal vectors

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.

Proxy

initialize_loadpath_proxy(formdata[, problem])

Initialise loadpath using the proxy.

run_NLP_proxy(shapedata, formdata, optimiserdata)

Run nonlinear multiobjective optimisations using the proxy

run_NLP_proxy2(formdata, shapedata, ...)

Run nonlinear multiobjective optimisations using the proxy

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.