cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Stay updated on what is happening on the PTC Community by subscribing to PTC Community Announcements. X

Pipe Thrust Forces

ELSID
8-Gravel

Pipe Thrust Forces

I know Lusk recently posted some files on this, but it was not really what I was looking for. I am trying to be able to generate a table of thrust forces at select junctions in my pipeline. Currently, it is set up for one pressure, but I want to evaluate multiple scenarios in this sheet. Pressure for steady state, test, surge (e.g. 20, 50, 35). The middle one only has a static component, but the others require analysis. The other problem I need to figure out, may be a programing issue, is the restraint for a dead end. The X component using 90 degrees is correct; however, you plug in 0 for your angle and the result is 0. Functions, programming, etc. are all fair game. I'd like a CSV dump to send to a spreadsheet when all is said and done. Your help is greatly appreciated in

24 REPLIES 24
ELSID
8-Gravel
(To:ELSID)

Worked on the file last night. Here is my latest file.

MathCAD 15 M030

Lev
1-Visitor
1-Visitor
(To:ELSID)

Beta of zero degrees means a straight pipe. Where will the thrust come from?

Fred_Kohlhepp
23-Emerald I
(To:ELSID)

For situations with no flow (velocities = 0) there should be no external forces--pressure causes stresses and strains, but there are no unbalanced forces.

Fred, not no flow...no angle, as in a dead end. I think this needs to be a program loop. If b=0 only PA applies.

I think that this whole sheet can be made into a function with a program loop.

ELSID wrote:

Fred, not no flow...no angle, as in a dead end. I think this needs to be a program loop. If b=0 only PA applies.

I think that this whole sheet can be made into a function with a program loop.

Or you could add this condition to F.sx and F.sy for simplicity.

Putting the whole sheet into a program loop will make it very complicated and difficult to check. The current layout is the better option IMO.

Mike, there was no attachement or function. I am having an issue with the B=0 as my loop is still calculation 0 instead of 80 KIP. See F.sx in the attached

Fred, I have a straight run going into a vault using a thrust collar. Structural is asking for the thrust force at the the collar to design the concrete; hence the angle B is zero.

I hate the scalar error in MathCAD. Help? F.sx second value is supposed to be 80 KIP. Updated the file

ELSID wrote:

Mike, there was no attachement or function. I am having an issue with the B=0 as my loop is still calculation 0 instead of 80 KIP. See F.sx in the attached

That's becuase I didn't attached or post any

Have a look at the attached sheet. I have guessed what you want so please correct me if I am wide of the mark.

Fred_Kohlhepp
23-Emerald I
(To:ELSID)

If you have a dead end, by definition (and the continuity equation) there is no flow. And all of the "end cap" pressure would normally react at tension in the pipe wall.

If you're thinking of "water hammer," that's a wave phenomenon, not flow.

Fred Kohlhepp wrote:

If you have a dead end, by definition (and the continuity equation) there is no flow. And all of the "end cap" pressure would normally react at tension in the pipe wall.

Correct and would only create stresses if the pipeline is restrained.

ELSID wrote:

I'd like a CSV dump to send to a spreadsheet when all is said and done. Your help is greatly appreciated in

Can you use WRITEEXCEL function for this?

ELSID
8-Gravel
(To:ELSID)

I posted THRUST3 earlier today. Do I need to set up a counter to extract the scalar value of the angle? Seem illogical but I am confused.

Mike, I did not understand your response above with "you could add this condition to F.sx and F.sy for simplicity"

Please attach file or sample.

Thanks

Ok. I have just looked at your sheet and a littkle confused.

You have 4 values for beta which are assessed. F.sx is dependant on beta, but both p and A are single column vectors, so when you have the condition 'if beta = 0' return p*a - are you trying to return the corresponding value of p*A?

That is SO funny. I my revised sheet from last night does the same thing. That was the reason I was asking about setting up the counter in the post above!

I will continue with my calculation and post when done. Glad to know I was on the right track as I have not touched the vector maths in a long time ... just wish the programing was a little easier for a checker.

ELSID wrote:

That is SO funny. I my revised sheet from last night does the same thing. That was the reason I was asking about setting up the counter in the post above!

I will continue with my calculation and post when done. Glad to know I was on the right track as I have not touched the vector maths in a long time ... just wish the programing was a little easier for a checker.

The programming is a little difficult to follow and I tend to try and limit it when producing official documents.

Updated file. Now I am trying to generate a resultant matrix with the Label, Data, and forces ALL in one dump.

Trying to fill in a new matrix with existing vectors/matrices. Trying to make it look like an excel dump so that others, not using MathCAD can understand the datapoints.

Werner_E
25-Diamond I
(To:ELSID)

ELSID wrote:

Updated file. Now I am trying to generate a resultant matrix with the Label, Data, and forces ALL in one dump.

Trying to fill in a new matrix with existing vectors/matrices. Trying to make it look like an excel dump so that others, not using MathCAD can understand the datapoints.

Is this a question?

Does the follwing help?

1.png

ELSID
8-Gravel
(To:Werner_E)

Werrner, That is what I was looking for. What did I miss? Dumb stack and Augment commands that I am still confused with! Is there different documentation on these commands as the Help file is useless? Thanks

These are very basic commands and only require basic documentation.

augment(A, B, C, ...) Returns an array formed by placing A, B, C, ... left to right.

stack(A , B, C, ...) Returns an array formed by placing A, B, C, ... top to bottom.

Play around with them and you will see.

I always screw these commands up. I was tinkering with them when Werner responded. Is there a reversal of these commands?

Essentially, my "Data" matrix will include a 'header' row. I did not do this as it would screw up the matrix column command.

Grab Werners matrix and parse out only the matrix from row 1 (J1) down. submatrix?

Answered my own question

Message was edited by: El Sid

Yes, submatrix s a very useful function. Unfortunately tables within Mathcad are not very user friendly and have to be dealt with carefully.

This is one of the few aspects of Prime which has actually been improved over M15.

Werner_E
25-Diamond I
(To:ELSID)

ELSID wrote:

I always screw these commands up. I was tinkering with them when Werner responded. Is there a reversal of these commands?

You mean a command which will get rid of some rows or columns?

Yes, and there is more than one way to do it.

You found submatrix() yourself.

To get rid of specific rows you can also use the trim() function. There is no corresponding function for columns, so you will have to transpose the matrix, trim and transpose the resul again.

Werner_E
25-Diamond I
(To:ELSID)

I tend to agree with Mike concerning stack and augment being basic commands and the help info should suffice. As with most things in life you only get proficient by playing around with and making your own experiments and experience.

Here in short at first "Data" and "Thrust" are glued together side by side and this is what augment() is used for.

Then "Label" and the result of augment are glued together one on top of the other and thats done using stack().

Obviously when you glue side by side the row numbers must match, when you glue one on top of the other the columns numbers must match.

ELSID wrote:

Updated file. Now I am trying to generate a resultant matrix with the Label, Data, and forces ALL in one dump.

Trying to fill in a new matrix with existing vectors/matrices. Trying to make it look like an excel dump so that others, not using MathCAD can understand the datapoints.

There is no need to vectorize within your programs and you are now using a For Loop and calling out the scalars using the integer defined by the loop.

ELSID
8-Gravel
(To:ELSID)

Thank you Werner and Mike. Attached is my final sheet. If you see anything goofy, please let me know.

Announcements

Top Tags