Closed Pbottelin closed 5 years ago
Hello Pierre,
I just try to answer your questions without modifying your script.
The example in examples/dc_and_ip/plot_mod-dc-2d.py
is supposed to show a simple way on how
the pg finite element solver can be used to solve a little part of the 2.5D geoelectrics problem.
Its not supposed to being a complete and flexible solution to the ERT forward problem. If I find the time I will improve the example, so thank you for pointing out important spots that needs clarification.
A more advanced reference implementation of the ERT problem you can find in pygimli/physics/ert/ert.py`. The most advanced solution to solve any ERT problems would be the BERT package: https://gitlab.com/resistivity-net/bert
To your question as far I can see them:
## I don't really understand the meaning of this function
## describing the source term
uAnalytical(p, sourcePos, k)
Solves the 2.5D geoelectrical problem for one wave number k. It calculates the normalized (for injection current 1 A and sigma=1 S/m) potential at position p for a current injection at position sourcePos. Injection at the subsurface is recognized via mirror sources along the surface at depth=0.
#what is performed in this test?
This test handles the singular 1/r case for a distance r=0 at the source position.
k = 1e-3 #wave number for the equation (see refs?)
#How to choose this value? what is its influence?
Its an arbitrary number to fulfill the equation to be solved. The 2.5D wave number approach is to handle the 3D characteristics of the current density due to a point source in 2 dimensions and solves for u(x,y,k). If you want to have your potential distribution u(x,y, z=0) you need so solve for multiple wave numbers and integrate all solutions. But the latter is beyond the focus of this simple example. You can find a possible solution in the reference implementation.
b_list = [a * (k**2) for (i,a) in a_list] #is is correct?
Parameter b for pg.solver should be only k*k regarding the equation to be solved and the api
reference for pg.solve.
https://www.pygimli.org/pygimliapi/_generated/pygimli.solver.html#pygimli.solver.solveFiniteElements
#top is not given because already taken into account in the source term?
Top is probably ground/air surface and hence be treated a homogeneous Neumann (no flow) condition which is default for all FEM boundaries.
#how do I choose the potential at the injection electrode?
#the current intensity I is not asked for (only one electrode)
#the solution u is normalized?
u is normalized to 1 A injection current. The potential at the injection electrode is 1/(r=0) and not defined and hence set to zero. You can maybe estimated it to some higher value if you like nice images for post processing.
# meaning of the following paragraph?
you can compare the analytical exact solution with the numerical solution (for constant sigma=1) here, I need to think about to make some tests in the script with it.
Hope I could clarify things a bit.
Cheers, Carsten
Hello @Pbottelin,
could you please give a quick feedback if Carstens answer helped and if this issue can be closed?
Thanks.
Hi Florian, Carsten, thanks for the help and the reminder. Yes I think I'll manage to go on based on Carsten answers. This issue can be closed! Best regards,
Pierre
Dear Carsten and Florian,
could you please specify the answer to question 6? You say, the potential at the injection electrode can be changed. But I do not understand how.
Thanks and best regards, Rhea
Assuming the Point Electrode Model (PEM), the potential u at the injection electrode is 1/r with r=0, so it is undefined and cannot be determined. If you use total field calculation it is set through the solution of the finite element linear solver to a meaningless high value. For the solution with the singularity removal technique, it is determined as 1/r(half distance to the next nearest node)
However, if you want nice images of your potential distribution, you can set it to any arbitrary high value.
Hi everyone, I am quite new to Pygimli, so forgive my post. I think this might help people like me to familiarize with the package and build the first simple models.
I am trying to compute the electrical potential distribution in the ground, as described in the 2.5D Geoelectrics example. In my example, I would like to model a pole-pole configuration (one injection electrode at the infinite, so it is not drawn in the model) for 'mise-à-la-masse' surveys.
I played around for quite long, but I have some questions, listed as comments in the code below (boundary conditions, solver, wavenumber, ...). Please feel free to comment my code! Best regards,
Pierre