|
From: | Richard George |
Subject: | [Getfem-users] gf_asm : How to use? |
Date: | Sat, 14 Jul 2007 02:05:14 +0100 |
User-agent: | Thunderbird 2.0.0.4 (Windows/20070604) |
Hello I'd like to evaluate the integral of the normal component of a vector valued mesh_fem on a boundary, I have 'U' as a vector valued function represented by a FEM_PK(3,1) object, and 'a' being a scalar valued function that takes a constant value on each convex, represented by a FEM_DISCONTINUOUS_PK(3,0) object. The code for evaluating the first integral via gf_asm is possible I think by making a contraction of a vBase() with a Normal() I1 = gf_asm('boundary',1,'u=data(#1);V()+=u(i).comp(vBase(#1).Normal())(i,j,j);',mim,mf,U); This appears to give the right results in some simple tests - I'm assuming that i sums over nodes, while j,j sums over vector components and provides a dot product - but I don't really understand how are the indexes on the comp() function are determined ? When do the indexes all refer to cartesian vector components, and when are they local node numbers? am I using the Normal() option correctly? I think it should be possible to specify the second integral as a contraction of 'a', 'U' and a tensor but I don't think I grasp the syntax of the gf_asm command properly. Could you explain how to specify integral I2 via gf_asm, and when it's appropriate to use a=data(#1) a=data$1(#1) a=data(#1,qdim(#1)) I2 = gf_asm('boundary',1,'u=data(#1);a=data(#2) ;V()+=a(i).u(j,k).comp(---??---.vBase(#1).Normal())(i,j,k,l,l);',mim,mf1,mf0,U,A); Thanks for any help you can provide Yours Richard George |
[Prev in Thread] | Current Thread | [Next in Thread] |