dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #14362
Re: using grad() inside a C++ program
On Thu, Jul 09, 2009 at 11:43:08AM -0600, Bartosz Sawicki wrote:
> phil marinier wrote:
> > sry about the subject line.
> >
> > I understand how to use grad() in my .ufl file that I then compile to
> > get a .h file. What I don't understand is how to use grad() inside my
> > actual code.
>
> In .ufl file you describe forms, then it is compiled to .h, then in C++
> you define VariationalProblem using forms from .h, and finally you have
> to solve it.
>
> Fenics is all about linear forms. You need to understand this concept to
> use this software efficiently.
>
>
> > I am iterating my boundary condition depending on the gradient normal
> > to the surface. To do this, I need to be able to find the gradient
> > from inside my program. Maybe I'm just missing something, but the way
> > I understand it is that I cannot use grad() directly in my C++
> > program, only in my .ufl file, but if I were to use python, I would
> > be able to use grad() directly in my program. I am unable to test
> > this out due to unrelated problems with my compiler that I'm slowly
> > working through.
>
> In python you have just simple interface to create forms, but it doesn't
> mean that you can directly calculate gradient without solving
> variational problem.
Actually, you can do things like
w = project(grad(u), V)
or
plot(grad(u))
directly in Python, which automatically handles the projection, but
you are right that all of this is handled by solving a variational
problem for the projection.
--
Anders
> > What I want to end up with is a C++ function that takes in a dolfin
> > Function and outputs a C++ vector of the gradients normal to the
> > boundary at each node.
>
> I'm not sure how to describe your problem in UFL language. Definition of
> vector normal to the boundary at vertex will be troublesome.
>
> cheers,
> BArtek
>
>
> > Thanks for your help
> >
> > Phil
> >
> >
> >
> >
> >
> >> Date: Wed, 8 Jul 2009 14:25:23 -0600 From: sawickib@xxxxxxxxxxxxx
> >> To: lonewolf_13p@xxxxxxxxxxx CC: dolfin-dev@xxxxxxxxxx Subject: Re:
> >> [DOLFIN-dev] (no subject)
> >>
> >> Phil, could you please give subject to your emails. Subject is very
> >> important part of a message, it help readers to classify it.
> >>
> >> Python dolfin module is just an interface to the C++ library, so
> >> every functionality available in python is in C++ too. Remember
> >> that to use grad() in C++ you need to define UFL form.
> >>
> >> cheers,
> >>
> >>
> >>
>
> >> phil marinier wrote:
> >>> I need to find the gradient perpendicular to the boundary. I know
> >>> I can find the gradient in python using the grad(v) command, but
> >>> I don't think I can do the same in C++. Is it possible? and if it
> >>> is possible is it worth the trouble or would it be easier to
> >>> rewrite in python? Thanks for your help
> >>>
> >>>
> >>>
> >>> ------------------------------------------------------------------------
> >>>
> >>>
> >>>
> >>> _______________________________________________ DOLFIN-dev
> >>> mailing list DOLFIN-dev@xxxxxxxxxx
> >>> http://www.fenics.org/mailman/listinfo/dolfin-dev
> >
>
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev
Attachment:
signature.asc
Description: Digital signature
References