Karamba3D v3
  • Welcome to Karamba3D
  • New in Karamba3D 3.1
  • See Scripting Guide
  • See Manual 2.2.0
  • 1 Introduction
    • 1.1 Installation
    • 1.2 Licenses
      • 1.2.1 Cloud Licenses
      • 1.2.2 Network Licenses
      • 1.2.3 Temporary Licenses
      • 1.2.4 Standalone Licenses
  • 2 Getting Started
    • 2 Getting Started
      • 2.1 Karamba3D Entities
      • 2.2 Setting up a Structural Analysis
        • 2.2.1 Define the Model Elements
        • 2.2.2 View the Model
        • 2.2.3 Add Supports
        • 2.2.4 Define Loads
        • 2.2.5 Choose an Algorithm
        • 2.2.6 Provide Cross Sections
        • 2.2.7 Specify Materials
        • 2.2.8 Retrieve Results
      • 2.3 The Karamba3D Menu
      • 2.4 User Settings
      • 2.5 Physical Units
      • 2.6 Asynchronous Execution of Karamba3D Components
      • 2.7 Quick Component Reference
  • 3 In Depth Component Reference
    • 3.0 Settings
      • 3.0.1 License
    • 3.1 Model
      • 3.1.1 Assemble Model
      • 3.1.2 Disassemble Model
      • 3.1.3: Modify Model
      • 3.1.4: Connected Parts
      • 3.1.5: Activate Element
      • 3.1.6 Create Linear Element
        • 3.1.6.1 Line to Beam
        • 3.1.6.2 Line to Truss
        • 3.1.6.3 Connectivity to Beam
        • 3.1.6.4: Index to Beam
      • 3.1.7 Create Surface Element
        • 3.1.7.1: Mesh to Shell
        • 3.1.7.2: Mesh to Membrane
      • 3.1.8: Modify Element
      • 3.1.9: Point-Mass
      • 3.1.10: Disassemble Element
      • 3.1.11: Make Element-Set
      • 3.1.12: Orientate Element
      • 3.1.13: Dispatch Elements
      • 3.1.14: Select Elements
      • 3.1.15: Support
    • 3.2: Load
      • 3.2.1: General Loads
      • 3.2.2: Beam Loads
      • 3.2.3: Disassemble Mesh Load
      • 3.2.4 Load-Case-Combinations
        • 3.2.5.1 Load-Case-Combinator
        • 3.2.5.2 Disassemble Load-Case-Combinaton
        • 3.2.5.3 Load-Case-Combination Settings
    • 3.3: Cross Section
      • 3.3.1: Beam Cross Sections
      • 3.3.2: Shell Cross Sections
      • 3.3.3: Spring Cross Sections
      • 3.3.4: Disassemble Cross Section
      • 3.3.5: Eccentricity on Beam and Cross Section
      • 3.3.6: Modify Cross Section
      • 3.3.7: Cross Section Range Selector
      • 3.3.8: Cross Section Selector
      • 3.3.9: Cross Section Matcher
      • 3.3.10: Generate Cross Section Table
      • 3.3.11: Read Cross Section Table from File
    • 3.4: Joint
      • 3.4.1: Beam-Joints
      • 3.4.2: Beam-Joint Agent
      • 3.4.3: Line-Joint
    • 3.5: Material
      • 3.5.1: Material Properties
      • 3.5.2: Material Selection
      • 3.5.3: Read Material Table from File
      • 3.5.4: Disassemble Material
    • 3.6: Algorithms
      • 3.6.1: Analyze
      • 3.6.2: AnalyzeThII
      • 3.6.3: Analyze Nonlinear WIP
      • 3.6.4: Large Deformation Analysis
      • 3.6.5: Buckling Modes
      • 3.6.6: Eigen Modes
      • 3.6.7: Natural Vibrations
      • 3.6.8: Optimize Cross Section
      • 3.6.9: BESO for Beams
      • 3.6.10: BESO for Shells
      • 3.6.11: Optimize Reinforcement
      • 3.6.12: Tension/Compression Eliminator
    • 3.7 Results
      • 3.7.1 General Results
        • 3.7.1.1 ModelView
        • 3.7.1.2 Result Selector
        • 3.7.1.3 Deformation-Energy
        • 3.7.1.4 Element Query
        • 3.7.1.5 Nodal Displacements
        • 3.7.1.6 Principal Strains Approximation
        • 3.7.1.7 Reaction Forces
        • 3.7.1.8 Utilization of Elements
        • 3.7.1.9 ReactionView
      • 3.7.2 Results on Beams
        • 3.7.2.1 BeamView
        • 3.7.2.2 Beam Displacements
        • 3.7.2.3 Beam Forces
        • 3.7.2.4 Node Forces
      • 3.7.3 Results on Shells
        • 3.7.3.1 ShellView
        • 3.7.3.2 Line Results on Shells
        • 3.7.3.3 Result Vectors on Shells
        • 3.7.3.4 Shell Forces
        • 3.7.3.5 Shell Sections
    • 3.8 Export
      • 3.8.1 Export Model to DStV
      • 3.8.2 Json/Bson Export and Import
      • 3.8.3 Export Model to SAF
      • 3.8.4 Export/Import Model to and from Speckle (WIP)
    • 3.9 Utilities
      • 3.9.1: Mesh Breps
      • 3.9.2: Closest Points
      • 3.9.3: Closest Points Multi-dimensional
      • 3.9.4: Cull Curves
      • 3.9.5: Detect Collisions
      • 3.9.6: Get Cells from Lines
      • 3.9.7: Line-Line Intersection
      • 3.9.8: Principal States Transformation
      • 3.9.9: Remove Duplicate Lines
      • 3.9.10: Remove Duplicate Points
      • 3.9.11: Simplify Model
      • 3.9.12: Element Felting
      • 3.9.13: Mapper
      • 3.9.14: Interpolate Shape
      • 3.9.15: Connecting Beams with Stitches
      • 3.9.16: User Iso-Lines and Stream-Lines
      • 3.9.17: Cross Section Properties
      • 3.9.18 Surface To Truss
    • 3.10 Parametric UI
      • 3.10.1: View-Components
      • 3.10.2: Rendered View
  • Troubleshooting
    • 4.1: Miscellaneous Questions and Problems
      • 4.1.0: FAQ
      • 4.1.1: Installation Issues
      • 4.1.2: Purchases
      • 4.1.3: Licensing
      • 4.1.4: Runtime Errors
      • 4.1.5: Definitions and Components
      • 4.1.6: Default Program Settings
    • 4.2: Support
  • Appendix
    • A.1: Release Notes
      • Work in Progress Versions
      • Older Versions
      • Version 2.2.0
      • Version 2.2.0 WIP
      • Version 1.3.3
      • Version 1.3.2 build 190919
      • Version 1.3.2 build 190731
      • Version 1.3.2 build 190709
      • Version 1.3.2
    • A.2: Background information
      • A.2.1: Basic Properties of Materials
      • A.2.2: Additional Information on Loads
      • A.2.3: Tips for Designing Statically Feasible Structures
      • A.2.4: Performance Optimization in Karamba3D
      • A.2.5: Natural Vibrations, Eigen Modes and Buckling
      • A.2.6: Approach Used for Cross Section Optimization
    • A.3: Workflow Examples
    • A.4: Bibliography
