robbievanleeuwen / section-properties

Analysis of an arbitrary cross-section in python using the finite element method.
https://sectionproperties.rtfd.io
MIT License
419 stars 92 forks source link

Output E & G with .display_results() #6

Closed Agent6-6-6 closed 2 years ago

Agent6-6-6 commented 5 years ago

Is your feature request related to a problem? Please describe. When material properties are defined, some of the outputs are changed within .display_results() to output as Exx and Gxx. To work back to the base property value (like back calculating I_xx from E*I_xx) it would be useful to have the material properties that were defined for the analysis to be output for future reference with the .display_results() command (otherwise its sort of hidden away in the code and isn't too evident from the output what was assumed).

Possibly also outputting yield strength + other material parameters like any modular ratio/Poisson ratio that might need to be applied or has been used in the analysis?

It's also not clear to me how these outputs with material properties applied are to be read when multiple materials are defined, I would assume the properties are transformed for one of the materials (but which one?), its not something that I can find in the API documentation or covered in the outputs and I think this might need further clarification.

An additional thing that comes to mind regarding materials is the bulk density for a given material, and hence weight/m could be calculated and reported.

Describe the solution you'd like Some way of knowing what material the transformed section properties are being output in if some of the section has been scaled/transformed by modular ratios.

Describe alternatives you've considered Possibly forego the multiplication with E/G/fy and just output these values and state which material the (composite) properties are based on.

I would also maybe consider a warning of sorts in the documentation that while you are calculating the plastic section modulus, that for design purposes in some codes local slenderness requirements may dictate that the actual section modulus to be used is lower due to use of effective section moduli which account for reductions in capacity due to local buckling of plate elements (i..e compact/non-compact/slender sections in NZS3404/AS4100 or Class 1/2/3/4 sections in Eurocodes).

Possibly also consider having an option on which material you would like the properties to be output based on to add a level of control on the desired output material properties (i.e. for a timber beam being strengthened with a steel plate it might be more useful to output properties in terms of the timber material, but for a composite steel beam with concrete slab the properties might be more normal to output in terms of steel materials).

Additional context Thanks for adding in the other requests I had!

robbievanleeuwen commented 5 years ago

Hi Agent6-6-6,

No transformation takes place during the computations for composite materials. The properties are modulus weighted for each material type. For example if you had a steel shape with E_s and I_s next to a concrete shape with E_c and I_c such that they were positioned with their centroids aligning, the resultant bending stiffness would be:

EI = E_s * I_s + E_c * I_c

It is this value that is output in display_results(). If you wished to 'transform' the section using concrete as your base material to get an effective concrete second moment of area you can simply divide the reported bending stiffness by the elastic modulus of concrete:

I_c,eff = EI / E_c

This effectively transforms the steel components by E_s/E_c. This same logic applies to all other composite section properties, e.g. EA, EQ, EZ, GJ, GIw. I haven't implemented the calculation of the yield moment yet. At the moment the yield strength is only used to calculate the plastic centroid and plastic moment - both of which assume the entire cross-section is at its respective yield stress so there's no trickery here that would necessitate outputting anything to do with the yield strength.

In terms of additional values to output I will add the effective Poisson's ratio which is used in the computation of warping properties. I will also update the documentation to make this clearer. I will also add a density option such that the weight can be calculated.

Let me know if the above explanation makes sense.

Robbie

robbievanleeuwen commented 5 years ago

Summary of features to implement:

Agent6-6-6 commented 5 years ago

I don't think I picked up on what the 'weighted modulus' actually referred to in the context of the analysis, I was thinking it was some alternative term for some sort of transformation. The only case where I've seen this used (now that I realise what it is) almost directly in practical design is in the stiffness design of concrete filled columns in Eurocode (with some additional reduction factors applied to account for effective properties for the concrete). In most other cases the transformed properties are used, so would be helpful to add what you noted above so users can understand how to take the calculated value and transform the properties to one of the material if so desired after the analysis is complete using one of their materials as a basis.

I assume your definition of yield moment means moment at which some point on the cross section first hits yield? M_yield = Z fy?

One other thing to maybe mention in the docs regarding the plastic moment capacity, is noting that codes might require application of strength reduction factors/partial factors of safety to get from the Mp values to actual plastic design capacities (in addition to the possible reduction due to slenderness being mentioned).

robbievanleeuwen commented 2 years ago

Resolved with #127.

Density calculation moved to #128.