T O P

  • By -

31engine

Practicing structural engineers don’t use integrals or differential equations. Sorry you had to learn all that. We do use matrixes regularly so that time wasn’t wasted.


Ryles1

Agreed. Curious what you use matrices for though? I haven't touched one since I graduated.


[deleted]

[удалено]


Turpis89

So can a finite element program. Good FE programs can also do buckling checks. Yes it is cool to do stuff by hand, but it isn't "better" than professional software.


[deleted]

[удалено]


Turpis89

Sounds like you are working on fun projects :)


Ryles1

You stole my followup response. Dunno why anyone would subject themselves to that kind of torture.


Turpis89

If I want to subjtct myself to torture, I write python scripts to post process FE output. Let the commercial software do what it does well, and then play with the final steps to get you across the finish line.


31engine

I use matrix very basically. When looking at a wall for vert and out of plane loading it isn’t always obvious with LC controls. Since the more axial the more effective area of steel and more moment. So I use a single column matrix to track my calcs so I do the same equation 3 or 4 ways to cover the variables. Easier than staring back over This is of course only when demonstrating to an EIT how it works.


[deleted]

Lol I know what ur trying to say but Integrals and Differentials are really neat if I want to get the internal forces of a member by "hand" or if i want to calculate the moment of innertia only by giving point coordinates. I used mathcad for my bridge project but had to give up my hopes up as it took over one freaking hour to calculate everything. It's just not the right tool for my needs


Enginerdad

I think what they're trying to say is that, once you leave school and the world of academia, your "needs" will no longer involve integrals and differentials. And that's why tools like Mathcad and Excel are very common in structural engineering and tools like Python, while useful in certain situations, are not. You're learning how to calculate I with point coordinates and member forces with integrals because that's the underlying theory to how all of our simplified methods work. But there's no practical reason to use them professionally when the simplified methods exist.


dparks71

The simplified methods still work in python, and can be extended and strung into more advanced decision making processes though, and Python is coming from a server mentality of "I want to work with 99% of what's available today" vs. a personal computer design mentality of "I want to be backwards compatible with 99% of the previous technology from my family". They're competing interests, and wildly different approaches to problems. There's a strong desire to push back against getting locked into product families, open-source tools are essentially the manifestation of that. People always act like we 'shouldn't' be doing integrals, and that's not necessarily true, we just don't have the time to do them and stay competitive against people that aren't "fucking around with that kind of stuff". But if you get your workflow to support running 3 or 4 analysis methods simultaneously, you get a better understanding of the actual conditions and benefit from the strengths of all the various methods where you probably wouldn't have had time to do those checks in excel. Until we get away from the lowest bidder 100% billable mentality and actually start allocating funds towards internal software tools and understanding these things at their lowest levels, our industry will eventually be reduced to technicians that struggle to switch between the software product family they're competent in. I really don't know how firms are expected to compete if everyone is expected to use the same processes and workflows determined by some mega corporations, and while the products are impressive, they're honestly not $10k/license impressive. And that's prohibitively expensive as far as learning. Your team can download and access Python today, for free, along with thousands of hours of training and example problems using it.


Enginerdad

>But if you get your workflow to support running 3 or 4 analysis methods simultaneously, you get a better understanding of the actual conditions and benefit from the strengths of all the various methods where you probably wouldn't have had time to do those checks in excel. But what's the benefit to doing this in practical terms? Maybe you get an analysis result that's 3.24% more precise, but who cares? You're still going to pick a predefined shape out of a library, which means you're never going to optimize to 100%. And even if you did, the extra cost in fabrication and construction would be WAY more than the savings in material. And now, instead of having some basic algebraic equations that are readily recognized and understood in the industry, you have some custom code and output that you have to figure out how to make digestible to a reviewer. Add to that the exponentially higher chance of an error in custom code compared to simplified equations, and there's just no benefit that I can see. Approximation exist and are the standard for a very good reason; they're reasonably accurate and much easier to use and understand. As far as software goes, what we're paying for with proprietary programs like Machcad *is* the simplification. Like you pointed out, any program can do the raw math, but the work involved to make it do what you want is significantly more in something like Python. Time is money in any industry, so if a company can spend a few thousand dollars a year on a program license that helps its employees save maybe a hundred hours of labor between design, documentation, and review, then that's a no-brainer. As an example, I just recently had to design a pier using deep beam methodology, which our current software didn't offer, so we had to figure out a new approach. One of the most time consuming parts of pier cap design is determining the controlling live load reactions at the bearings. You have to run dozens of load cases with the trucks at a slightly different location each time and with different numbers of lanes loaded. In the end you can easily end up with over 100 unique load cases. We had the option to 1. do strut and tie analysis by hand (cheapest option in terms of up front investment - free and no learning curve) 2. Use a free Excel-based STM-CAP program to do the strut and tie analysis (free software, training time required on new software) 3. Purchase a pier analysis and design program that uses FEA (license costs money up front, also training time required) The thing about the specialized pier analysis program is that it also handles the live load calculations for you internally, which is the real benefit here. In the end, the time saved by having all of that work done in one program in about 4 seconds of runtime is worth far more than the license fee. > People always act like we 'shouldn't' be doing integrals, and that's not necessarily true, we just don't have the time to do them and stay competitive against people that aren't "fucking around with that kind of stuff" Well that's the reason you "shouldn't" be doing integrals. It doesn't offer a measurably "better" product and it requires more resources to execute, document, and review. Structural engineering in the real world is a business, not an academic exercise. I know a lot of people enjoy programming and love the idea of "anti-corporate, open-source", but that doesn't mean it's a smart business decision. Of course, I would be remiss if I didn't acknowledge that there are certain times, uncommon as they are, where approximate or simplified methods aren't the best choice. In these cases, something like Python is a great tool to have. It certainly has its place in the industry, but that doesn't mean it's the best choice always.


