dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #22912
Re: [Question #154697]: computation of basis function values and derivatives
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 <
question154697@xxxxxxxxxxxxxxxxxxxxx> 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.
>
> --
> Anders
>
> --
> If this answers your question, please go to the following page to let 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.
>
--
*Nguyen Van Dang
Home Tel: +84 7 92 21 36 28
Another email: dang.1032170@xxxxxxxxxxxx*
You received this question notification because you are a member of
DOLFIN Team, which is an answer contact for DOLFIN.
Follow ups
References