robbievanleeuwen / section-properties

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

Section stress computation #353

Open TLCFEM opened 1 year ago

TLCFEM commented 1 year ago

The current implementation follows Pilkey's book, which assumes transverse shear forces are acting on the axis passing the shear centre.

Continue the discussion regarding the shift of the section in $yz$ plane, currently the location of the section does not affect the shear stresses computed.

The current implementation shifts the section to its centroid, making all shape function related values invalid in the previous geometry analysis. If it is not shifted, then all those values, shape functions, their derivatives, jacobians, etc, can be reused.

On the other hand, the transverse shear forces may not necessarily been applied to the shear centre, the stress computation should be aware of different section location in the local reference system.

A possible solution is as follows.

For arbitarily placed section, assuming transverse shear forces are always acting on the $y$- and $z$-axis. They can be equivalently converted into the shear forces acting passing the shear centre, and a companion torsion.

For $V_y$ and $V_z$ (not shown), we use the same Pilkey's procedure (6.1.4) to compute the stress.

For torsion $T_x$, we use Eq. 5.142 to compute the stress.

The final stress stress should be the summation of the two contributions.

Section

Then one can place the section in the local reference system as desired, and different locations lead to different stress distribution. For each element, only one set of shape function related quantites needs to be computed, making further optimisation possible.

github-actions[bot] commented 1 year ago

Thanks for opening your first issue in sectionproperties :raised_hands: Pull requests are always welcome :wink:

robbievanleeuwen commented 1 year ago

Hi @TLCFEM thanks for the suggestion! I like that this would allow for better optimisation as caching from the geometric analysis can be better utilised.

I will have a think about the breaking changes this may introduce in the stress analysis and how this relates to the workflow for a practicing engineer. For example consider a PFC section - if you want to just visualise the stress distribution due to a shear force this will now involve either manually shifting the section to the shear centre or calculating the correct torsion moment to achieve zero net torsion. I don't think this would be very clear for a vast majority of the users, but I will give this some thought.

I'll also have to look at solving the shear functions - this proved difficult previously if the section wasn't shifted to its centroid.

TLCFEM commented 1 year ago

I think the overall procedure is:

  1. compute transverse shear response
  2. compute shear centre location
  3. compute torsion based on leverage arms
  4. compute torsion response

To recover the current behaviour, only need to have a flag to indicate if the force is applied at the shear centre, then depending on this switch, steps 3 and 4 can be skipped.

If practical engineers are always interested in shear stresses for shear applied at shear centre, then I presume it is not worth refactoring to support steps 3 and 4.

Otherwise, it's a good feature for those who are interested in different configurations.

robbievanleeuwen commented 12 months ago

Hi @TLCFEM sorry for the delayed response, I've been very busy with my course at uni! Ok, that makes sense, I think it would be good to keep the default behaviour (shear force applied at shear centre) and then allow for an option to have the shear force applied at the origin. Are you able to solve for the shear functions psi and phi when the section isn't shifted to the geometric centroid? When I tried this previously I was having trouble with convergence.

TLCFEM commented 12 months ago

I am not sure about the "convergence" you are referring to. Essentially, the original K is rank deficient, the Lagrange multiplier makes it invertible. Solving the linear system should always be possible but since now the section is not placed at the barycentre, the multiplier does not necessarily be zero or close to zero. If you remove the check of the multiplier, I believe you can obtain valid results of warping function and two shear stress functions.

The shapes of those functions shall be identical no matter how the section is placed. The actual values of two shear functions do not matter too much as only derivatives of those functions are required to compute shear stresses (see Eqs 6.79 and 6.80), shape remains constant means derivatives do not change.