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

added `apply_support` and `max_deflection` methods #14786

Merged
merged 5 commits into from Jun 20, 2018

Conversation

Projects
None yet
4 participants
@jashan498
Contributor

jashan498 commented Jun 9, 2018

Brief description of what is fixed or changed

apply_support applies Support at a particular position. Support can be cantilever(fixed support), roller or hinge. reactional load and moment exerted by the support are represented by R_x and M_x respectively where x is the position of applied support.

Other comments

@jashan498

This comment has been minimized.

Contributor

jashan498 commented Jun 12, 2018

I = Symbol('I')
b = Beam(4, E, I)
b.apply_support(0, "cantilever")
b.apply_load(20, 4, -1)

This comment has been minimized.

@parsoyaarihant

parsoyaarihant Jun 13, 2018

Contributor

Can you add tests for other types of supports also?

@@ -209,6 +210,68 @@ def bc_deflection(self):
def bc_deflection(self, d_bcs):
self._boundary_conditions['deflection'] = d_bcs
def apply_support(self, loc, type="cantilever"):

This comment has been minimized.

@moorepants

moorepants Jun 13, 2018

Member

Should be type='fixed'.

This comment has been minimized.

@parsoyaarihant
Determines type of Beam support applied.
- For Simple pinned Support, type = "pin"
- For Cantilever Support, type = "fixed"
- For Rolling Support, type = "roller"

This comment has been minimized.

@moorepants

moorepants Jun 14, 2018

Member

Cantilever is not a type of a support. I think this should be more specific about the degrees of freedom. Pin joint fixes 2 of 3 DoF, fixed 3 of 3 DoF, and roller, 1 of 3 DoF.

This comment has been minimized.

@parsoyaarihant

parsoyaarihant Jun 19, 2018

Contributor

@jashan498 ping.

>>> b = Beam(30, E, I)
>>> b.apply_load(-8, 0, -1)
>>> b.apply_support(10, 'roller')
>>> b.apply_support(30, 'roller')

This comment has been minimized.

@moorepants

moorepants Jun 14, 2018

Member

What is the difference in applying a supprt and a load? Didn't we add supports by applying unknown loads before? Is this method really necessary?

This comment has been minimized.

@moorepants

moorepants Jun 14, 2018

Member

I guess it does let you track more carefully what the unknown loads are. So maybe worth it. Do you use that info internally?

This comment has been minimized.

@jashan498

jashan498 Jun 14, 2018

Contributor

Yeah, we can add support before applying load too. But I didn't get you by which info is to be used internally?

def support_locations(self):
""" Returns a list of tuples containing location of Support
and its type respectively."""
return self._supports

This comment has been minimized.

@moorepants

moorepants Jun 14, 2018

Member

Should this be a property?

@parsoyaarihant parsoyaarihant merged commit 91adc74 into sympy:master Jun 20, 2018

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment