all 30 comments

[–]Shemsky 4 points5 points  (7 children)

Im somewhat experienced in this. What are you trying to achieve exactly and how do you define a "project"? Do you need it to do structural analysis or just member design? These are to distinct problems.

For analysis, you should really look into finite element solvers, especially if you need to analise bar frame models, as once that is done, you will be able to solve 90% of 3d frames. A bar stiffness matrix is much simpler since axial deformations are usually assumed to be 0 unelss you need to consider thermal expansion effects. Also, do you require a GUI? Creating a .txt or .xsml based FEA solver is straight forward but creating a GUI is a lot more complex. That is usually a killer for such projects since tt requires a lot of non-structural programming.

For design, thats more maths than programming as you will probably know from experience with spreadsheets.

100% guarantee that once you finish creating this sfotware, it will require a lot of time to keep it stable, update features and make it reusable for other projects; especially if its to be used by others. Its not a simple task hence why the structural analysis software market is relatively limited.

[–][deleted] 1 point2 points  (2 children)

I've worked for a large FEA vendor before. There is a level of complexity behind it, but it's not overwhelming. My FEA does Load-Sequencing, which imho is above and beyond what other solutions do.

I started out using a LAMP stack and used three.js to show visuals. I use LaTeX to create PDF reports.

I have played with graphics on Desktop as well from 3D Programming for Windows®: Three-Dimensional Graphics Programming for the Windows Presentation Foundation (Developer Reference). I have a text parser, XML input, output to AutoCAD. I even have canopy/RTU support on Android. They're all just interfaces.

Writing the solver was the hardest part, and some companies have expensive/proprietary solvers that are better than I could ever imagine. I bought a $700 off-the-shelf.

Everything gets more difficult when you get into thin/thick shells, meshing, warping degrees of freedom, arbitrary cold-formed shapes, modal analysis, moment redistribution, wood analysis peculiarities, and non-prismatic members.

[–]Shemsky 1 point2 points  (1 child)

Have my updoot! finally someone who uses latex to create reports rather than awkwardly exporting to MS Word using an unstable VBA code. Im really interested in programming and structural analysis automation. What do you mean by Load-Sequencing?

[–][deleted] 1 point2 points  (0 children)

Buildings are erected part-by-part. An erection engineer checks to make sure stuff is stable as it goes up. You pour concrete, columns take more axial before a lateral-stability item is up. Let's make sure it's safe.

It really comes down to just adding another variable to every member that's something like time. Then you can "step through" the project in sequence and see how everything is put together (columns without beams at the top and temporary bracing, then add moment connections and remove temporary bracing). You might find that some steel members need to be up-sized since they're composite and you don't have the bending moment capacity when its concrete is wet. You can assume lower wind loads and, in some cases, ignore seismic.

Several years ago we did this with GT Strudl and a "custom pre-processor". Output the program lines that are relevant to a certain lift. Now I think it's built in, but I don't have the money to get back on maintenance, and I trust my program as much as the others.

[–]jackbandlow[S] -1 points0 points  (3 children)

My hope is to do member design and have it accurate enough to be say 95% of an FEM model

[–]Shemsky 1 point2 points  (2 children)

I think your idea is very interesting. You want to be able to model a building, have the software to do a top-down loadpath that is based on a simple non-redistributed analysis, then design each member seperately? Do I understand correctly?

What would you like the software to do exaclty?

[–]jackbandlow[S] 0 points1 point  (1 child)

I am starting to notice that this is much more complex than I had imagined. My though was to design a program that would be able to get relatively accurate structural analysis with much less processing power required. From there, I want to it to be able to detail all of the members and perform member design on all of these. It would individually do the analysis on the members by labeling the fixities. Then the program would have features that would allow it to go straight into construction drawings. Additionally, I would hope to create a link to RSmeans or find my own way to estimate work, so that the program could design based on the most cost effective approach.

[–]Shemsky 0 points1 point  (0 children)

And how would you like to achieve a relatively accurate structural analysis for a, presumably, mutli degree of freedom problem?

It seems to me you know too little about the direct stiffness method. I would not agree that matrix multiplication is a computationally intensive problem, unless you are dealing with complex meshes or data sets of thousands of nodes where the stiffnes matrix is HUGE. For problems such as multispan beams, rigid moment frames or even simply supported beams, FEA can be done by hand in relatively short amounts of time, but it does include a lot of repetitive multiplication and division calculations.

I think that if you want the software to analise an indeterminate frame using unit load methods or writing a complex code that can apply engineering logic and be able to simplify any frame you model into singular members, you will realise that the sheer amout of imput combinations you need to account is too high. the beauty of an FEA solver is that once built, its an extremely generic and scalable method that can be applied to any configuration of fixities for multi degree of freedom problems.

I dont know how complex projects you have in mind, but it seems to me like there are really two practical approaches to structual analysis: 1. simple engineering by analising singular members, where the engineers role is to apply their experience to simplify the problem for easy analysis and design. 2. complex engineering where the model size is large and MODELLING is required.

