[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-users] Using getfem for projections problems (bug ?)
From: |
Pablo Winant |
Subject: |
[Getfem-users] Using getfem for projections problems (bug ?) |
Date: |
Mon, 25 Oct 2010 14:48:47 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.11) Gecko/20101006 Thunderbird/3.1.5 |
Hello,
I am trying to use python-getfem to solve a nonlinear functional problem
: PHI(g) = 0 where g is the unknown function.
For this purpose, I create a mesh, choose fems on it. Then for given
coefficients on this elements, I compute PHI(g) ( which require
evaluating g at many points).
I have tried to use slice to specify the points at which I am evaluating
the approximating function but I was wondering whether there was a
better way to do it.
Currently I have :
---------------------------
import getfem as gf
from getfem import Mesh,MeshFem,Slice
M = Mesh('cartesian', np.array([0,0.5,1.0]), np.array([0,0.5,1.0]) )
MF = MeshFem(M)
MF.set_classical_fem(1)
theta0 = MF.eval('x[0]*x[1]') # this is just a random value for theta0
sl = Slice('points', M, np.array([[0.3,0.4,0.5],[0.3,0.4,0.5]]))
result = gf.compute_interpolate_on(MF,theta0,sl)
print result
-> array([ 0.09, 0.16, 0.25, 0.25, 0.25, 0.25])
print sl.pts
-> array([[ 0.3, 0.4, 0.5, 0.5, 0.5, 0.5],
[ 0.3, 0.4, 0.5, 0.5, 0.5, 0.5]])
-------------------------
The problem is that is central point [0.5,0.5], is duplicated 4 times
and as a result, the function is also evaluated 4 times on it. Is this
expected behaviour ? How can I simply evaluate a linear combination of
fem at any points ?
There is another related question. When specifying the vector of
coefficients I would also like to restrict the coefficients on the
frontier of the domain to be 0, but I found no simple way to do it. What
is the best way to retrieve the indices of the corresponding points ?
Thank you for your help,
Best,
Pablo Winant