Rectangular Patches

Defining rectangular patches is one of the more tedious aspects of building a fiber section in OpenSees. Using the 'quad' patch command, you have to define the four corner points (I, J, K, and L) in counter-clockwise order from I to L around the patch. If you go clockwise, the fiber areas will be negative, which is probably not what you want.

Some time in the mid 2000s, I added a 'rect' (rectangular) patch command that requires only two corner points, I and J. This command is documented–it’s no secret–but, confusion remains about the orientation of the corner points in order to ensure the fiber areas are positive.

Like the immutable laws of reduced dimensionality in Flatland, counter-clockwise means nothing when there’s only two points.

Instead, the requirement here is that the I and J coordinates satisfy (y_J-y_I)/(z_J-z_I) > 0, i.e., the slope of the line from I to J is positive in the section yz plane. If the slope of this line is negative, the generated fibers will have negative area.

Because rectangular patches are so common and easy to mess up, pull request #851 makes a simple correction so that both rectangular patch scenarios shown above will give positive fiber areas.

If you must create patches with negative fiber areas, you can still define a quadrilateral patch with corner points in clockwise order. I can see defining negative fiber areas for layers, e.g., to avoid double counting concrete and reinforcing steel bars in RC sections, but I’m not aware of a practical application where you would intentionally define patches with negative fiber areas.


For example 'rect' patch code, see other posts, e.g., here and here.

One thought on “Rectangular Patches

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.