Hi Robert,

Ok, sorry, I was confused by the naming : for "d_surface_flux" I was expecting a vector field as the parameter, not a scalar over which the gradient is computed before taking the actual flux. But the documentation is correct.


Le mercredi 29 août 2012 15:38:39 UTC+2, Robert Cimrman a écrit :
Hi David,

On 08/29/2012 02:05 PM, David Libault wrote:
> Hi Robert,
>  From the poisson.py I would like to probe the flux of grad(T) over a
> surface (Gamma_Left or Gamma_right), but I am not sure which term to use...

IMHO it's the same term as in my answer to Alec (thread "Question on the
``examples/diffusion/poisson.py''") - look at the post_process() function - the
term is d_surface_flux.

> I would use it in electrostatics (temperature is replaced by voltage), to
> compute the resistance of the volume imposing a voltage of 1 across two
> surfaces with dirichlet conditions and computing the electrical current.
> For a ohmic conductor, j = \sigma E = - \sigma grad(V), \sigma being the
> conductivity. j being the current density, the current intensity thru a
> surface is the flux of j thru that surface. For the case of homogenous
> \sigma, the term asked for above would do...

OK, let us know if d_surface_flux works for you - it can take a general
permeability tensor.


> Le dimanche 26 août 2012 22:55:49 UTC+2, Robert Cimrman a écrit :
>> On 08/26/2012 12:32 PM, Alec Kalinin wrote:
>>> Hi Robert,
>>> Did you mean "linear_elastic_probes.html" instead of
>>> "linear_elastic_tractions.html" example? I found the
>>> "linear_elastic_probes.html" very useful example for my purposes to
>> probe a
>>> solution in the given (x, y, z) points. Also the documentation
>>> "src/sfepy/fem/probes.html" gives all necessary information to help me
>>> implement what I want to do. Thank you!
>> Sorry, I cut&pasted a wrong url, the correct one is [1]. But you found
>> another one that solves the problem.
>>> But, despite this, could you tell me more about low-level way to
>> evaluate a
>>> variable in the given (x, y, z) point?
>> It's exactly how the probes do that: the key function is
>> variable.evaluate_at() [2], where variable is an unknown or parameter
>> variable. It takes just one compulsory parameter - the coordinates of
>> points in which you wish to evaluate the variable. You can get the
>> variables of a problem by problem.get_variables(), where problem is the
>> second argument of the post_process_hook function.
>> Best regards,
>> r.
>> [1] http://sfepy.org/doc-devel/primer.html#probing
>> [2] http://sfepy.org/doc-devel/src/sfepy/fem/variables.html,
>> http://sfepy.org/doc-devel/src/sfepy/fem/fields.html
>>> On Sunday, August 26, 2012 12:47:50 AM UTC+4, Robert Cimrman wrote:
>>>> Hi Alec,
>>>> On 08/25/2012 05:45 PM, Alec Kalinin wrote:
>>>>> Dear SfePy users,
>>>>> Is it possible to evaluate a solution not only in the FEM mesh node,
>> but
>>>> in
>>>>> any arbitrary point in the domain with the given (x, y, z)
>> coordinates?
>>>> Yes, it is possible. Either, you could use a probe as described in the
>>>> Primer [1] - the available probes are described in [2]. Or, you could
>>>> directly evaluate a variable in given points - this is a bit low-level
>>>> operation, but I could provide you instructions, if the probes are not
>>>> enough for you.
>>>> Cheers,
>>>> r.
>>>>> For example, consider Dirichlet problem for Poisson equation. We apply
>>>>> essential boundary conditions on the surface nodes and after the
>> problem
>>>>> has been solved we have the solution vector, i.e. vector of values in
>>>> the
>>>>> FEM mesh nodes. But I want to know the solution in point v(x, y, z)
>> that
>>>> is
>>>>> not FEM mesh node. What is the best way to obtain solution in this
>> point
>>>> v?
>>>>> Sincerely,
>>>>> Alec Kalinin
>>>> [1] doc-devel/examples/linear_elasticity/linear_elastic_tractions.html
>>>> [2] http://sfepy.org/doc-devel/src/sfepy/fem/probes.html