Powered by GitBook
On this page
  1. 3 In Depth Component Reference
  2. 3.6: Algorithms

3.6.10: BESO for Shells

Previous3.6.9: BESO for BeamsNext3.6.11: Optimize Reinforcement

Last updated 7 months ago

An in-depth description of the BESO for shells algorithm used in Karamba3D can be found in . Fig. 3.6.10.1 shows an example which starts off from a rectangular wall which supports two point-loads at each of its upper corners. The result of the BESO procedure is the X-shaped structure shown on the left side.

These are the main parameters that control the optimization process:

"

"Model"

Model to be optimized

"ElemIds"

List of identifiers of shells that take part in the optimization. In case of an empty list (the default) all shells are included.

"LCases"

List of load cases to be considered. Zero is the index of the first load case. Considering the total effect of several load cases amounts to adding up their individual influences on an element.

"TargetRatio"

Ratio of the target mass to the initial mass of the shells in a structure. When determining the initial mass all shell elements of the structure – irrespective of state of activation – count. In the target structure only active elements contribute to its mass. This enables one to apply BESO-components in series.

"MaxIter"

Maximum number of iterations

Under the submenu “Settings” these additional options can be used to further customize the optimization procedure:

"ER"

"ARmax"

The ratio between maximum number of elements to be added per step and all shell elements.

