AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |
Back to Blog
![]() As a demo of vib.py, we consider the case The above code snippets and can solve the model problem damping u, t = solver ( I, V, m, c, s, F, dt, T ) num_periods = empirical_freq_and_amplitude ( u, t ) if num_periods <= 15 : figure () visualize ( u, t ) else : visualize_front ( u, t, window_width, savefig ) show () ![]() ![]() F, independent_variable = 't' ) I, V, m, c, dt, T, window_width, savefig, damping = \Ī. s, independent_variable = 'u' ) F = StringFunction ( a. parse_args () from scitools.std import StringFunction s = StringFunction ( a. add_argument ( '-savefig', action = 'store_true' ) a = parser. add_argument ( '-window_width', type = float, default = 30 ) parser. add_argument ( '-damping', type = str, default = 'linear' ) parser. add_argument ( '-T', type = float, default = 140 ) parser. add_argument ( '-dt', type = float, default = 0.05 ) parser. add_argument ( '-F', type = str, default = '0' ) parser. add_argument ( '-s', type = str, default = 'u' ) parser. add_argument ( '-c', type = float, default = 0.0 ) parser. add_argument ( '-m', type = float, default = 1.0 ) parser. add_argument ( '-V', type = float, default = 0.0 ) parser. add_argument ( '-I', type = float, default = 1.0 ) parser. The complete code resides in the file vib.py.ĭef main (): import argparse parser = argparse. linspace ( 0, Nt * dt, Nt 1 ) u = I if damping = 'linear' : u = u dt * V dt ** 2 / ( 2 * m ) * ( - b * V - s ( u ) F ( t )) elif damping = 'quadratic' : u = u dt * V \ĭt ** 2 / ( 2 * m ) * ( - b * V * abs ( V ) - s ( u ) F ( t )) for n in range ( 1, Nt ): if damping = 'linear' : u = ( 2 * m * u ( b * dt / 2 - m ) * u dt ** 2 * ( F ( t ) - s ( u ))) / ( m b * dt / 2 ) elif damping = 'quadratic' : u = ( 2 * m * u - m * u b * u * abs ( u - u ) dt ** 2 * ( F ( t ) - s ( u ))) /\ """ dt = float ( dt ) b = float ( b ) m = float ( m ) # avoid integer div. If damping is 'linear', f(u')=b*u, while if damping is 'quadratic', f(u')=b*u'*abs(u'). Def solver ( I, V, m, b, s, F, dt, T, damping = 'linear' ): """ Solve m*u'' f(u') s(u) = F(t) for t in (0,T], u(0)=I and u'(0)=V, by a central finite difference method with time step dt. ![]()
0 Comments
Read More
Leave a Reply. |