Esempio n. 1
0
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
Esempio n. 2
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)
Esempio n. 3
0
 def body(f, e):
     return sp.line_integrate(
         phi.expression.dot(nife.unit_normal(e)) * f,
         nife.segment_to_curve(e), phi.vars)
Esempio n. 4
0
    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)
Esempio n. 5
0
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]:
Esempio n. 6
0
 def line_itegrate(self, curve):
     return sp.line_integrate(self.expression, curve, self.vars)
Esempio n. 7
0
File: demo.py Progetto: spirali/nife
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))
Esempio n. 8
0
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))