Problem in continuum mechanics module.

50 views
Skip to first unread message

Alejandro Martín Hernán

unread,
Mar 1, 2020, 10:05:24 AM3/1/20
to sympy
Hi everyone!

I has been testing the continuum mechanics module in order to understand how it works for the gsoc2020, but I found a problem.
I was trying to calculate the reaction forces of the following beam to validate the module, knowing that the reactions are R_0 = -2801.2 N and R_8.3 = -7198.8 N.

Screenshot from 2020-03-01 14-16-39.png

However, the results obtained are: {R_0: -2500.00000000000, R_8.30000000000000: -7500.00000000000}. This is not correct since if we calculate the equilibrium of moments about a point it is not zero because the beam must be in equilibrium. The code used was:

>>>from __future__ import print_function, division
>>>from sympy import *
>>>from sympy.external import import_module
>>>numpy = import_module('numpy', import_kwargs={'fromlist':['arange']})
>>>from sympy.physics.continuum_mechanics.beam import Beam
>>>from sympy import symbols, Piecewise
>>>init_printing(use_unicode=True, wrap_line=False)
>>>E, I = symbols('E, I')
>>>R_0, R_8 = symbols('R_0, R_8.30000000000000')
>>>b = Beam(8.3, E, I)
>>>b.apply_support(0,'pin')
>>>b.apply_support(8.3, 'roller')
>>>b.apply_load(-1250, 2, -2)
>>>b.apply_load(4000, 4.3, -1)
>>>b.apply_load(3000, 6.3, 0, 8.3)
>>>b.solve_for_reaction_loads(R_0, R_8)
>>>b.reaction_loads
>>>b.draw().show()

Figure_1.png

The sketch looks well. I do not know if I am making someting wrong, but I will try to solve the problem.


Jashan

unread,
Mar 1, 2020, 11:27:46 AM3/1/20
to sympy
Hello Alejandro,

The issue is with the sign convention you used for the moment at x=2m. Changing its sign will give you the correct answer:

>>> b.apply_load(1250, 2, -2)
>>> b.apply_load(4000, 4.3, -1)
>>> b.apply_load(3000, 6.3, 0, 8.3)
>>> b.solve_for_reaction_loads(R_0, R_8)
>>> b.reaction_loads
{R₀: -2801.20481927711, R_8.30000000000000: -7198.7951807229}

Alejandro Martín Hernán

unread,
Mar 1, 2020, 11:48:51 AM3/1/20
to sympy
Hi Jashan, 

Thank you for your answer, but then the b.draw() method uses a different sign criteria since in the sketch provided above if the moment is negative means counterclockwise which is the desired sense and if we introduce the moment positive the plot shows the moment in the clockwise direction as it is shown here:

Figure_1.png

Jason Moore

unread,
Mar 1, 2020, 1:24:35 PM3/1/20
to sympy
There may be a sign convention inconsistently in the new draw() method. Please submit and issue on github about this.

Thanks,

Jason

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/6f661e46-10f0-4bbe-a43e-b6b4c43aba78%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages