Just look it up in the UFC manual. -- Anders
On Mon, May 02, 2011 at 09:40:24AM -0700, Johan Hake wrote: > Not sure what you mean. > > You call evaluate_basis_derivatives with a value argument. Without knowing too > much how the generated code is supposed to be used, I would suspect that you > would then need to pass a pointer to a C-array with appropriate length to get > the correct values out. > > Johan > > On Monday May 2 2011 09:27:21 Nguyen Van Dang wrote: > > Question #154697 on DOLFIN changed: > > https://answers.launchpad.net/dolfin/+question/154697 > > > > Status: Answered => Open > > > > Nguyen Van Dang is still having a problem: > > It works. Thank you very much for your help. > > However, the form of basis functions is phi(x,y). So, my expectation is > > getting the gradient of these functions. It means that the output is a > > vector, not a scalar. Would you like to tell me how to do that? > > Thanks in advance, > > > > Nguyen Van Dang > > > > On Sun, May 1, 2011 at 10:27 PM, Johan Hake < > > > > [email protected]> wrote: > > > Your question #154697 on DOLFIN changed: > > > https://answers.launchpad.net/dolfin/+question/154697 > > > > > > Status: Open => Answered > > > > > > Johan Hake proposed the following answer: > > > dolfin::FiniteElemens is a thin wrapper around ufc::finite_element and > > > are ment for the dolfin library to access. Therefore are most of the > > > function only > > > available using ufc cell. However, some of the methods have been made > > > available using a dolfin::cell. These are evaluate_basis and > > > evaluate_basis_all. The last one only in the development version of > > > dolfin. > > > > > > Garth or Anders need to comment on if we want to dublicate more of these > > > functions or if we should force the user to construct a UFCCell to call > > > the methos with. If I am not totally of the latter should be possible > > > by: > > > > > > ... > > > #include <"dolfin/fem/UFCCell.h"> > > > ... > > > dolfin::UFCCell ufc_cell(c); > > > finite_element.evaluate_basis_derivatives(i,n,dvalues,coordinates,ufc_cel > > > l) > > > > > > > > > Johan > > > > > > On Sunday May 1 2011 02:45:30 Nguyen Van Dang wrote: > > > > Question #154697 on DOLFIN changed: > > > > https://answers.launchpad.net/dolfin/+question/154697 > > > > > > > > Status: Answered => Open > > > > > > > > Nguyen Van Dang is still having a problem: > > > > Thank you very much for your reply. > > > > However, I still got problem with evaluate_basis_derivatives. My code > > > > is > > > > > > as > > > > > > > follows: > > > > Poisson::FunctionSpace V(mesh); > > > > const dolfin::FiniteElement& finite_element = V.element(); > > > > const dolfin::Cell& c = Cell(mesh,0); > > > > unsigned int i = 0; > > > > unsigned int n = 1; > > > > double values[1] = {0.0}; > > > > double coordinates[2] = {0.0,0.5}; > > > > //finite_element.evaluate_basis(i,values,coordinates,c) ; > > > > //std::cout<<"basis_value ="<<*values<< std::endl; > > > > double dval[2] = {0.0,0.0}; > > > > double* dvalues = &dval[0]; > > > > unsigned int n = 1; > > > > finite_element.evaluate_basis_derivatives(i,n,dvalues,coordinates,c) > > > > ; > > > > > > > > I got error because of the fourth variable c. In my program c is > > > > declared as dofin::Cell& but in original function its type is > > > > ufc::cell&. My questions are: > > > > 1. Why didn't I get this problem for evaluate_basis? > > > > 2. What will I do to fix this problem for evaluate_basis_derivatives? > > > > > > > > Please help me again. > > > > Thanks in advance. > > > > Nguyen Van Dang > > > > > > > > On Fri, Apr 29, 2011 at 3:24 PM, Anders Logg < > > > > > > > > [email protected]> wrote: > > > > > Your question #154697 on DOLFIN changed: > > > > > https://answers.launchpad.net/dolfin/+question/154697 > > > > > > > > > > Status: Open => Answered > > > > > > > > > > Anders Logg proposed the following answer: > > > > > > > > > > On Fri, Apr 29, 2011 at 08:01:55AM -0000, Nguyen Van Dang wrote: > > > > > > New question #154697 on DOLFIN: > > > > > > https://answers.launchpad.net/dolfin/+question/154697 > > > > > > > > > > > > Hello, > > > > > > > > > > > > I am working with FEnics on C++. I want to take the values of basis > > > > > > > > > > function at each vertex directly. I read BasisFunction.h online but I > > > > > don't know how to use this one. > > > > > > > > > > > Finally, I found in "Poisson.h" (created from "Poisson.ufl" in > > > > > > > > > > dolfin/demo/pde/poisson/cpp) class "poisson_finite_element_0" in > > > > > which there is function "evaluate_basis(unsigned int i, double* > > > > > values, double* coordinates, const ufc::cell& c)". > > > > > > > > > > > In "main.cpp" (in the same directory), I wrote: > > > > > > unsigned int i; > > > > > > double* values; > > > > > > double* coordinates; > > > > > > ufc::cell c; > > > > > > poisson_finite_element_0 finite_element; > > > > > > finite_element.evaluate_basis(i,values,coordinates,c); > > > > > > > > > > > > I compiled it without any errors. > > > > > > The problem is that how to input the value for c? > > > > > > In fact, I have read the paper "efficient representation of > > > > > > computational > > > > > > > > > > meshes" of A. Logg and I could make a loop for all cells as well as > > > > > vertices. However, the cell in this loop doesn't match with c anymore > > > > > (because they have different type). Moreover, it is difficult to > > > > > initialize > > > > > > > > > > the cell data structure: > > > > > > c.entity_indices = new unsigned int [...]; > > > > > > c.coordinates = new double[..]; > > > > > > ..... > > > > > > > > > > > > Is there any simple way to do this? Do you have any examples > > > > > > working > > > > > > on > > > > > > > > basis functions? > > > > > > > > > > Look at the FiniteElement class and the function > > > > > interpolate_vertex_values. > > > > > > > > > > More generally (for evaluation at arbitrary points), you can use the > > > > > functions evaluate_basis or evaluate_basis_all. > > > > > > > > > > > us > > > > > > > > know that it is solved: > > > https://answers.launchpad.net/dolfin/+question/154697/+confirm?answer_id= > > > > > > > > 0 > > > > > > > > > > If you still need help, you can reply to this email or go to the > > > > > following page to enter your feedback: > > > > > https://answers.launchpad.net/dolfin/+question/154697 > > > > > > > > > > You received this question notification because you are a direct > > > > > subscriber of the question. > > > > > _______________________________________________ > Mailing list: https://launchpad.net/~dolfin > Post to : [email protected] > Unsubscribe : https://launchpad.net/~dolfin > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

