Module Expr Str ImportFrom alias alias Assign NameStore ListLoad Str ImportFrom alias alias alias alias alias alias alias alias alias alias ImportFrom alias ImportFrom alias ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad AttributeLoad NameLoad attr NameLoad Call NameLoad Str body Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad If CompareIsNot NameLoad NameLoad body Assign AttributeStore NameLoad attr BinOpDiv Num AttributeLoad NameLoad attr If CompareIsNot NameLoad NameLoad body Assign AttributeStore NameLoad attr BinOpDiv Num AttributeLoad NameLoad attr If CompareIsNot NameLoad NameLoad body If CompareNotEq NameLoad BinOpDiv Num NameLoad body Raise Call NameLoad Str If BoolOpAnd CompareIs NameLoad NameLoad CompareIs NameLoad NameLoad body Raise Call NameLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Str Return AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return BinOpDiv NameLoad BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return BinOpMult BinOpMult Num NameLoad AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return BinOpDiv BinOpMult Num NameLoad AttributeLoad NameLoad attr decorator_list NameLoad FunctionDef arguments args NameParam defaults body Expr Str ImportFrom alias Return BinOpAdd AttributeLoad Call NameLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr decorator_list Assign NameStore NameLoad FunctionDef arguments args NameParam NameParam defaults body Expr Str If Call NameLoad NameLoad NameLoad body If BoolOpAnd CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return Call NameLoad Call NameLoad BinOpAdd BinOpAdd BinOpPow AttributeLoad NameLoad attr Num BinOpPow AttributeLoad NameLoad attr Num BinOpMult BinOpMult BinOpMult Num AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call NameLoad BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call NameLoad BinOpAdd BinOpMult AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr BinOpMult AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr BinOpAdd BinOpMult AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr BinOpMult AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr orelse Raise Call NameLoad Str orelse Raise Call NameLoad BinOpAdd AttributeLoad Call NameLoad NameLoad attr Str decorator_list FunctionDef arguments args NameParam defaults vararg body Return BinOpMult AttributeLoad NameLoad attr Call NameLoad BinOpAdd BinOpAdd BinOpSub BinOpMult AttributeLoad NameLoad attr Call NameLoad Str BinOpMult AttributeLoad NameLoad attr Call NameLoad Str AttributeLoad NameLoad attr BinOpDiv NameLoad Num keyword NameLoad decorator_list FunctionDef arguments args NameParam defaults vararg body Return BinOpMult AttributeLoad NameLoad attr Call NameLoad BinOpAdd BinOpSub BinOpMult AttributeLoad NameLoad attr Call NameLoad Str BinOpMult AttributeLoad NameLoad attr Call NameLoad Str AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults vararg body ImportFrom alias Assign TupleStore NameStore NameStore NameStore NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Return BinOpAdd Call NameLoad Call NameLoad NameLoad NameLoad NameLoad Num BinOpMult BinOpMult NameLoad NameLoad Call NameLoad Call NameLoad NameLoad NameLoad NameLoad Num decorator_list FunctionDef arguments args NameParam defaults vararg body ImportFrom alias alias Return BinOpMult AttributeLoad NameLoad attr Call NameLoad BinOpMult NameLoad BinOpAdd BinOpSub BinOpMult AttributeLoad NameLoad attr Call NameLoad Str BinOpMult AttributeLoad NameLoad attr Call NameLoad Str AttributeLoad NameLoad attr decorator_list decorator_list
N/A N/A 
This module has all the classes and functions related to waves in optics.

**Contains**

