I don't think we should do "a hack". If we follow the patterns in the
integration code, we should leave the constants of integration off. But in
the Beam classes you can have them manage the constants of integration.
What you show above looks fine.

I didn't mean to use dsolve in any way. I just meant to have a look at that
code because they include constants of integration when you solve the ode.
You can also set the boundary conditions in the constructor. It can give
you ideas of how to design your api.


Jason
moorepants.info
+01 530-601-9791

On Sat, Mar 19, 2016 at 8:27 AM, SAMPAD SAHA <[email protected]> wrote:

> Jason,
>
> I went through the ode package. I felt that it would be difficult to use
> boundary condition to solve for the constants of integration using the
> exisiting *dsolve() *method. It seems that it is still under development.
>
> So I thought of implementing that functionality explicitly for solving
> beam problems.
>
> I would be taking Boundary conditions as input as:
>
> *bcs = Beam.BoundaryCondition( {f(0) : 5, f.diff(0) : 4 } )* and so on.
>
> If nothing is provided then  *f(0) !=  0 , f.diff(0) = 0 *or something
> like this would be assumed.
>
> Depending on this boundary condition I would add the required constants by
> myself while finding the slope and deflection function and output the value
> by solving for those constants.
>
> By this way, the hack would be easier. What do you suggests?
>
>
>
>
>
>
> Regards
> Sampad Kumar Saha
> Mathematics and Computing
> I.I.T. Kharagpur
>
> On Sat, Mar 19, 2016 at 7:17 AM, SAMPAD SAHA <[email protected]>
> wrote:
>
>> Yah, you are right . We should not have the name simplify() as a method
>> since it have already created some issues in  #7716
>> <https://github.com/sympy/sympy/issues/7716> and #8798
>> <https://github.com/sympy/sympy/issues/8798>. So i will keep it as
>> *to_piecewise()*  . it would be fine then.
>>
>> As you suggested I will be look at ode package for this constant of
>> integration thing.
>>
>> Thank You...
>>
>>
>>
>>
>> Regards
>> Sampad Kumar Saha
>> Mathematics and Computing
>> I.I.T. Kharagpur
>>
>> On Sat, Mar 19, 2016 at 7:07 AM, Jason Moore <[email protected]>
>> wrote:
>>
>>> Simplification means something very specific in SymPy, see the
>>> simplify() function. I think you need to choose a different method name for
>>> converting to piecewise continuous. Maybe: .to_piecewise()?
>>>
>>> You will need to implement some method for dealing with the constants of
>>> integration and boundary conditions. Maybe you should have a look at the
>>> ordinary differential equations package in SymPy to get some ideas about
>>> that.
>>>
>>>
>>> Jason
>>> moorepants.info
>>> +01 530-601-9791
>>>
>>> On Fri, Mar 18, 2016 at 4:04 PM, SAMPAD SAHA <[email protected]>
>>> wrote:
>>>
>>>> Thank You Jason for the appreciation.
>>>>
>>>> Yah, that *Simplify  * method would convert  into continous piecewise.
>>>> Like this :-
>>>>
>>>> In    [ ] : F = singularityFunc(x, 0, 1) +  singularityFunc(x, 3, 2)
>>>>
>>>> In    [ ] : F
>>>> Out [ ] :
>>>>                     2
>>>> <x> + <x - 3>
>>>>
>>>> In [ ] : F.simplify()
>>>> Out [ ] :
>>>>
>>>> 0                   for x < 0
>>>> x                   for 0 <= x < 3
>>>> x + (x-3)^2    for x  >= 3
>>>>
>>>>
>>>> As you have suggested earlier, I have solved some examples by hand and
>>>> then tried to implement a desired api. From that I came to this conclusion
>>>> that if we implement Addition, Substraction, Integration,
>>>> Differentiation, Simplify on Singularity Functions then we can successfully
>>>> solve out the beam problems.
>>>>
>>>> But i got doubt while implementing the boundary constants. I mean to
>>>> say that sympy dont gives constant of integration while doing indefinite
>>>> integration. We can take boundary conditions as input from users that is
>>>> not a problem, but we cant use it since there will be no constant of
>>>> integration.
>>>>
>>>>
>>>>
>>>> Regards
>>>> Sampad Kumar Saha
>>>> Mathematics and Computing
>>>> I.I.T. Kharagpur
>>>>
>>>> On Sat, Mar 19, 2016 at 4:07 AM, Jason Moore <[email protected]>
>>>> wrote:
>>>>
>>>>> Sounds like a good start. How about a method to convert to continuous
>>>>> piecewise?
>>>>>
>>>>> Like I said earlier, you should pick some examples that you want the
>>>>> software to be able to solve and then implement methods and functionality
>>>>> based on those examples. It's hard to think of all the needed 
>>>>> functionality
>>>>> and API without motivating examples first.
>>>>>
>>>>>
>>>>> Jason
>>>>> moorepants.info
>>>>> +01 530-601-9791
>>>>>
>>>>> On Fri, Mar 18, 2016 at 10:27 AM, SAMPAD SAHA <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Jason,
>>>>>>
>>>>>> I have thought of implementing Addition, Substraction, Integration,
>>>>>> Differentiation, Simplify on Singularity Functions.
>>>>>>
>>>>>> What are the other functionalities we should implement?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Regards
>>>>>> Sampad Kumar Saha
>>>>>> Mathematics and Computing
>>>>>> I.I.T. Kharagpur
>>>>>>
>>>>>> On Fri, Mar 18, 2016 at 8:16 PM, SAMPAD SAHA <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Yah you are correct. Differentiation of heaviside and diracdelta
>>>>>>> also exists.
>>>>>>>
>>>>>>> It was my mistake. Thanks for rectifying me.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Regards
>>>>>>> Sampad Kumar Saha
>>>>>>> Mathematics and Computing
>>>>>>> I.I.T. Kharagpur
>>>>>>>
>>>>>>> On Fri, Mar 18, 2016 at 8:02 PM, Tim Lahey <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> For differentiation you’re missing a case,
>>>>>>>>
>>>>>>>> if n = 0 or n = -1
>>>>>>>>    return Singularity(x, a, n-1)
>>>>>>>> else if n < -1
>>>>>>>>    return error
>>>>>>>>
>>>>>>>> In other words, you can still differentiate for the n = 0 and n =
>>>>>>>> -1 cases.
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>>
>>>>>>>> Tim.
>>>>>>>>
>>>>>>>> > On Mar 18, 2016, at 10:22 AM, SAMPAD SAHA <[email protected]>
>>>>>>>> wrote:
>>>>>>>> >
>>>>>>>> > And what about the pseudocode of integration and differentiation
>>>>>>>> i have posted earlier , is it alright?
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > Regards
>>>>>>>> > Sampad Kumar Saha
>>>>>>>> > Mathematics and Computing
>>>>>>>> > I.I.T. Kharagpur
>>>>>>>> >
>>>>>>>> > On Fri, Mar 18, 2016 at 7:51 PM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> > Thanks Tim,
>>>>>>>> >
>>>>>>>> > It is really a nice and effective solution.
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > Regards
>>>>>>>> > Sampad Kumar Saha
>>>>>>>> > Mathematics and Computing
>>>>>>>> > I.I.T. Kharagpur
>>>>>>>> >
>>>>>>>> > On Fri, Mar 18, 2016 at 7:46 PM, Tim Lahey <[email protected]>
>>>>>>>> wrote:
>>>>>>>> > Add the constants when you integrate in your beam class.
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > On 2016-03-18, at 10:12 AM, SAMPAD SAHA <[email protected]>
>>>>>>>> wrote:
>>>>>>>> >
>>>>>>>> >> Thanks TIm,
>>>>>>>> >>
>>>>>>>> >> Integration and Differentiation are really very straight forward
>>>>>>>> that is why i am thinking to add diff and integrate method to the
>>>>>>>> Singularity function class itself.
>>>>>>>> >>
>>>>>>>> >> For integrate the pseuesocode will be :-
>>>>>>>> >>
>>>>>>>> >> if(n<0)
>>>>>>>> >>     return SingularityFunction(x , a, n+1)
>>>>>>>> >> else
>>>>>>>> >>     return (1/n+1 * SingularityFunction(x , a, n+1))
>>>>>>>> >>
>>>>>>>> >> Similarly for differentiation:
>>>>>>>> >>
>>>>>>>> >> if (n>0)
>>>>>>>> >>    return n * SingularityFunction(x , a, n - 1)
>>>>>>>> >> else
>>>>>>>> >>    Error message
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> My doubt regarding Boundary condition was actually was that
>>>>>>>> since sympy don't provide constant of integration while performing
>>>>>>>> indefinite integration on any expression, how to use the boundary
>>>>>>>> conditions to find the exact values of constant of integration?
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> Regards
>>>>>>>> >> Sampad Kumar Saha
>>>>>>>> >> Mathematics and Computing
>>>>>>>> >> I.I.T. Kharagpur
>>>>>>>> >>
>>>>>>>> >> On Fri, Mar 18, 2016 at 6:09 PM, Tim Lahey <[email protected]>
>>>>>>>> wrote:
>>>>>>>> >> Hi,
>>>>>>>> >>
>>>>>>>> >> Do you know the integration and differentiation rules for
>>>>>>>> singularity functions? They’re pretty straightforward.
>>>>>>>> >>
>>>>>>>> >> As for boundary conditions, the beam will have supports (or a
>>>>>>>> free end) at each end of the beam and as part of the beam creation 
>>>>>>>> each end
>>>>>>>> type is specified. Each type corresponds to a specific set of 
>>>>>>>> conditions on
>>>>>>>> that end (either at x=0 or x=L). You substitute those conditions in the
>>>>>>>> appropriate equation and solve for the integration constant as 
>>>>>>>> necessary.
>>>>>>>> All of the conditions should be in any decent mechanics of deformable
>>>>>>>> solids text book.
>>>>>>>> >>
>>>>>>>> >> You’ll want to do sums of forces and moments as well to solve
>>>>>>>> for reaction forces as well.
>>>>>>>> >>
>>>>>>>> >> The only trick is making sure you don’t double count things. If
>>>>>>>> you have a step function due to a reaction force at the start of the 
>>>>>>>> beam
>>>>>>>> and assume it’s zero at x=0 (effectively the limit at x=0^-) you can 
>>>>>>>> get a
>>>>>>>> non-zero integration constant that can be double counting that reaction
>>>>>>>> since at x=0^+ that reaction force is non-zero. Note that you can get a
>>>>>>>> non-zero integration constant (even when including reaction forces in 
>>>>>>>> the
>>>>>>>> loading function) for shear and moment equations if you have 
>>>>>>>> non-polynomial
>>>>>>>> loads (e.g., sine and cosine). You’ll also have to think about the 
>>>>>>>> other
>>>>>>>> end as well. I leave it up to you to reason that out. Make sure you
>>>>>>>> completely document how you’ve implemented it for the user (and why).
>>>>>>>> >>
>>>>>>>> >> Beam coordinate systems must start at the left end and increase
>>>>>>>> to the right. The definition of the singularity functions require this.
>>>>>>>> >>
>>>>>>>> >> I hope this helps.
>>>>>>>> >>
>>>>>>>> >> Cheers,
>>>>>>>> >>
>>>>>>>> >> Tim.
>>>>>>>> >>
>>>>>>>> >> > On Mar 18, 2016, at 8:17 AM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> >
>>>>>>>> >> > I am also confused about implementing the boundary conditions
>>>>>>>> for getting the deflection curve.
>>>>>>>> >> >
>>>>>>>> >> > Any suggestions on how to implement it.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Regards
>>>>>>>> >> > Sampad Kumar Saha
>>>>>>>> >> > Mathematics and Computing
>>>>>>>> >> > I.I.T. Kharagpur
>>>>>>>> >> >
>>>>>>>> >> > On Fri, Mar 18, 2016 at 5:36 PM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > Yah, you are right multiplication of singularity functions are
>>>>>>>> not needed for solving beam problems. Mathematically, it is also not 
>>>>>>>> used
>>>>>>>> that much. So lets leave this multiplication and powers part.
>>>>>>>> >> >
>>>>>>>> >> > I was thinking about the integrate and diff methods. I feel
>>>>>>>> that we should define instance methods diff and  integrate  in the
>>>>>>>> singularity function module which would internally use the existing 
>>>>>>>> diff
>>>>>>>> and integrate function for Differentiation and Integration 
>>>>>>>> respectively.
>>>>>>>> >> >
>>>>>>>> >> > I need your suggestions.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Regards
>>>>>>>> >> > Sampad Kumar Saha
>>>>>>>> >> > Mathematics and Computing
>>>>>>>> >> > I.I.T. Kharagpur
>>>>>>>> >> >
>>>>>>>> >> > On Fri, Mar 18, 2016 at 3:14 AM, Jason Moore <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > I think you need to override the operators. I'm not sure if
>>>>>>>> multiplying singularity functions is needed (at least for beam 
>>>>>>>> problems),
>>>>>>>> even if it is mathematically correct, you don't have to implement it. 
>>>>>>>> If it
>>>>>>>> is easy to implement then, sure, do so.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Jason
>>>>>>>> >> > moorepants.info
>>>>>>>> >> > +01 530-601-9791
>>>>>>>> >> >
>>>>>>>> >> > On Thu, Mar 17, 2016 at 1:34 PM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> >
>>>>>>>> >> > Jason,
>>>>>>>> >> >
>>>>>>>> >> > For implementing Additon , Multiplication Do we need to over
>>>>>>>> ride __mul__ , __add__  these methods inside the class 
>>>>>>>> SingularityFunction
>>>>>>>> or we can just use simplify for getting the results.
>>>>>>>> >> >
>>>>>>>> >> > I am really confused.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Regards
>>>>>>>> >> > Sampad Kumar Saha
>>>>>>>> >> > Mathematics and Computing
>>>>>>>> >> > I.I.T. Kharagpur
>>>>>>>> >> >
>>>>>>>> >> > On Fri, Mar 18, 2016 at 1:59 AM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> >
>>>>>>>> >> > I was thinking about multiplication of two singularity
>>>>>>>> functions. It is possible and it is mathematically significant. We can
>>>>>>>> implement this too in Sympy. Similarly with powers.
>>>>>>>> >> >
>>>>>>>> >> > I need your suggestions.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Regards
>>>>>>>> >> > Sampad Kumar Saha
>>>>>>>> >> > Mathematics and Computing
>>>>>>>> >> > I.I.T. Kharagpur
>>>>>>>> >> >
>>>>>>>> >> > On Wed, Mar 16, 2016 at 9:41 PM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > Yah , You are right . A software having good documentations
>>>>>>>> about all the functionality is preffered more over the others by the 
>>>>>>>> users.
>>>>>>>> I will be spending a good amount of time in preparing the documentation
>>>>>>>> citing plenty of examples and tutorials.
>>>>>>>> >> >
>>>>>>>> >> > Here is link to my proposal. I have almost added all the
>>>>>>>> things which we have disscussed. I still need to add the example and 
>>>>>>>> many
>>>>>>>> more "TODO"s are left. I am working on those.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Suggestions are welcomed.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Regards
>>>>>>>> >> > Sampad Kumar Saha
>>>>>>>> >> > Mathematics and Computing
>>>>>>>> >> > I.I.T. Kharagpur
>>>>>>>> >> >
>>>>>>>> >> > On Wed, Mar 16, 2016 at 6:18 AM, Jason Moore <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > Looks good. I think you should have plenty of examples in the
>>>>>>>> docs. People tend to use software more if the docs are top notch. So 
>>>>>>>> plenty
>>>>>>>> of examples and tutorials will really help.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Jason
>>>>>>>> >> > moorepants.info
>>>>>>>> >> > +01 530-601-9791
>>>>>>>> >> >
>>>>>>>> >> > On Tue, Mar 15, 2016 at 5:25 PM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > You are right. delta_function.py needs to be improved. I will
>>>>>>>> to be using only DiracDelta and Heaviside for generating almost all the
>>>>>>>> Singularity Functions.
>>>>>>>> >> >
>>>>>>>> >> > I was also thinking to complete this project in four phases:
>>>>>>>> >> >       • Improving existiing Functions.
>>>>>>>> >> >       • Creating Singularity Functions module
>>>>>>>> >> >       • Creating beam Module
>>>>>>>> >> >       • Documentation
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Regards
>>>>>>>> >> > Sampad Kumar Saha
>>>>>>>> >> > Mathematics and Computing
>>>>>>>> >> > I.I.T. Kharagpur
>>>>>>>> >> >
>>>>>>>> >> > On Wed, Mar 16, 2016 at 5:44 AM, Jason Moore <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > https://www.python.org/dev/peps/pep-0008/
>>>>>>>> >> >
>>>>>>>> >> > I think you will need a pure singularity function module and
>>>>>>>> then you will need a beam module that utlizes the singularity function
>>>>>>>> module. You will also likely need to improve the discontinuous 
>>>>>>>> functions
>>>>>>>> that are already in sympy. There are at least three layers to this in 
>>>>>>>> my
>>>>>>>> eyes.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Jason
>>>>>>>> >> > moorepants.info
>>>>>>>> >> > +01 530-601-9791
>>>>>>>> >> >
>>>>>>>> >> > On Tue, Mar 15, 2016 at 5:07 PM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > Jason
>>>>>>>> >> >
>>>>>>>> >> > Pardon please. I couldn't get you by "You will need to follow
>>>>>>>> PEP8 for the method and class names".
>>>>>>>> >> >
>>>>>>>> >> > and yah, i also felt that it would be better if i use the
>>>>>>>> input and output values of the example problem done by hand.
>>>>>>>> >> >
>>>>>>>> >> > So , what do you suggest, Would it be better if we create a
>>>>>>>> different module ,other than the singularity function module, for 
>>>>>>>> solving
>>>>>>>> beam problems?  That module would import the singularity function 
>>>>>>>> module
>>>>>>>> for using them.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Regards
>>>>>>>> >> > Sampad Kumar Saha
>>>>>>>> >> > Mathematics and Computing
>>>>>>>> >> > I.I.T. Kharagpur
>>>>>>>> >> >
>>>>>>>> >> > On Wed, Mar 16, 2016 at 5:22 AM, Jason Moore <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > I think it is a good start. You will need to follow PEP8 for
>>>>>>>> the method and class names. But I just want to see desired 
>>>>>>>> functionality.
>>>>>>>> The more you can think up, the better. I would suggest doing a beam 
>>>>>>>> problem
>>>>>>>> by hand and then translating that to a desired API. You can mock up 
>>>>>>>> what
>>>>>>>> you think the inputs and outputs should be for that example problem.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Jason
>>>>>>>> >> > moorepants.info
>>>>>>>> >> > +01 530-601-9791
>>>>>>>> >> >
>>>>>>>> >> > On Tue, Mar 15, 2016 at 4:46 PM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > Ok Jason,
>>>>>>>> >> >
>>>>>>>> >> > And what about the API I have posted just before the earlier
>>>>>>>> post?
>>>>>>>> >> >
>>>>>>>> >> > Any suggestions
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Regards
>>>>>>>> >> > Sampad Kumar Saha
>>>>>>>> >> > Mathematics and Computing
>>>>>>>> >> > I.I.T. Kharagpur
>>>>>>>> >> >
>>>>>>>> >> > On Wed, Mar 16, 2016 at 5:10 AM, Jason Moore <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > The file locations and method class names are just fine
>>>>>>>> details that can be worked out later. They are generally not important 
>>>>>>>> for
>>>>>>>> your proposal. Just focus on describing what the future modules should 
>>>>>>>> do.
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Jason
>>>>>>>> >> > moorepants.info
>>>>>>>> >> > +01 530-601-9791
>>>>>>>> >> >
>>>>>>>> >> > On Tue, Mar 15, 2016 at 4:36 PM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > Hi Jason,
>>>>>>>> >> >
>>>>>>>> >> > As I am thinking to create a another module for solving
>>>>>>>> especially beam problems (suppose beambending.py) , what will be its 
>>>>>>>> file
>>>>>>>> location?
>>>>>>>> >> > Similarly for Singularity Functions (suppose
>>>>>>>> singularity_function.py), What will be its location?
>>>>>>>> >> >
>>>>>>>> >> > And what about the names of methods and classes, Can I give
>>>>>>>> any name or we will be discussing it at the time of developing them?
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > ---------------------
>>>>>>>> >> > Regards,
>>>>>>>> >> > Sampad
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Regards
>>>>>>>> >> > Sampad Kumar Saha
>>>>>>>> >> > Mathematics and Computing
>>>>>>>> >> > I.I.T. Kharagpur
>>>>>>>> >> >
>>>>>>>> >> > On Wed, Mar 16, 2016 at 3:56 AM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > Thank You Tim and Jason for your suggestions and clearing my
>>>>>>>> doubts.
>>>>>>>> >> >
>>>>>>>> >> > We can also have an another module for solving beam problems.
>>>>>>>> As Jason Have suggested earlier.
>>>>>>>> >> >
>>>>>>>> >> > Some of its classes would be Beam, DistributedLoad, PointLoad,
>>>>>>>> Moment.
>>>>>>>> >> >
>>>>>>>> >> > We can have the API as:-
>>>>>>>> >> >
>>>>>>>> >> > from sympy import
>>>>>>>> SingularityFunction,Beam,DistributedLoad,PointLoad,Moment
>>>>>>>> >> > b = Beam(length = 1, E = 1.87, I = 12)
>>>>>>>> >> > Load1 = DistrubutedLoad(start=l/2, end=l, value= 50)
>>>>>>>> >> > Load2 = PointLoad(location=l/3, value=60)
>>>>>>>> >> > Load3 = Moment(locaton = 1, value = 40, anticlockwise = True)
>>>>>>>> >> > b.apply(Load1,Load2,Load3)
>>>>>>>> >> > b.loadDistribution    # Outputs the loading function in the
>>>>>>>> form of singularity function
>>>>>>>> >> > b.shearForce          # Outputs the Shear Force  Function
>>>>>>>> >> > b.bendingMoment       # Outputs the bending Moment Function
>>>>>>>> >> > b.slope               # Outputs the Slope Function
>>>>>>>> >> > b.deflection          # Outputs the deflection Function
>>>>>>>> >> >
>>>>>>>> >> > b.plotLoadDistribution   # Outputs the plot of load
>>>>>>>> Distribution Curve
>>>>>>>> >> > b.plotBendingMoment      # Outputs the plot of Bending Moment
>>>>>>>> Curve
>>>>>>>> >> > b.plotDeflection         # Outputs the plot of Deflection Curve
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> >
>>>>>>>> >> > Regards
>>>>>>>> >> > Sampad Kumar Saha
>>>>>>>> >> > Mathematics and Computing
>>>>>>>> >> > I.I.T. Kharagpur
>>>>>>>> >> >
>>>>>>>> >> > On Wed, Mar 16, 2016 at 2:45 AM, Tim Lahey <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > I agree. One should start directly from the loading function
>>>>>>>> q(x). The general steps are:
>>>>>>>> >> >
>>>>>>>> >> > 1. Start with the loading function q(x)
>>>>>>>> >> > 2. Integrate to get the shear function V(x).
>>>>>>>> >> > 3. Integrate again to get the bending moment function M(x).
>>>>>>>> >> > 4. Integrate to get the slope function E*I*v’(x).
>>>>>>>> >> > 5. Integrate to get the displacement function E*I*v(x).
>>>>>>>> >> >
>>>>>>>> >> > Note that the singularity functions can be multiplied by
>>>>>>>> arbitrary functions of x as well. This allows for varied loads and 
>>>>>>>> cases
>>>>>>>> where E and I vary too. To be strictly correct one should include the
>>>>>>>> integration constants as well and then solve for the reaction forces 
>>>>>>>> and
>>>>>>>> the constants.
>>>>>>>> >> >
>>>>>>>> >> > You’ll need to carefully consider how you handle evaluating at
>>>>>>>> transition points, especially the beam boundaries.
>>>>>>>> >> >
>>>>>>>> >> > Cheers,
>>>>>>>> >> >
>>>>>>>> >> > Tim.
>>>>>>>> >> >
>>>>>>>> >> > > On Mar 15, 2016, at 4:53 PM, Jason Moore <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > >
>>>>>>>> >> > > I think you'd want the user to input the loads on the beam
>>>>>>>> as singularity functions or some higher level abstraction. If you 
>>>>>>>> require
>>>>>>>> them to manually compute the bending moment then you are defeating the
>>>>>>>> purpose of having a CAS do it for you.
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > > Jason
>>>>>>>> >> > > moorepants.info
>>>>>>>> >> > > +01 530-601-9791
>>>>>>>> >> > >
>>>>>>>> >> > > On Sun, Mar 13, 2016 at 2:25 PM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > > Hi Jason,
>>>>>>>> >> > >
>>>>>>>> >> > > I have a confusion regarding the user inputs for the beam
>>>>>>>> problems.
>>>>>>>> >> > >
>>>>>>>> >> > > I think that we should take only the Bending Moment Function
>>>>>>>> (in the form of singularity functions) and the boundary conditions as
>>>>>>>> inputs.
>>>>>>>> >> > >
>>>>>>>> >> > > I mean to say that generally in a given beam bending
>>>>>>>> problem, a diagram of a beam and distributed loads are provided. So it 
>>>>>>>> is
>>>>>>>> not possible to get these data as an user input. Rather we can expect 
>>>>>>>> that
>>>>>>>> the user would formulate the bending moment function, in the form of
>>>>>>>> Singularity function, and then provide that function as an input for
>>>>>>>> getting the elastic curve equation.
>>>>>>>> >> > >
>>>>>>>> >> > > Note:- Values of  E , I , Boundary Conditions are also
>>>>>>>> expected as an input.
>>>>>>>> >> > >
>>>>>>>> >> > > I need your suggestions.
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > > -----------------
>>>>>>>> >> > > Regards,
>>>>>>>> >> > > Sampad
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > > Regards
>>>>>>>> >> > > Sampad Kumar Saha
>>>>>>>> >> > > Mathematics and Computing
>>>>>>>> >> > > I.I.T. Kharagpur
>>>>>>>> >> > >
>>>>>>>> >> > > On Sat, Mar 12, 2016 at 11:50 AM, Aaron Meurer <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > > It should give (-1)**n*f^(n)(0) (that is, (-1)**n*diff(f(x),
>>>>>>>> x, n).subs(x, 0)), if I remember the formula correctly.
>>>>>>>> >> > >
>>>>>>>> >> > > Aaron Meurer
>>>>>>>> >> > >
>>>>>>>> >> > > On Fri, Mar 11, 2016 at 9:00 AM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > > Hi Aaron,
>>>>>>>> >> > >
>>>>>>>> >> > > I have a doubt .
>>>>>>>> >> > >
>>>>>>>> >> > > Do we want:
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > >  integrate(f(x)*DiracDelta(x, n), (x, -oo, oo)) would output
>>>>>>>> as
>>>>>>>> >> > >
>>>>>>>> >> > > <image.png>
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > > Regards
>>>>>>>> >> > > Sampad Kumar Saha
>>>>>>>> >> > > Mathematics and Computing
>>>>>>>> >> > > I.I.T. Kharagpur
>>>>>>>> >> > >
>>>>>>>> >> > > On Wed, Mar 9, 2016 at 3:11 AM, Aaron Meurer <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > > DiracDelta(x, k) gives the k-th derivative of DiracDelta(x)
>>>>>>>> (or you
>>>>>>>> >> > > can write DiracDelta(x).diff(x, k)).
>>>>>>>> >> > >
>>>>>>>> >> > > It does look like the delta integrate routines could be
>>>>>>>> improved here, though:
>>>>>>>> >> > >
>>>>>>>> >> > > In [2]: integrate(f(x)*DiracDelta(x), (x, -oo, oo))
>>>>>>>> >> > > Out[2]: f(0)
>>>>>>>> >> > >
>>>>>>>> >> > > In [3]: integrate(f(x)*DiracDelta(x, 1), (x, -oo, oo))
>>>>>>>> >> > > Out[3]:
>>>>>>>> >> > > ∞
>>>>>>>> >> > > ⌠
>>>>>>>> >> > > ⎮  f(x)⋅DiracDelta(x, 1) dx
>>>>>>>> >> > > ⌡
>>>>>>>> >> > > -∞
>>>>>>>> >> > >
>>>>>>>> >> > > Since the integration rules for derivatives of delta
>>>>>>>> functions are
>>>>>>>> >> > > simple extensions of the rules for the delta function
>>>>>>>> itself, this is
>>>>>>>> >> > > probably not difficult to fix.
>>>>>>>> >> > >
>>>>>>>> >> > > Aaron Meurer
>>>>>>>> >> > >
>>>>>>>> >> > > On Mon, Feb 29, 2016 at 3:39 AM, Tim Lahey <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > > > Hi,
>>>>>>>> >> > > >
>>>>>>>> >> > > > Singularity functions are actually extremely easy to
>>>>>>>> implement given that we have a Dirac delta and Heaviside functions.
>>>>>>>> Assuming that the Dirac delta and Heaviside functions properly handle
>>>>>>>> calculus, it’s trivial to wrap them for use as singularity functions. 
>>>>>>>> The
>>>>>>>> only thing that will need to be added is the derivative of the Dirac 
>>>>>>>> delta
>>>>>>>> (assuming it’s not already there). I implemented singularity functions 
>>>>>>>> in
>>>>>>>> Maple in less than an afternoon.
>>>>>>>> >> > > >
>>>>>>>> >> > > > I was a TA for a Mechanics of Deformable Solids course
>>>>>>>> about 11 or 12 times and wrote it to help the students (as we have a 
>>>>>>>> site
>>>>>>>> license for Maple). I also wrote a set of lecture notes on the topic.
>>>>>>>> >> > > >
>>>>>>>> >> > > > Cheers,
>>>>>>>> >> > > >
>>>>>>>> >> > > > Tim.
>>>>>>>> >> > > >
>>>>>>>> >> > > >> On Feb 26, 2016, at 4:29 PM, SAMPAD SAHA <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> Hi Jason,
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> Thank you for the explanation. It really helped me.
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> So, basically we want to start it, firstly, by creating a
>>>>>>>> module which would deal with the mathematical operations performed on
>>>>>>>> Singularity Functions. After this whole module is prepared, we would 
>>>>>>>> focus
>>>>>>>> on how to use this module for solving beam problems. Am I correct?
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> Can you please explain me in brief that what are the
>>>>>>>> mathematical operations we wanted to implement on that module?
>>>>>>>> >> > > >>
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> On Friday, February 26, 2016 at 4:54:59 PM UTC+5:30,
>>>>>>>> SAMPAD SAHA wrote:
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> Hi,
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> I am Sampad Kumar Saha , an Undergraduate Mathematics and
>>>>>>>> Computing Student at I.I.T. Kharagpur.
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> I have gone through the idea page and I am interested in
>>>>>>>> working on the project named Singularity Function.
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> By going through the Idea, I understood that we want to
>>>>>>>> add a package to Sympy which can be used for for solving beam bending
>>>>>>>> stress and deflection problems using singularity function. Am I 
>>>>>>>> correct?
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> We can by this way:-
>>>>>>>> >> > > >> While solving we will be having the moment function as an
>>>>>>>> input which we can arrange in the form of singularity functions and 
>>>>>>>> then
>>>>>>>> integrate it twice to get the deflection curve and we can give the 
>>>>>>>> plot or
>>>>>>>> the equation obtained of deflection curve as an output.
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> I have gone through some documents available on internet
>>>>>>>> which have brief studies on solving beam bending stress and deflection
>>>>>>>> problems using singularity functions.
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> References:-
>>>>>>>> >> > > >>       • Beam Deflection By Discontinuity Functions.
>>>>>>>> >> > > >>       • Beam Equation Using Singularity Functions.
>>>>>>>> >> > > >>       • Enhanced Student Learning in Engineering Courses
>>>>>>>> with CAS Technology.
>>>>>>>> >> > > >> Since there is just a brief idea given in the idea page,
>>>>>>>> I have a doubt that what are the things other than solving beam bending
>>>>>>>> stress and deflection problems to be implemented in the project?
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> Any type of suggestions are welcome.
>>>>>>>> >> > > >>
>>>>>>>> >> > > >>
>>>>>>>> ==========================================================================================================================================
>>>>>>>> >> > > >> Regards
>>>>>>>> >> > > >> Sampad Kumar Saha
>>>>>>>> >> > > >> Mathematics and Computing
>>>>>>>> >> > > >> I.I.T. Kharagpur
>>>>>>>> >> > > >>
>>>>>>>> >> > > >> --
>>>>>>>> >> > > >> 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 [email protected].
>>>>>>>> >> > > >> To post to this group, send email to
>>>>>>>> [email protected].
>>>>>>>> >> > > >> Visit this group at https://groups.google.com/group/sympy
>>>>>>>> .
>>>>>>>> >> > > >> To view this discussion on the web visit
>>>>>>>> https://groups.google.com/d/msgid/sympy/7cbe2101-fd59-484b-9e25-f563636d6366%40googlegroups.com
>>>>>>>> .
>>>>>>>> >> > > >> For more options, visit
>>>>>>>> https://groups.google.com/d/optout.
>>>>>>>> >> > > >
>>>>>>>> >> > > > --
>>>>>>>> >> > > > 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 [email protected].
>>>>>>>> >> > > > To post to this group, send email to
>>>>>>>> [email protected].
>>>>>>>> >> > > > Visit this group at https://groups.google.com/group/sympy.
>>>>>>>> >> > > > To view this discussion on the web visit
>>>>>>>> https://groups.google.com/d/msgid/sympy/1795A385-4AEA-44FD-BEE8-8115D53DA14B%40gmail.com
>>>>>>>> .
>>>>>>>> >> > > > For more options, visit https://groups.google.com/d/optout
>>>>>>>> .
>>>>>>>> >> > >
>>>>>>>> >> > > --
>>>>>>>> >> > > 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 [email protected].
>>>>>>>> >> > > To post to this group, send email to [email protected].
>>>>>>>> >> > > Visit this group at https://groups.google.com/group/sympy.
>>>>>>>> >> > > To view this discussion on the web visit
>>>>>>>> https://groups.google.com/d/msgid/sympy/CAKgW%3D6JiW6zhx%3DcTahjcugKaR3jOTrYOnFJWYRr-%2BNiS-2zcLQ%40mail.gmail.com
>>>>>>>> .
>>>>>>>> >> > > For more options, visit https://groups.google.com/d/optout.
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > > --
>>>>>>>> >> > > 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 [email protected].
>>>>>>>> >> > > To post to this group, send email to [email protected].
>>>>>>>> >> > > Visit this group at https://groups.google.com/group/sympy.
>>>>>>>> >> > > To view this discussion on the web visit
>>>>>>>> https://groups.google.com/d/msgid/sympy/CANzav4HrH7YbrOm4%3D9s2%2BHevCnCv4vz1RbuU%2BZWwLWLnCZpbcw%40mail.gmail.com
>>>>>>>> .
>>>>>>>> >> > >
>>>>>>>> >> > > For more options, visit https://groups.google.com/d/optout.
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > > --
>>>>>>>> >> > > 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 [email protected].
>>>>>>>> >> > > To post to this group, send email to [email protected].
>>>>>>>> >> > > Visit this group at https://groups.google.com/group/sympy.
>>>>>>>> >> > > To view this discussion on the web visit
>>>>>>>> https://groups.google.com/d/msgid/sympy/CAKgW%3D6KrEOoZ-CvGJ_HTBVSpTLVkW6geUfvXdP8GAiBNO4y8qQ%40mail.gmail.com
>>>>>>>> .
>>>>>>>> >> > >
>>>>>>>> >> > > For more options, visit https://groups.google.com/d/optout.
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > > --
>>>>>>>> >> > > 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 [email protected].
>>>>>>>> >> > > To post to this group, send email to [email protected].
>>>>>>>> >> > > Visit this group at https://groups.google.com/group/sympy.
>>>>>>>> >> > > To view this discussion on the web visit
>>>>>>>> https://groups.google.com/d/msgid/sympy/CANzav4EeosCsLaP55dwMpKxOxBkGhW6ZAkeCQiSvQnXtieU6PQ%40mail.gmail.com
>>>>>>>> .
>>>>>>>> >> > >
>>>>>>>> >> > > For more options, visit https://groups.google.com/d/optout.
>>>>>>>> >> > >
>>>>>>>> >> > >
>>>>>>>> >> > > --
>>>>>>>> >> > > 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 [email protected].
>>>>>>>> >> > > To post to this group, send email to [email protected].
>>>>>>>> >> > > Visit this group at https://groups.google.com/group/sympy.
>>>>>>>> >> > > To view this discussion on the web visit
>>>>>>>> https://groups.google.com/d/msgid/sympy/CAP7f1AjHOvGfvxRfOTy2RhRm3YnNc_eJ9OpjBOain6iK15chMA%40mail.gmail.com
>>>>>>>> .
>>>>>>>> >> > > For more options, visit https://groups.google.com/d/optout.
>>>>>>>> >> >
>>>>>>>> >> > --
>>>>>>>> >> > 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 [email protected].
>>>>>>>> >> > To post to this group, send email to [email protected].
>>>>>>>> >> > Visit this group at https://groups.google.com/group/sympy.
>>>>>>>> >> > To view this discussion on the web visit
>>>>>>>> https://groups.google.com/d/msgid/sympy/B66DECFB-0205-41DC-A09D-342BBDF6FAC4%40gmail.com
>>>>>>>> .
>>>>>>>> >> > For more options, visit https://groups.google.com/d/optout.
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >
>>>>>>>> >
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAP7f1AikCSpcNxtS_5g5pEE6UFwfNEC0GD9ge_UkdqOodK5Bjw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to