def test_correct_arguments(): raises(ValueError, lambda: R2.e_x(R2.e_x)) raises(ValueError, lambda: R2.e_x(R2.dx)) raises(ValueError, lambda: Commutator(R2.e_x, R2.x)) raises(ValueError, lambda: Commutator(R2.dx, R2.e_x)) raises(ValueError, lambda: Differential(Differential(R2.e_x))) raises(ValueError, lambda: R2.dx(R2.x)) raises(ValueError, lambda: LieDerivative(R2.dx, R2.dx)) raises(ValueError, lambda: LieDerivative(R2.x, R2.dx)) raises(ValueError, lambda: CovarDerivativeOp(R2.dx, [])) raises(ValueError, lambda: CovarDerivativeOp(R2.x, [])) a = Symbol('a') raises(ValueError, lambda: intcurve_series(R2.dx, a, R2_r.point([1, 2]))) raises(ValueError, lambda: intcurve_series(R2.x, a, R2_r.point([1, 2]))) raises(ValueError, lambda: intcurve_diffequ(R2.dx, a, R2_r.point([1, 2]))) raises(ValueError, lambda: intcurve_diffequ(R2.x, a, R2_r.point([1, 2]))) raises(ValueError, lambda: contravariant_order(R2.e_x + R2.dx)) raises(ValueError, lambda: covariant_order(R2.e_x + R2.dx)) raises(ValueError, lambda: contravariant_order(R2.e_x * R2.e_y)) raises(ValueError, lambda: covariant_order(R2.dx * R2.dy))
def test_correct_arguments(): raises(ValueError, lambda : R2.e_x(R2.e_x)) raises(ValueError, lambda : R2.e_x(R2.dx)) raises(ValueError, lambda : Commutator(R2.e_x, R2.x)) raises(ValueError, lambda : Commutator(R2.dx, R2.e_x)) raises(ValueError, lambda : Differential(Differential(R2.e_x))) raises(ValueError, lambda : R2.dx(R2.x)) raises(ValueError, lambda : TensorProduct(R2.e_x, R2.dx)) raises(ValueError, lambda : LieDerivative(R2.dx, R2.dx)) raises(ValueError, lambda : LieDerivative(R2.x, R2.dx)) raises(ValueError, lambda : CovarDerivativeOp(R2.dx, [])) raises(ValueError, lambda : CovarDerivativeOp(R2.x, [])) a = Symbol('a') raises(ValueError, lambda : intcurve_series(R2.dx, a, R2_r.point([1,2]))) raises(ValueError, lambda : intcurve_series(R2.x, a, R2_r.point([1,2]))) raises(ValueError, lambda : intcurve_diffequ(R2.dx, a, R2_r.point([1,2]))) raises(ValueError, lambda : intcurve_diffequ(R2.x, a, R2_r.point([1,2]))) raises(ValueError, lambda : contravariant_order(R2.e_x + R2.dx)) raises(ValueError, lambda : covariant_order(R2.e_x + R2.dx)) raises(ValueError, lambda : contravariant_order(R2.e_x*R2.e_y)) raises(ValueError, lambda : covariant_order(R2.dx*R2.dy))
def test_intcurve_diffequ(): t = symbols('t') start_point = R2_r.point([1, 0]) vector_field = -R2.y*R2.e_x + R2.x*R2.e_y equations, init_cond = intcurve_diffequ(vector_field, t, start_point) assert str(equations) == '[f_1(t) + Derivative(f_0(t), t), -f_0(t) + Derivative(f_1(t), t)]' assert str(init_cond) == '[f_0(0) - 1, f_1(0)]' equations, init_cond = intcurve_diffequ(vector_field, t, start_point, R2_p) assert str(equations) == '[Derivative(f_0(t), t), Derivative(f_1(t), t) - 1]' assert str(init_cond) == '[f_0(0) - 1, f_1(0)]'
# Calculate the series: intcurve_series(vector_field, t, start_point, n=3) # Or get the elements of the expansion in a list: series = intcurve_series(vector_field, t, start_point, n=3, coeffs=True) series[0] series[1] series[2] #intcurve_diffequ from sympy.abc import t from sympy.diffgeom.rn import R2, R2_p, R2_r from sympy.diffgeom import intcurve_diffequ #Specify a starting point and a vector field: start_point = R2_r.point([0, 1]) vector_field = -R2.y*R2.e_x + R2.x*R2.e_y # get the equations, equations, init_cond = intcurve_diffequ(vector_field, t, start_point) equations init_cond # The series in the polar coordinate system: equations, init_cond = intcurve_diffequ(vector_field, t, start_point, R2_p) equations init_cond #vectors_in_basis #Transform all base vectors in base vectors of a specified coord basis. #While the new base vectors are in the new coordinate system basis, any coefficients are kept in the old system. from sympy.diffgeom import vectors_in_basis from sympy.diffgeom.rn import R2_r, R2_p vectors_in_basis(R2_r.e_x, R2_p) vectors_in_basis(R2_p.e_r, R2_r) #twoform_to_matrix from sympy.diffgeom.rn import R2