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('')
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('')
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)
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)