## How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

## How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

(OP)

I have written a plane frame program in c++ that I am relatively satisfied with. It allows the user to set some constraints on the members (max/min width and depth) creates different designs from the standard steel shapes and then runs a bunch of analyses corresponding to different load cases and checks max forces versus max capacities according to AISC 360. One capability that I would like to add is the ability to designate a member as tension only. The only way I can figure out how to do this is to run an analysis, check the tension only members, and if they are in compression set the stiffness to zero and rerun the analysis. I am just wondering if there is some other better way out there. I end up running a bunch of analyses, for linear, number of analyses = number of designs * number of load cases. For the scope of things that I am working on it usually takes a couple minutes to run all those. If I have to run each analysis twice then it will take twice as long. Is there a better way? If it is a symmetric structure then is there any downside to just not modeling the tension only members that I know a priori will be in compression. Any advice is welcome, thanks.

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

Here's the logic I would use:

1)Run an analysis

2)Check the tension only members

IF - they are in compression THEN set the stiffness to zero

3)Rerun the analysis

4)Re-check the same members net length and if it now is less than the original - re-set the stiffness to its original

5)Re-run the analysis

6)Repeat items 2) - 4) until no further change in stiffness is required.

Check out Eng-Tips Forum's Policies here:

FAQ731-376: Eng-Tips.com Forum Policies

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

As opposed to smacking all the load on it at once and then cycling like JAE suggests, as I'd imagine you can get things flip flopping back and forth adding/deleting braces with no convergence (need brace, don't need brace, need brace, don't need brace,.... etc). Especially if there are lots of non-linear brace elements of varying stiffness with large shifts in the center of stiffness when a brace is removed that was previously active. Once you reach a state where there are no successive changes in members being added or removed you can scale up to the total loads.

Obviously you need to loop in any method adopted, so analysis times will obviously increase accordingly.

Another way to maybe do it for lateral load cases is simply is to have a case with a nominal lateral load only in the same principle direction as the final load cases lateral load vector. Run this first to determine which braces to eliminate without the complication of having all the gravity loads, etc (probably make things run faster without all the extraneous loads?). This should be a good gauge of what braces will be removed after addition of the gravity and full lateral loads are included. Then with the updated geometry with certain braces removed just run the full analysis once, and have a check to ensure the braces left are all in tension. Obviously for every lateral loadcase in a 3D structural analysis you need to do this exercise.

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

1)Run an analysis

2)Check the tension only members

3)The ones that are in compression (i.e. the distance between their end nodes is less than the original length) should have their stiffness adjusted. I like to use something like 1.0E-6*initial stiffness. Though you might set this to a variable that you can change.

4)Rerun the analysis

5)Check the tension only members, the ones that are still in compression can be reduced in stiffness again (if compression force is above a certain tolerance).

6)If any of the tension only members that had gotten their stiffness reduced are now in tension (based on length not force), then re-set them to their initial stiffness.

7)Re-run the analysis.

My point for introducing tolerances and not setting stiffness to pure zero is that you want to avoid divergence. This still isn't a true "non-linear" solution. For that you would increment the load and adjust the stiffness before applying the next load increment. But, it's using a number of the same concepts to avoid divergence.

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

Essentially the issue is that if you have multiple tension-only members in a model, and you find that all or many are in "compression" after the first iteration, and then you convert them to low stiffness - your second run may show that, with the NEW matrix and stiffness configuration, that one or more tension-only members are back in tension. So you may have multiple cycles where your model must converge.

Subsequent runs can cycle back and forth indefinitely, which is problematic....perhaps why JoshPlum suggests a less abrupt stiffness change.

I was trying to describe the process that I thought RISA uses, of which JoshPlum knows much better I'm sure.

Check out Eng-Tips Forum's Policies here:

FAQ731-376: Eng-Tips.com Forum Policies

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

AISC requires a nonlinear analysis (or other options) so I guess it's not a big deal to iterate a few times because you already have to anyway. I would guess that this sort of thing would converge super quickly (probably usually 1 iteration).

As a side note on the scale of projects that I am working on the increase in internal forces because of geometric nonlinearity is always insignificant. Has anybody else noticed this? Especially with steel that satisfies the ductile members provisions.

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

I'd say that the P-Large delta effect can be significant, but the P-little delta effect is almost always insignificant unless you have really slender members.

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

I wonder if removing the member completely is the most expedient thing to do ... maybe this is a drastic change to the structure's stiffness matrix, how will the loads redistribute ? I wonder, and maybe some testing shows the way to go, if you should reduce the stiffness significantly, like to 10% (1%?) and re-run.

Then maybe consider pre-tensioned cables, which can carry a small compression load ?

another day in paradise, or is paradise one day closer ?

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

another day in paradise, or is paradise one day closer ?

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

Check out Eng-Tips Forum's Policies here:

FAQ731-376: Eng-Tips.com Forum Policies

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

## RE: How to Implement Tension Only Members in a Matrix Stiffness Plane Frame Program

Check out Eng-Tips Forum's Policies here:

FAQ731-376: Eng-Tips.com Forum Policies