Jason, Actually I have misunderstood earlier.
I have updated my proposal here <https://github.com/sympy/sympy/wiki/GSoC-2016-Application-Sampad-Kumar-Saha-:-Singularity-Functions> . Can you please review it and suggest me to improve it. Regards Sampad Kumar Saha Mathematics and Computing I.I.T. Kharagpur On Sat, Mar 19, 2016 at 9:14 PM, Jason Moore <[email protected]> wrote: > 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/CANzav4HruHdenSrw9qTDZtLN6cUYw%3Du2k5O%2BteRZBAg%2ByXN8ng%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
