def test_nedelec_2d(): space = create_element("triangle", "Nedelec", 1) k = sympy.Symbol("k") tdim = 2 for i, edge in enumerate([((1, 0), (0, 1)), ((0, 0), (0, 1)), ((0, 0), (1, 0))]): for j, f in enumerate(space.get_basis_functions()): norm = sympy.sqrt( sum((edge[0][i] - edge[1][i])**2 for i in range(tdim))) tangent = tuple( (edge[1][i] - edge[0][i]) / norm for i in range(tdim)) line = sympy.Curve([(1 - k) * edge[0][i] + k * edge[1][i] for i in range(tdim)], (k, 0, 1)) result = sympy.line_integrate(vdot(f, tangent), line, x[:tdim]) if i == j: assert result == 1 else: assert result == 0
def test_lineintegral(): c = Curve([E**t + 1, E**t - 1], (t, 0, ln(2))) assert line_integrate(x + y, c, [x, y]) == 3*sqrt(2)
def body(f, e): return sp.line_integrate( phi.expression.dot(nife.unit_normal(e)) * f, nife.segment_to_curve(e), phi.vars)
x = x.replace("*", "·") print(x) ''' # integrate i = integrate(sin(x), (x)) p(i) i = integrate(sin(x), (x, 0, pi/2)) p(i) i = integrate(z, (x), (y), (z)) p(i) # plotting some func d = integrate(x, (x), (y)) plot3d(d, (x, -10, 10), (y, -10, 10)) c = integrate(x, (x)) plot(c, (x, 10, 20)) ''' ''' /////////////////////////////////// ''' from sympy import Curve, line_integrate, E, ln x, y, t = symbols("x y t") C = Curve([E**t + 1, E**t - 1], (t, 0, ln(2))) i = line_integrate(x + y, C, [x, y]) p(i)
sympy.sympify(res) # ## Line integrals # In[115]: t, x, y = sympy.symbols("t, x, y") # In[116]: C = sympy.Curve([sympy.cos(t), sympy.sin(t)], (t, 0, 2 * sympy.pi)) # In[117]: sympy.line_integrate(1, C, [x, y]) # In[118]: sympy.line_integrate(x**2 * y**2, C, [x, y]) # ## Integral transformations # ### Laplace transforms # In[119]: s = sympy.symbols("s") # In[120]:
def line_itegrate(self, curve): return sp.line_integrate(self.expression, curve, self.vars)
import nife import sympy as sp sp.init_printing() triangle = nife.Polygon([sp.Point(0, 0), sp.Point(0, 1), sp.Point(1, 0)]) fn = nife.Function(sp.sympify("a*x + b*y + c"), sp.sympify("x, y")) # V rozich exprs = [fn.eval_point(p) for p in triangle.points] sp.pprint(nife.make_shape_functions(fn, exprs)) # Integral pres hranu exprs = [fn.line_itegrate(nife.segment_to_curve(e)) for e in triangle.edges] sp.pprint(nife.make_shape_functions(fn, exprs)) # RT phi = nife.Function(sp.Matrix(sp.sympify("a*x + b, a*y + c")), sp.sympify("x, y")) exprs = [sp.line_integrate(phi.expression.dot(nife.unit_normal(e)), nife.segment_to_curve(e), phi.vars) for e in triangle.edges] sp.pprint(nife.make_shape_functions(phi, exprs))
response = [] import sympy radius, alpha, gravity = sympy.symbols('a,alpha,g', positive=True) theta = sympy.symbols('theta', real=True) potentialM = sympy.symbols( 'M', positive=True) * gravity * radius * sympy.sin(sympy.pi - alpha - theta) potentialm = sympy.symbols( 'm', positive=True) * gravity * radius * sympy.sin(theta - alpha) phi = sympy.symbols('phi', real=True) curve = sympy.Curve([radius * sympy.cos(phi), radius * sympy.sin(phi)], (phi, theta - alpha, theta + alpha)) y = sympy.symbols('y', real=True) potentialLamda = sympy.line_integrate( sympy.symbols('lamda', positive=True) * gravity * y, curve, ['x', y]) motion = sympy.diff(potentialM + potentialm + potentialLamda, theta).trigsimp() response += sympy.mathml(motion, printer='presentation'), import json, pathlib pathlib.Path(__file__).resolve().parent.joinpath('response.json').write_text( json.dumps(response))