Analysis

This tutorial provides a quick tour of the generation of Analysis.

The Analysis object stores the main objects of the analysis which are:

  • Analysis.form: the FormDiagram of the analysis,

  • Analysis.shape: the Shape of the analysis,

  • Analysis.optimiser: the Optimiser of the analysis,

Creating an Analysis object

The Analysis object can be created based on one or all of the three elements that it composes.

Beyond defining each element separately, a series of functions has been implemented to create the optimiser for a specific problem. Nevertheless, when these are created, the user should check if the Analysis.optimiser.settings dictionaty contains the right information for the analysis.

Main Analysis Methods

When the elements are added to the Analysis object, the following methods are useful to assign specific constraints on the problem

After assigning all modifications necessary, the problem needs to be set up and run with the following commands

A full list of relevant methods should be checked at the Analysis documentation.

Create a minimum thrust analysis

The code below creates a minimum thrust analysis in a shallow crossvault and using the cross form diagram. This example is discussed detail here.

from compas_tno.shapes import Shape
from compas_tno.diagrams import FormDiagram
from compas_tno.viewers import Viewer
from compas_tno.analysis import Analysis

vault = Shape.create_crossvault(thk=0.5, spr_angle=30)
form = FormDiagram.create_cross_form(discretisation=10)

analysis = Analysis.create_minthrust_analysis(form, vault)
analysis.apply_selfweight()
analysis.apply_envelope()
analysis.set_up_optimiser()
analysis.run()

view = Viewer(form)
view.show_solution()

Disclaimer about the solution

The problem of finding a connected network within the bounds of a masory geometry is nonlinear. Therefore, a solution is not guarantee. For this reason the output of the Analysis should always be checked to see if the exitflag is satisfactory, i.e., if the problem was indeed solved.