From: John Peterson <jwpeterson@gm...>  20081204 19:32:19

On Thu, Dec 4, 2008 at 12:39 PM, bkraczek <bkraczek@...> wrote: > I'm new to libmesh, and I am not a great C++ programmer, so the answer to > this may seem obvious. I am working from example 3 to implement a poisson > solver with a RHS that includes the dot product of the weighting function > with a vector that I set. > > So, working from line 351 of ex3.C, > > Fe(i) += JxW[qp]*fxy*phi[i][qp]; > > I want to change this to > > Fe(i) += JxW[qp]*dphi[i][qp]* gradGat ; > > where gradGat is the vector I desire to take the inner product with. How do > I properly construct gradGat so I can get the desired dot product? You can construct a Gradient object like this: Gradient gradGat(xvalue, yvalue, zvalue); See: include/numerics/vector_value.h, Gradient is nothing but a typedef for VectorValue<Number>, so you can use any of the VectorValue constructors which are available. Also, you may want to put parentheses, like so: JxW[qp]*(dphi[i][qp]* gradGat) ; to guarantee order of operation, but it should work either way.  John 