Exemple #1
0
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))
Exemple #2
0
def test_covar_deriv():
    ch = metric_to_Christoffel_2nd(TP(R2.dx, R2.dx) + TP(R2.dy, R2.dy))
    cvd = BaseCovarDerivativeOp(R2_r, 0, ch)
    assert cvd(R2.x) == 1
    assert cvd(R2.x * R2.e_x) == R2.e_x
    cvd = CovarDerivativeOp(R2.x * R2.e_x, ch)
    assert cvd(R2.x) == R2.x
    assert cvd(R2.x * R2.e_x) == R2.x * R2.e_x
Exemple #3
0
def test_covar_deriv():
    ch = metric_to_Christoffel_2nd(TP(R2.dx, R2.dx) + TP(R2.dy, R2.dy))
    cvd = BaseCovarDerivativeOp(R2_r, 0, ch)
    assert cvd(R2.x) == 1
    # This line fails if the cache is disabled:
    assert cvd(R2.x * R2.e_x) == R2.e_x
    cvd = CovarDerivativeOp(R2.x * R2.e_x, ch)
    assert cvd(R2.x) == R2.x
    assert cvd(R2.x * R2.e_x) == R2.x * R2.e_x
from sympy.diffgeom import BaseCovarDerivativeOp
from sympy.diffgeom import metric_to_Christoffel_2nd, TensorProduct
TP = TensorProduct
ch = metric_to_Christoffel_2nd(TP(R2.dx, R2.dx) + TP(R2.dy, R2.dy))
ch
cvd = BaseCovarDerivativeOp(R2_r, 0, ch)
cvd(R2.x)
cvd(R2.x*R2.e_x)
#CovarDerivativeOp
from sympy.diffgeom.rn import R2
from sympy.diffgeom import CovarDerivativeOp
from sympy.diffgeom import metric_to_Christoffel_2nd, TensorProduct
TP = TensorProduct
ch = metric_to_Christoffel_2nd(TP(R2.dx, R2.dx) + TP(R2.dy, R2.dy))
ch
cvd = CovarDerivativeOp(R2.x*R2.e_x, ch)
cvd(R2.x)
cvd(R2.x*R2.e_x)
#intcurve_series
from sympy.abc import t, x, y
from sympy.diffgeom.rn import R2, R2_p, R2_r
from sympy.diffgeom import intcurve_series
# Specify a starting point and a vector field:
start_point = R2_r.point([x, y])
vector_field = R2_r.e_x
# 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]