from a vecor field to get a gradient of scalar
I got a problem. How can I get a scalar field so that the gradient of scalar equals a vector field, locally.
thanks 
Re: from a vecor field to get a gradient of scalar
First of all, this is possible if and only if the vector field is irrotational. Assuming this is so in your case, I can suggest two ways, but there may be many details you will have to work out.
If v = grad(s) then

Re: from a vecor field to get a gradient of scalar
Thank you for your prompt reply. Actually, I used the second method say solving Poissonn equation. However, althogh Laplace(s)= div(v). locally, gradient(s) not equal V in some region. so they are not balanced
I do not know whether it is because of the order of scheme I used to discretize. 
Re: from a vecor field to get a gradient of scalar
Hi dusky.he,
>>this is possible if and only if the vector field is irrotational i am not agree the second approach proposed by Praveen is good idea but is incomplete. Based on Hodge decomposition theory any vector field, V, can be decomposed into a divergencefree component, Vd, and a curlfree component, Vc,so Vc is equal to gradient of some scalar, S. V = Vd + Vc and Vc = grad(S), div(Vd)=0, Curl(Vc)=0. so the proposed solution is work only if your vector field is divergence free. BC consistency is also essential. If your vector field is not divergencefree, i don't think that your problem has any solution or unique solution. But in certain condition you can find the best solution by solving the following least square problem: find S so, minimize 1/2  grad(S)  V  with the aid of suitable regularization you can get sequence of minimizing solution. 
Re: from a vecor field to get a gradient of scalar
Actually, there are more ways. The first might be to project out the rotational part. This is the analog of projecting out the irrotational part to get a (weakly) divergencefree field.
Another way is to do a leastsquares fit of a field that is really the gradient of a scalar to your given field. This is a finite element approach. Set up a rectangular grid over your problem domain. The we use Hermite scalar functions in which the gradient components are actual degrees of freedom. For example, you might use the Melosh element (see O. C. Zienkiewicz, "The Finite Element Method in Engineering Science," (1971), p179  also in later editions but I only have the old one). This element has the scalar potential and components of the gradient as degreesoffreedom. Or, you can use the classical bicubic element, which has an additional second crossderivative DOF. You then construct a vector element by taking the gradient of the scalar functions/elements. Now do a leastsquares fit to get the components/DOFs at the mesh points. Then use your irrotational vector elements to interpolate these. This will be pointwise irrotational. If you have data on a rectangular grid that must be fit exactly, you could fix the gradient components and do leastsquares with the potential component only. However, if you force a fit this way, the resulting field may not be as smooth as you would like or expect. In three dimensions, there is a 3D analog of the Melosh element and, of course, the tricubic element/function. 
All times are GMT 4. The time now is 06:43. 