"Nhist"

Number of iterations between those steps which are used for calculating the convergence criteria.

"Conv"

"Rmin"

"Rexp"

"KillThick"

The BESO for shell procedure makes use of a so called “soft kill”-approach. Instead of removing elements from the model they are made very soft by reducing their thickness. With the input-plug “KillThick” a value other than the default 0.00001 m can be selected.

The output-plugs of the “BESOShell”-component return the following data:

"Model"

Model which results from the BESO optimization.

"ModelHist"

List of intermediate models – one for each iteration step of the BESO procedure.

"CHist"

History of the volume weighted compliance of the structure which drives the BESO procedure. When fed into a “Quick Graph” component one can check whether the BESO procedure converged: at the end the chart should be horizontal. If that is not the case try a smaller “ER”-value.

"VHist"

List of values which chart the development of the volume of the shells to be optimized.

"Info"

Returns information regarding the solution process in case something goes wrong.

Is short for evolutionary ratio and defines the ratio between the volumes and of the optimized structure in two consecutive steps: . The sign of “ER” depends on whether elements shall be added or removed. In case that – which is the default –is set automatically: . In case that “ER” is too small, the target mass of the optimized structure can not be reached within “MaxIter” steps.

Relative change of the mass between two iterations cycles apart below which convergence is assumed.

In order to avoid the formation of checkerboard patterns a filter scheme is used for calculating the fitness of individual elements (see , section 3.3.2). defines the radius of influence in meters for determining the element sensitivity. It is thus important to choose this value according to the mean element size. If (the default) then is set equal to the characteristic element length which is calculated as .

Determines how the strain energy at nodes within the distance of the element center is weighted for calculating an elements sensitivity. The weight is determined as . Here with being the distance between a sample node and the center of the element. is the sum of the center distances of all nodes closer than to the element center.

ViV_iVi​
Vi+1V_{i+1}Vi+1​
Vi+1=Vi⋅(1±ER)V_{i+1} = V{i} \cdot (1\pm ER)Vi+1​=Vi⋅(1±ER)
ER<0ER<0ER<0
ERERER
ER=(1−TargetRatio)/MaxIter+ARmax/2ER = (1-TargetRatio)/MaxIter + AR_{max}/2ER=(1−TargetRatio)/MaxIter+ARmax​/2
NhistN_{hist}Nhist​
RminR_{min}Rmin​
w=(Rij/∑Rij)Rexpw =(R_{ij}/\sum R_{ij})^{R_{exp}}w=(Rij​/∑Rij​)Rexp​
Rij=Rmin−RR_{ij}=R_{min}-RRij​=Rmin​−R
RRR
∑Rij\sum R_{ij}∑Rij​
RminR_{min}Rmin​
RminR_{min}Rmin​
Rmin<0R_{min} <0Rmin​<0
RminR_{min}Rmin​
(totalArea/numberOfElements)0.5⋅2(totalArea/numberOfElements)^{0.5} \cdot 2(totalArea/numberOfElements)0.5⋅2
[7]
[7]
62KB
Wall.gh
58KB
Wall_two_loadcases.gh
Fig. 3.6.10.1: BESO for a rectangular plate under two corner loads