Enclosed are a mesh file and a problem file for the 2D electrostatic problem without volume charge of a square of 1x1 on which 1 V is applied on 2 opposite sides (Gamma_Left and Gamma_Right), and the default 0 Von Neumann boundary conditions on the 2 other sides.
The Electric field is evaluated as the gradient of V, and looks good (Ex is small, and Ey = 1 over the entire domain).
Flux 1 and Flux 2 evaluate the flux intensity of current with conductivity sigma=1 across Gamma_Left and Gamma_Right. They should have opposite sign and absolute value of 1.
It looks that the d_surface_flux is computed on each element of the surface so the returned value is an array, but the values in the array are all 1... Shouldn't they be 1/(element surface) so that the sum of the array gives the total flux over the all Gamma_Left or Gamma_Right surface ?
Le mercredi 29 août 2012 15:38:39 UTC+2, Robert Cimrman a écrit :
On 08/29/2012 02:05 PM, David Libault wrote:
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
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
term is d_surface_flux.
I would use it in electrostatics (temperature is replaced by voltage),
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:
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
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 . But you found another one that solves the problem.
But, despite this, could you tell me more about low-level way to
variable in the given (x, y, z) point?
It's exactly how the probes do that: the key function is variable.evaluate_at() , 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.
On Sunday, August 26, 2012 12:47:50 AM UTC+4, Robert Cimrman wrote:
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,
any arbitrary point in the domain with the given (x, y, z)
Yes, it is possible. Either, you could use a probe as described in
Primer  - the available probes are described in . Or, you could directly evaluate a variable in given points - this is a bit
operation, but I could provide you instructions, if the probes are
enough for you.
For example, consider Dirichlet problem for Poisson equation. We
essential boundary conditions on the surface nodes and after the
has been solved we have the solution vector, i.e. vector of values
FEM mesh nodes. But I want to know the solution in point v(x, y, z)
not FEM mesh node. What is the best way to obtain solution in this
Sincerely, Alec Kalinin