예제 #1
0
def test_linear_expr_2d_1():

    domain = Domain('Omega', dim=2)
    x, y = domain.coordinates

    kappa = Constant('kappa', is_real=True)
    mu = Constant('mu', is_real=True)

    V = ScalarFunctionSpace('V', domain)

    u, u1, u2 = [element_of(V, name=i) for i in ['u', 'u1', 'u2']]
    v, v1, v2 = [element_of(V, name=i) for i in ['v', 'v1', 'v2']]

    # ...
    l = LinearExpr(v, x * y * v)
    print(l)
    print(l.expr)
    print(l(v1))
    # TODO
    #    print(l(v1+v2))
    print('')
    # ...

    # ...
    l = LinearExpr((v1, v2), x * v1 + y * v2)
    print(l)
    print(l.expr)
    print(l(u1, u2))
    # TODO
    #    print(l(u1+v1, u2+v2))
    print('')
예제 #2
0
def test_linear_expr_2d_2():

    domain = Domain('Omega', dim=2)
    x, y = domain.coordinates

    kappa = Constant('kappa', is_real=True)
    mu = Constant('mu', is_real=True)

    V = VectorFunctionSpace('V', domain)

    u, u1, u2 = [element_of(V, name=i) for i in ['u', 'u1', 'u2']]
    v, v1, v2 = [element_of(V, name=i) for i in ['v', 'v1', 'v2']]

    g = Tuple(x, y)
    l = LinearExpr(v, dot(g, v))
    print(l)
    print(l.expr)
    print(l(v1))
    # TODO
    #    print(l(v1+v2))
    print('')
    # ...

    # ...
    g1 = Tuple(x, 0)
    g2 = Tuple(0, y)
    l = LinearExpr((v1, v2), dot(g1, v1) + dot(g2, v2))
    print(l)
    print(l.expr)
    print(l(u1, u2))
    # TODO
    #    print(l(u1+v1, u2+v2))
    print('')
예제 #3
0
def test_linearize_expr_2d_1():
    domain = Domain('Omega', dim=2)
    x,y = domain.coordinates

    V1 = ScalarFunctionSpace('V1', domain)
    W1 = VectorFunctionSpace('W1', domain)

    v1 = element_of(V1, name='v1')
    w1 = element_of(W1, name='w1')

    alpha = Constant('alpha')

    F = element_of(V1, name='F')
    G = element_of(W1, 'G')


    # ...
    l = LinearExpr(v1, F**2*v1)
    a = linearize(l, F, trials='u1')
    print(a)
    # ...

    # ...
    l = LinearExpr(v1, dot(grad(F), grad(F))*v1)
    a = linearize(l, F, trials='u1')
    print(a)
    # ...

    # ...
    l = LinearExpr(v1, exp(-F)*v1)
    a = linearize(l, F, trials='u1')
    print(a)
    # ...

    # ...
    l = LinearExpr(v1, cos(F)*v1)
    a = linearize(l, F, trials='u1')
    print(a)
    # ...

    # ...
    l = LinearExpr(v1, cos(F**2)*v1)
    a = linearize(l, F, trials='u1')
    print(a)
    # ...

    # ...
    l = LinearExpr(v1, F**2*dot(grad(F), grad(v1)))
    a = linearize(l, F, trials='u1')
    print(a)
    # ...

    # ...
    l = LinearExpr(w1, dot(rot(G), grad(G))*w1)
    a = linearize(l, G, trials='u1')
    print(a)
예제 #4
0
def test_linearize_expr_2d_2():
    domain = Domain('Omega', dim=2)
    x, y = domain.coordinates

    V1 = ScalarFunctionSpace('V1', domain)

    v1 = element_of(V1, name='v1')

    alpha = Constant('alpha')

    F = element_of(V1, name='F')
    G = element_of(V1, name='G')

    # ...
    l1 = LinearExpr(v1, F**2 * v1)
    l = LinearExpr(v1, l1(v1))

    a = linearize(l, F, trials='u1')
    print(a)

    expected = linearize(l1, F, trials='u1')
    assert (linearize(l, F, trials='u1') == expected)