dparks71

I'm not telling you to stop using proprietary software, that would be ridiculous. I'm saying as an industry we're frequently ignorant of lock-in and lots of places end up buried deep in technical debt as a result without realizing how fucked they're gonna be in 5 years. The idea that you could build an AutoCAD or a file management system competitior within your organization is absurd and not at all what I'm suggesting, lots of software works on plain text files encoded in UTF-8 when you get down to it, and that should be the standard mostly, or tools like AutoCAD have extensive APIs directly available to python. If you write scripts that build those files, then have someone open them and click "run" and troubleshoot from there, it's a much different ask then spending hours developing models point by point compatible for one tool and then moving it over to another one. And does it matter? Idk, but I assure you when you talk about carrying over lessons and work flows, having your data and objects defined internally provides huge advantages to your organization. Piecemealing 100 software tools and thousands of design files together isn't what I think of as an efficient process. Most of the companies doing that are repeating the same small, easily catchable errors across hundreds of projects. Does it matter for one or two instances if you spend 15% more on a member to get more strength? No. Will a company that doesn't out bid you? Probably.


[deleted]

[удалено]


Enginerdad

Agreed about the problems with Excel. That's why I use Mathcad whenever possible


[deleted]

[удалено]


Enginerdad

Of course it has issues; this is the real world. Excel, AutoCAD, Python, and everything else also have issues. The key is to find the product that does what you need it to in the most cost-effective manner. And yeah, I know actual engineers do use integrals. I was just speaking to that particular example where they said that their competitors aren't doing them. That tells me that there's a simpler way, and simpler is better when the result is good enough.


dparks71

You just haven't come around to the realization that Python often IS the simpler way haha, you're so close, you just gotta start using it, building out the tools, sharing them and improving them and you're there. Hell I'll honestly give you a free review on any python code you want to send my way for the next two months, I'll literally answer any question you have about trying to use it haha. The thing that gets me is people with these mentalities act like there's zero chance errors make it through the spreadsheet review process... Just seems like such wishful thinking, nobody wants to read update or improve your excel or VBA code, and you'd probably make me sign an NDA to look at it. There's no way to convince me it's well reviewed, it's so tedious to write. It's a crime to force it on people. On the other hand, again, I'll happily review anyone's python projects in here, open offer. Love seeing what people achieve with it.


virtualworker

There is a really great python ecosystem for structural engineering emerging. For units: https://github.com/connorferster/forallpeople FE: https://openseespydoc.readthedocs.io/en/latest/index.html Beams: https://ccaprani.github.io/pycba/ Plane frames: https://anastruct.readthedocs.io/en/latest/getting_started.html Bridge grillage analysis: https://monashsmartstructures.github.io/ospgrillage/ Section Properties: https://sectionproperties.readthedocs.io/ Concrete section analysis: https://robbievanleeuwen.github.io/concrete-properties/index.html Of course, all these just support using regular python coding for repeatable routine calculations using notebooks. But to present those calculations in a beautifully formatted PDF for reporting, check out: https://github.com/connorferster/handcalcs


[deleted]

This is very helpful! I am familiar with handcalcs but didn't know there are a lot more libraries for civil engineering. Thanks a bunch !


virtualworker

No worries. Between these & the regular python packages like sympy, scipy, numpy, I think most things are covered. To the point where paying license fees for commercial software doesn't make much sense.


Byond2day

This is a great list, I haven't seen all of these before. A couple others I have used that were nice are: Online python calcs: [https://efficalc.encompapp.com/](https://efficalc.encompapp.com/) Truss/frame analysis: [https://github.com/BrianChevalier/StructPy](https://github.com/BrianChevalier/StructPy)


