Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add yield moment calculation #476

Merged
merged 3 commits into from
Oct 31, 2024
Merged

Add yield moment calculation #476

merged 3 commits into from
Oct 31, 2024

Conversation

robbievanleeuwen
Copy link
Owner

@robbievanleeuwen robbievanleeuwen commented Oct 31, 2024

Closes #232.

@robbievanleeuwen robbievanleeuwen added enhancement New feature or request engineering Issue related to engineering methods/assumptions labels Oct 31, 2024
@robbievanleeuwen robbievanleeuwen self-assigned this Oct 31, 2024
@robbievanleeuwen robbievanleeuwen marked this pull request as ready for review October 31, 2024 06:36
@robbievanleeuwen robbievanleeuwen merged commit 76b95db into master Oct 31, 2024
17 of 18 checks passed
@robbievanleeuwen robbievanleeuwen deleted the feature/yield-moment branch October 31, 2024 06:39
fy = group.material.yield_strength

# loop through each element in the material group
for el in group.elements:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not directly using the second moment of inertial and figure our the farthest fibre in each group, similar to elastic section modulus to figure out the yield moment for each group?
Looping over all elements seems to be very slow when the mesh is fine.
Reusing existing information may be beneficial here.

x11, y22 = fea.principal_coordinate(phi=phi, x=x, y=y)

# calculate bending stresses due to unit moments
sig_mxx = em * (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This part is pure numerical, can be jit-ed to improve performance.

sig_m22 = -em / i22 * x11

# update yield indexes
yield_index["mxx"] = max(yield_index["mxx"], abs(sig_mxx / fy))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is minor, why not directly store: yield_moment=min(yield_moment,abs(fy/sig_m))?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
engineering Issue related to engineering methods/assumptions enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Yield Moment
2 participants