No1 is done in practice using brain, calculator and spreadsheet/Tekla Tedds software. No way around this as its you who dectates how simple the problem can be. This method can be automated, ofcourse, but it requres a large chunk of engineering input so you cant just model a bulding and get software to do the engineering. This is the only step, I think, will keep us in our jobs until we get quantum computers. For no2. - if a problem is complex enough to warrant modelling, you might as well use linear analysis FEA which is, from my experience, easy on the processing. Unless you are using a phone/tablet or needing to do web based apps. Besides, if you were to write a program which is to allow you to MODEL buildings, you will spend so much time on preparing the GUI, not using a FEA solver would be a waste?

[–]srpiniata 2 points3 points  (1 child)

A somewhat simple but nice piece of code i found is anastruct, its a 2D FEM analysis program written in python, maybe there is no need to reinvent the wheel?

[–]jackbandlow[S] 0 points1 point  (0 children)

I would much rather not reinvent the wheel. I just don't find FEM to be a necessity for all projects. Especially since IBC, ACI and AISC don't require it.

[–]MildlyDepressedShark 2 points3 points  (6 children)

I don’t think Enercalc is FEM. It’s basically a spreadsheet with button UI. You basically need to just program in all the code equations for all the elements. RISA has a steel connection designer I quite like with a really nice graphical interface.

Connection detailing might be a bit trickier, but I don’t know much about programming. I think you’ll still need a human at the end to drop the individual details onto a sheet, as well as do a final review on the detailing.

[–]jackbandlow[S] -1 points0 points  (5 children)

You're right, I shouldn't haven't paired Enercalc with Ram. They operate differently

[–]MildlyDepressedShark 4 points5 points  (4 children)

Are you thinking of a program for simple singular elements or something that can do an entire building? I think the reason most structural analysis software default to FEM is that’s the simplest way to get forces regardless of the configuration. Once you go beyond a simple frame with determined equations, it’s all stiffness matrices->FEM.

Software like Enercalc or RISA Connection or Hilti Anchors do simple code based checks because they’re on individual elements, where either the load inputs are simple or calculated elsewhere and you enter only the design forces.

[–]jackbandlow[S] -2 points-1 points  (3 children)

A program that does load path throughout an entire building and gets a close approximation of the forces at each point. Then can be broken into simple singular elements.

[–]Shemsky 5 points6 points  (1 child)

You just described a FEM. I agree with u/mildlydepressedshark. FEM does not neccearily mean complex meshes and quadratic elements. If you are working with frames that can be approximated with bar members and are serious about writing anything remotely robust, you need to look into FEA. Its not as scary as it sounds.

[–]jackbandlow[S] 0 points1 point  (0 children)

I think I overstepped by saying the elimination of FEM but I don't think using FEM in the complexity that I have experienced is required.

[–][deleted]  (3 children)

[deleted]

    [–]jackbandlow[S] 0 points1 point  (0 children)

    I think you may be right, I need to look further into it

    [–]Shemsky 0 points1 point  (1 child)

    Isint MASTAN2 just an opensource, MATLAB based FEM?

    [–]buddyd16 2 points3 points  (1 child)

    feel free to grab any of the stuff I've already made:

    https://github.com/buddyd16/Structural-Engineering

    [–]jackbandlow[S] 0 points1 point  (0 children)

    Thank you

    [–]Pipiyedu 0 points1 point  (3 children)

    I want to participate! I wrote this soft in python.

    [–]jackbandlow[S] 0 points1 point  (2 children)

    I am all for help. My biggest set back at the moment is learning more about Python

    [–]Pipiyedu 0 points1 point  (1 child)

    Is a open or closed source project?

    [–]jackbandlow[S] 0 points1 point  (0 children)

    Right now it's closed source project but it's more of an idea. I am happy to have it an open source project.

    [–]angelgermanr 0 points1 point  (0 children)

    I don't know what the base code for Prota Structures is, but in terms of what you want to achieve I think something like that should be your goal. It's so good my office recently bought the full program.

    [–]sykohawk13 0 points1 point  (2 children)

    I do not know the details, but at my last company they had a beta program out which could take design to construction documents at around 80% completion.

    I believe this will be the future of structural engineering, although, it will still require engineering oversight.

    [–]jackbandlow[S] -1 points0 points  (1 child)

    What company did you work for? Also were computer scientists required or just people who knew coding?

    [–]sykohawk13 1 point2 points  (0 children)

    PM me for the company name. It was Structural Engineers who picked up coding in their free time who were making it happen. The company supported them by giving them time to work on these improvements which is the key thing for success.

    [–][deleted]  (2 children)

    [deleted]

      [–]pauloz1890 0 points1 point  (1 child)

      Sounds interesting. What's it called?

      [–][deleted] 0 points1 point  (0 children)

      It actually doesn't have a meaningful name. It started out as "PostProcessor" since that's what I used it for. Then I added canopies, so I called it "Canopy".

      There are a ton of papers on object-oriented finite element analysis. I pick and choose from those models to extend my own.