JWock82 / Pynite

A 3D structural engineering finite element library for Python.
MIT License
475 stars 95 forks source link

Possible Skewed Quad Error #198

Open JWock82 opened 5 months ago

JWock82 commented 5 months ago

Quad results for skewed plates might be off. I've had trouble transforming local forces to global forces for these elements, and have come to the conclusion the issue might be in my implementation of the MITC4 element. I'm currently working on a DKMQ element to replace the MITC4 element, which has a simpler implementation, provides better results, and will provide a second check against whether the plate formulation itself is responsible for this force transformation issue. More to come on this.

bjhowie commented 5 months ago

Can ask what sort of issues you've been encountering?

I've been running tests on skewed quad meshes and comparing the results to rectangular meshes and the results seem to align quite well.

bjhowie commented 5 months ago

Can I ask what sort of issues you've been encountering?

I've been running tests on skewed quad meshes and comparing the results to rectangular meshes and the results seem to align quite well.

JWock82 commented 5 months ago

@bjhowie This is the issue you and I have been discussing. I'm almost certain I've got the local to global plate stress transformation equations correct, and yet when I do it to skewed quads, the final global plate stress results appear to be off by a fair amount. If my transformation equations are right, that means the quad could be the problem. The unit tests I have set up only check rectangular quads, so an error in skewed quads could be lurking. The derivation I've used for the MITC4 is mathematically intensive, and I've found a more straightforward derivation for a DKMQ element, which is an improvement over the MITC4. I've been meaning to implement it for some time. Now seems like a natural time to do it. I'm going to use the DKMQ as a benchmark for my force transformation. If the DKMQ has problems too, I'll know it wasn't the MITC4 element itself that was the problem.

bjhowie commented 5 months ago

I figured as much. Curious that my local axis modification method gives good results for skewed quads while the global transformation method doesn't seem too. They should be equivalent, but the difference may suggest the issue isn't with the element itself? In either case, cross checking with the DKMQ element is a great idea. Good luck!

bjhowie commented 2 months ago

Craig, well done on finally merging the DKMQ branch. We all really appreciate your efforts! I havent had a chance to run it through all my tests yet, but will over the next week or two.

I've been playing around with my old spring-raft footing model with the new elements and am still observing similarly strange behavior as we were seeing with the MITC4 elements. The below two models are exactly the same size and with exactly the same loads, but the model on the right uses a quad meshing algorithm that generates quads that arent necessarily aligned with the global axes. The global MY quad moments are extracted in both cases (though for the model on the left the My and MY results are basically identical, as you would expect). As you can see, the model with un-aligned quads is not generating results as expected.

image

I had the quad result extraction working very well with the MITC4 elements using user-defined element local axes and would be keen to implement something similar for the DKMQ elements if you would consider it? I like this approach better as it seems to be the method used by most commercial applications, and it offers the ability to extract results about any arbitrary axis instead of the just the plate local or global axes.

As a side note, I notice the DKMQs are showing a greater concentration of moment at the point load locations than the MITC4 elements.