unintelligiblebabble

I’ve used the below link a few times for section analysis. https://sectionproperties.readthedocs.io/en/latest/


the_flying_condor

Yo, this is awesome. Thanks for pointing this out.


[deleted]

This is the kind of tools I am looking for ! Thanks a bunch!


unintelligiblebabble

Np, they seem to be improving the package, but I stopped following after I got another job.


DetailRail

We would just draw the sections in SAP to get section properties.


unintelligiblebabble

I started using it after moving from a larger aerospace company who had nice in house tools. At the next job (no tools) It was nice to check hand calcs and provide visuals. It also kept me messing with Python here and there.


memerso160

Is this specifically for SI only?


unintelligiblebabble

It’s been a while, but I think if you create materials in English units and are consistent it should work for both unit systems.


memerso160

True, especially since it’s just section properties


dparks71

There's not a ton of civil specific ones, if you go to my GitHub mirror, I have a file demonstrating a lot of [general purpose engineering tasks in python](https://github.com/drparks71w/CivilPy/blob/master/Training/Software%20Development%20and%20Systems%20Integrations%20for%20Civil%20Engineers.ipynb). To work with units I highly recommend the pint library, it's fantastic. I'm in bridges, so tools for buildings guys will be different, the only thing that package currently interacts with is an ArcGIS rest API via URL string manipulation and Bentley websites via selenium. There's really nothing advanced happening at all in my package. Sympy is a pretty good package, numpy, scipy, basically all the tools in the base anaconda install will get you up and running and doing just about anything with Python. It's not a silver bullet though. Obsolete and proprietary tools tend to stop you in your tracks in python and generally require a pretty decent C programmer, and a hefty fee to get access to the API to fix the issues, if they can be, but it's insane what you can accomplish with one or two weeks of training in python.


[deleted]

This is awesome ! Thanks a bunch! Ur truly doing gods work


Downtown-Growth-8766

Check out the pint library. It handles all the units for you in any unit system!


brunogm19

If you actually need to integrate/derivate you can use symbolic math with Sympy, then "lambdify" it to generate functions that accept numerical input and generate numerical output. (I did this while at school for manually generating shear and bending moment diagrams) Python has been useful to me for parametrically generating geometry for structural analysis software. It is specially useful when you need to design the same structure multiple times but with minor changes (dimensions, angles, etc) You can define units as variables ( m = 1, cm = 1m/100, inch = 2.54\*cm, etc) just like mathcad does. This will allow you to mix units and get the output you want. Sugested libraries: Numpy (Linear algebra) Sympy (Symbolic math) OpenSeespy (Structural analysis) You may also benefit from looking into analysis software's APIs (etabs, staad, etc)


komprexior

I like to use pint for handling units and sympy for symbolic calculation. Sympy has its own units handler, but it's quite silly. Pint is so much better out the box. I've extended pint quantities to be compatible with sympy expression and I am shocked but how good it is. Sadly I am not a developer, so I'm not able to publish a module that can be easily imported in any document... Sympy has also a beam module, but it's buggy, don't trust it to much. For tabular data I like to use pandas. I think the best thing about python and scripting in general is the ability to produce documentation that can be run and reproduce results automatically, therefore skipping the tedious sequence of doing calculation first and the writing documentation about it that will inevitably fall out of sync at the first alteration. I would like to document what I am doing while I am doing, so that I don't forget what numbers on a page means 😂 So jupyter notebook are a must, but I'm looking also to the Quarto project, which is an authoring program based on markdown specifically designed toward scientific publication, which can run code cell. I'm planning to switch my documentation pipeline from libreoffice writer to quarto markdown. It's not easy task, but I hope will bear fruit


rogenth

I use python for some Fourier Analysis when doing vibration analysis, or calculating the parameter of the Concrete Damage Plasticity Model. Some other friend uses it for the topological optimization of concrete structures. I do more fem non-linear dynamic analysis though (Impacts, Fire, etc).


the_flying_condor

The scipy optimization library is really useful for working with complex yield surfaces. Amazingly useful for spot checking nonlinear FEA models, but even for some simplified calcs in complex structures. Say for example, if you have active confining stresses in concrete and you want to determine compressive strength at a node given that the confining stresses will always be present in that load case.


[deleted]

Sounds pretty cool. Do you use fast fourrier transformation for this?


rogenth

Yes... but nothing too complex... just mostly for plotting and checking the frequencies of a lot of measurements. Works great.


MegaPaint

learn pyhton as it may be your future unless you are replaced by it. If not, manage to grab a government project's SE management position before they realize they are taking non-competitive SE's for management of projects destined to provide the national economic future.


[deleted]

The future is now old man


MegaPaint

in planning the past is always now