Skip to content

Commit

Permalink
GITBOOK-77: update boundaries and sag
Browse files Browse the repository at this point in the history
  • Loading branch information
juney-lee authored and gitbook-bot committed Nov 11, 2024
1 parent 23806ca commit a9447e6
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 5 deletions.
Binary file added gitbook/.gitbook/assets/RV_sag-examples.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@

An opening is a chain of edges at the boundary of a `Pattern`, in between two support vertices. In general, openings in shell structures cannot be straight in plan, unless there are no internal forces in the non-boundary edges at the openings (e.g. barrel vault or cross vault).

`RV_pattern_relax` relaxes the entire `Pattern` to introduce curvature to the openings and boundaries. The relaxation is done based on the _force density method (FDM)_ ([Schek, 1974](https://www.sciencedirect.com/science/article/pii/0045782574900450)), which calculates the equilibrium shape by assigning a ratio of force to length (force density, **q**) to each element or edge in the structure, which allows for the efficient computation of form-finding solutions. 
`RV_pattern_relax` relaxes the entire `Pattern` to introduce curvature to the openings and boundaries. The relaxation is done based on the _force density method (FDM)_ ([Schek, 1974](https://www.sciencedirect.com/science/article/pii/0045782574900450)), which calculates the equilibrium shape by assigning a ratio of axial force magnitude **F** to length **L** (force density, **q=F/L**) to each element or edge in the structure, which allows for the efficient computation of form-finding solutions. 

Force density, is the ratio of the force in an element to its length. Mathematically, q=F/L, where F is the force in the element, andL is its length. Instead of solving directly for lengths and forces, FDM assigns these force densities as fixed parameters, simplifying the equations. The method then solves for equilibrium by ensuring that forces at each node balance in three-dimensional space. This involves setting up equilibrium equations for each node in terms of force densities rather than individual force magnitudes and lengths.
Instead of solving directly for lengths and forces, FDM assigns these force densities as fixed parameters, simplifying the equations. The method then solves for equilibrium by ensuring that forces at each node balance in three-dimensional space. This involves setting up equilibrium equations for each node in terms of force densities rather than individual force magnitudes and lengths.

Because the force densities are constants, the equilibrium equations become linear, which makes FDM computationally efficient and stable. This linearity allows FDM to handle complex shapes and materials without iterative, nonlinear solutions required by some other methods.

The default value for **q** for all edges are 1. When `RV_pattern_relax` is triggered, FDM is applied to the Pattern using the **q** values of all the edges. [`Identify supports`](../boundary-conditions.md) is a crucial step to complete before relaxing the `Pattern`, as the number and location of the supports will impact the geometry of the resulting relaxed `Pattern`. 
The default value for **q** for all edges are 1. When `RV_pattern_relax` is triggered, FDM is applied to the `Pattern` using the **q** values of all the edges. [`Identify supports`](../boundary-conditions.md) is a crucial step to complete before relaxing the `Pattern`, as the number and location of the supports will impact the geometry of the resulting relaxed `Pattern`.  

{% hint style="danger" %}
Make sure to have supports defined before relaxing the `Pattern`!
{% endhint %}
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@

<table><thead><tr><th width="221"></th><th width="253"></th><th></th></tr></thead><tbody><tr><td><img src="../../.gitbook/assets/RV_boundaries (1).svg" alt="" data-size="original"></td><td><p><strong>Rhino command name</strong></p><p><code>RV_pattern_bnoundaries</code></p></td><td><p><strong>source file</strong></p><p><a href="../../../plugin/RV_pattern_boundaries.py"><code>RV_pattern_boundaries.py</code></a></p></td></tr></tbody></table>

The treatment of the openings are very much dependent on the type of vault that is being investigated. This feature enables users to control the curvature of each opening individually by defining the _sag_ value, which is calculated based on the percentage of the length of the opening. The $$q$$s for the boundary edges are automatically calculated based on the target _sag_ values, which are then used for the relaxation using the force density method.&#x20;
The treatment of the openings are very much dependent on the type of vault that is being investigated. `RV_pattern_bnoundaries` enables users to relax the Pattern in a much more controlled way by defining the _sag_ value for each opening, which is calculated based on the percentage of the length of the opening. The $$q$$s for the boundary edges are automatically calculated based on the target _sag_ values, which are then used for the relaxation using the same force density method used in `RV_pattern_relax`. Default sag value of 10 is applied to each opening.&#x20;

***

### Sag

Description
Below are variations of a simple 10x10 grid pattern with different sag values applied to each opening. The sag values can be adjusted uniformly across all openings or varied individually for each one.

<figure><img src="../../.gitbook/assets/RV_sag-examples.png" alt=""><figcaption></figcaption></figure>

0 comments on commit a9447e6

Please sign in to comment.