Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
@SaMohamed FEALiTE2D is a wonderful library for frame analysis. I have used it in two of my engineering software projects. I particularly like FEALiTE2D's internal mesh segment. It makes meshing so simple. It automatically considers loading discontinuity using mesh segments. I think this a big differentiating factor.
While using
LinearMesher
to handle internal meshing, I encountered bug. I have taken some time investigating it and provided a fix for it.Bug
Null pointer exception is raised under the following scenario. When I apply uniform load over a frame element only on part of the span, I call
GetElementInternalForcesAt
with position set beyond where the uniform load ends. For example, see below.I have added some tests for
PostProcessor
class . The testGetElementInternalForcesAt_WithPartialUniformLoad_EdgeSegment_ReturnsCorrectForce
will trigger the bug.Cause
I think the root cause is
GetElementInternalForces
when the library calculates end responses of each mesh segment. To calculate the responses, I believe the library just uses all the loads on the left of the mesh segment left end. For frame unfiorm load,FrameUniformLoad uniformLoad = uL.GetLoadValueAt(element, x) as FrameUniformLoad;
may result into null reference.Fix
I believe
uL.GetLoadValueAt(element, x) as FrameUniformLoad
is really just for coordinate transformation. PassinguL.L1
instead ofx
can serve the purpose and avoid null reference problem.Docs
I suggested adding a github page documentation for this library. I have taken liberty to create one just my company to use. It is auto generated by DocFx. I am happy to transfer the page to this repo.