* TWave
 __future__ print_function division N/A __all__ N/A TWave sympy sympify pi sin cos sqrt Symbol S symbols Derivative atan2 sympy.core.expr Expr sympy.physics.units c TWave N/A Expr N/A N/A 
    This is a simple transverse sine wave travelling in a one dimensional space.
    Basic properties are required at the time of creation of the object but
    they can be changed later with respective methods provided.

    It has been represented as :math:`A \times cos(k*x - \omega \times t + \phi )`
    where :math:`A` is amplitude, :math:`\omega` is angular velocity, :math:`k`is
    wavenumber, :math:`x` is a spatial variable to represent the position on the
    dimension on which the wave propagates and :math:`\phi` is phase angle of the wave.


    Arguments
    =========

    amplitude : Sympifyable
        Amplitude of the wave.
    frequency : Sympifyable
        Frequency of the wave.
    phase : Sympifyable
        Phase angle of the wave.
    time_period : Sympifyable
        Time period of the wave.
    n : Sympifyable
        Refractive index of the medium.

    Raises
    =======

    ValueError : When neither frequency nor time period is provided
        or they are not consistent.
    TypeError : When anyting other than TWave objects is added.


    Examples
    ========

    >>> from sympy import symbols
    >>> from sympy.physics.optics import TWave
    >>> A1, phi1, A2, phi2, f = symbols('A1, phi1, A2, phi2, f')
    >>> w1 = TWave(A1, f, phi1)
    >>> w2 = TWave(A2, f, phi2)
    >>> w3 = w1 + w2  # Superposition of two waves
    >>> w3
    TWave(sqrt(A1**2 + 2*A1*A2*cos(phi1 - phi2) + A2**2), f,
        atan2(A1*cos(phi1) + A2*cos(phi2), A1*sin(phi1) + A2*sin(phi2)))
    >>> w3.amplitude
    sqrt(A1**2 + 2*A1*A2*cos(phi1 - phi2) + A2**2)
    >>> w3.phase
    atan2(A1*cos(phi1) + A2*cos(phi2), A1*sin(phi1) + A2*sin(phi2))
    >>> w3.speed
    299792458*m/(n*s)
    >>> w3.angular_velocity
    2*pi*f

     __init__ N/A N/A self amplitude frequency phase time_period n N/A None N/A S Zero None N/A Symbol n N/A N/A frequency N/A sympify frequency N/A amplitude N/A sympify amplitude N/A phase N/A sympify phase N/A time_period N/A sympify time_period N/A n N/A sympify n N/A N/A self _frequency frequency N/A N/A self _amplitude amplitude N/A N/A self _phase phase N/A N/A self _time_period time_period N/A N/A self _n n N/A N/A time_period None N/A N/A N/A self _frequency N/A 1 N/A self _time_period N/A N/A frequency None N/A N/A N/A self _time_period N/A 1 N/A self _frequency N/A N/A time_period None N/A N/A N/A frequency N/A 1 time_period N/A N/A N/A ValueError frequency and time_period should be consistent. N/A N/A N/A frequency None N/A time_period None N/A N/A N/A ValueError Either frequency or time period is needed. N/A frequency N/A N/A self N/A N/A N/A 
        Returns the frequency of the wave.

        Examples
        ========

        >>> from sympy import symbols
        >>> from sympy.physics.optics import TWave
        >>> A, phi, f = symbols('A, phi, f')
        >>> w = TWave(A, f, phi)
        >>> w.frequency
        f
         N/A N/A self _frequency N/A property time_period N/A N/A self N/A N/A N/A 
        Returns the time period of the wave.

        Examples
        ========

        >>> from sympy import symbols
        >>> from sympy.physics.optics import TWave
        >>> A, phi, f = symbols('A, phi, f')
        >>> w = TWave(A, f, phi)
        >>> w.time_period
        1/f
         N/A N/A self _time_period N/A property wavelength N/A N/A self N/A N/A N/A 
        Returns wavelength of the wave.
        It depends on the medium of the wave.

        Examples
        ========

        >>> from sympy import symbols
        >>> from sympy.physics.optics import TWave
        >>> A, phi, f = symbols('A, phi, f')
        >>> w = TWave(A, f, phi)
        >>> w.wavelength
        299792458*m/(f*n*s)
         N/A N/A c N/A N/A self _frequency N/A self _n N/A property amplitude N/A N/A self N/A N/A N/A 
        Returns the amplitude of the wave.

        Examples
        ========

        >>> from sympy import symbols
        >>> from sympy.physics.optics import TWave
        >>> A, phi, f = symbols('A, phi, f')
        >>> w = TWave(A, f, phi)
        >>> w.amplitude
        A
         N/A N/A self _amplitude N/A property phase N/A N/A self N/A N/A N/A 
        Returns the phase angle of the wave.

        Examples
        ========

        >>> from sympy import symbols
        >>> from sympy.physics.optics import TWave
        >>> A, phi, f = symbols('A, phi, f')
        >>> w = TWave(A, f, phi)
        >>> w.phase
        phi
         N/A N/A self _phase N/A property speed N/A N/A self N/A N/A N/A 
        Returns the speed of travelling wave.
        It is medium dependent.

        Examples
        ========

        >>> from sympy import symbols
        >>> from sympy.physics.optics import TWave
        >>> A, phi, f = symbols('A, phi, f')
        >>> w = TWave(A, f, phi)
        >>> w.speed
        299792458*m/(n*s)
         N/A N/A N/A self wavelength N/A self _frequency N/A property angular_velocity N/A N/A self N/A N/A N/A 
        Returns angular velocity of the wave.

        Examples
        ========

        >>> from sympy import symbols
        >>> from sympy.physics.optics import TWave
        >>> A, phi, f = symbols('A, phi, f')
        >>> w = TWave(A, f, phi)
        >>> w.angular_velocity
        2*pi*f
         N/A N/A N/A 2 pi N/A self _frequency N/A property wavenumber N/A N/A self N/A N/A N/A 
        Returns wavenumber of the wave.

        Examples
        ========

        >>> from sympy import symbols
        >>> from sympy.physics.optics import TWave
        >>> A, phi, f = symbols('A, phi, f')
        >>> w = TWave(A, f, phi)
        >>> w.wavenumber
        pi*f*n*s/(149896229*m)
         N/A N/A N/A 2 pi N/A self wavelength N/A property __str__ N/A N/A self N/A N/A N/A String representation of a TWave. sympy.printing sstr N/A N/A N/A N/A type self __name__ N/A sstr N/A self args N/A N/A __repr__ __str__ __add__ N/A N/A self other N/A N/A N/A 
        Addition of two waves will result in their superposition.
        The type of interference will depend on their phase angles.
         N/A N/A isinstance other TWave N/A N/A N/A N/A N/A self _frequency N/A other _frequency N/A N/A self wavelength N/A other wavelength N/A N/A N/A TWave N/A sqrt N/A N/A N/A N/A self _amplitude 2 N/A N/A other _amplitude 2 N/A N/A N/A 2 N/A self amplitude N/A other amplitude N/A cos N/A N/A self _phase N/A other phase N/A self frequency N/A atan2 N/A N/A N/A self _amplitude N/A cos N/A self _phase N/A N/A other _amplitude N/A cos N/A other _phase N/A N/A N/A self _amplitude N/A sin N/A self _phase N/A N/A other _amplitude N/A sin N/A other _phase N/A N/A N/A NotImplementedError Interference of waves with different frequencies has not been implemented. N/A N/A N/A TypeError N/A N/A N/A type other __name__  and TWave objects can't be added. N/A _eval_rewrite_as_sin N/A N/A self N/A args N/A N/A N/A N/A self _amplitude N/A sin N/A N/A N/A N/A N/A self wavenumber N/A Symbol x N/A N/A self angular_velocity N/A Symbol t N/A self _phase N/A pi 2 evaluate False N/A _eval_rewrite_as_cos N/A N/A self N/A args N/A N/A N/A N/A self _amplitude N/A cos N/A N/A N/A N/A self wavenumber N/A Symbol x N/A N/A self angular_velocity N/A Symbol t N/A self _phase N/A _eval_rewrite_as_pde N/A N/A self N/A args N/A sympy Function N/A N/A mu epsilon x t N/A symbols mu, epsilon, x, t N/A E N/A Function E N/A N/A N/A Derivative N/A E x t x 2 N/A N/A mu epsilon N/A Derivative N/A E x t t 2 N/A _eval_rewrite_as_exp N/A N/A self N/A args N/A sympy exp I N/A N/A N/A self _amplitude N/A exp N/A I N/A N/A N/A N/A self wavenumber N/A Symbol x N/A N/A self angular_velocity N/A Symbol t N/A self _phase N/A N/A