Hi John,
I am still struggling and running out of ideas here.
I wrote down some debugging - perhaps you can find something weird.
The calculations seem correct, at least to what I could understand so far.
But things are zero'ing out.
If, in the mesh creation, I declare the variable as "FIRST" order, things
do not zero out.
The integration of the gradient only zeros out if I use:
sys.add_variable("u", SECOND);
For face integration, I am using first order gauss quadrature:
QGauss qface(dim-1, FIRST);
Any hint? Any debugging suggestion?
Rgds,
Renato
# Debug[1]: Elem: 4
# Debug[1]: (x,y,z)=( 5, 10, 0)
# Debug[1]: (x,y,z)=( 0, 10, 0)
# Debug[1]: (x,y,z)=( 3.08169, 6.73058, 0)
# Debug[1]: (x,y,z)=( 2.5, 10, 0)
# Debug[1]: (x,y,z)=( 1.54085, 8.36529, 0)
# Debug[1]: (x,y,z)=( 4.04085, 8.36529, 0)
# Debug[1]: num_dofs=6
# Debug[1]: Side: 0
# Debug[1]: Boundary: 1
# Debug[1]: qface_point = (x,y,z)=( 2.5, 10, 0)
# Debug[1]: == i=0 ===
# Debug[1]: dof_indices[0]: 23
# Debug[1]: dphi_face[0][0]: (x,y,z)=( 0.2, 0.188516,
-0)
# Debug[1]: _sys_solution[0->23]: 3e+07
# Debug[1]: _sys_solution[0->23] * dphi_face[0]: (x,y,z)=(
6e+06, 5.65548e+06, -0)
# Debug[1]: == i=1 ===
# Debug[1]: dof_indices[1]: 24
# Debug[1]: dphi_face[1][0]: (x,y,z)=( -0.2,
0.117348, 0)
# Debug[1]: _sys_solution[1->24]: 3e+07
# Debug[1]: _sys_solution[1->24] * dphi_face[1]: (x,y,z)=(
-6e+06, 3.52045e+06, 0)
# Debug[1]: == i=2 ===
# Debug[1]: dof_indices[2]: 25
# Debug[1]: dphi_face[2][0]: (x,y,z)=( 0, 0.305864,
-0)
# Debug[1]: _sys_solution[2->25]: 3.12065e+07
# Debug[1]: _sys_solution[2->25] * dphi_face[2]:
(x,y,z)=( 0, 9.54495e+06, -0)
# Debug[1]: == i=3 ===
# Debug[1]: dof_indices[3]: 26
# Debug[1]: dphi_face[3][0]: (x,y,z)=( -0,
0.611729, 0)
# Debug[1]: _sys_solution[3->26]: 3e+07
# Debug[1]: _sys_solution[3->26] * dphi_face[3]: (x,y,z)=(
-0, 1.83519e+07, 0)
# Debug[1]: == i=4 ===
# Debug[1]: dof_indices[4]: 27
# Debug[1]: dphi_face[4][0]: (x,y,z)=( 0,
-0.611729, 0)
# Debug[1]: _sys_solution[4->27]: 3.02508e+07
# Debug[1]: _sys_solution[4->27] * dphi_face[4]:
(x,y,z)=( 0, -1.85053e+07, 0)
# Debug[1]: == i=5 ===
# Debug[1]: dof_indices[5]: 28
# Debug[1]: dphi_face[5][0]: (x,y,z)=( 0,
-0.611729, 0)
# Debug[1]: _sys_solution[5->28]: 3.03524e+07
# Debug[1]: _sys_solution[5->28] * dphi_face[5]:
(x,y,z)=( 0, -1.85674e+07, 0)
# Debug[1]: =======
# Debug[1]: JxW_face[0]: 5
# Debug[1]: grad_at_qn= (x,y,z)=(8.95187e-06,
-6.02752e-06, 0)
# Debug[1]: normals[0]= (x,y,z)=( 0, 1, -0)
# Debug[1]: JxW_face[0] * grad_at_qn * normals[0] = -3.01376e-05
On Fri, Aug 25, 2017 at 2:25 PM, Renato Poli <[email protected]> wrote:
> Hi John,
>
> _sys_solution is the system->solution vector.
>
> It is fed by:
> _system.solution->localize_to_one( _sys_solution );
>
>
> On Fri, Aug 25, 2017 at 1:48 PM, John Peterson <[email protected]>
> wrote:
>
>>
>>
>> On Fri, Aug 25, 2017 at 10:34 AM, Renato Poli <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> I need some help here ...
>>>
>>> I am having trouble to understand what is going on with a boundary
>>> integral.
>>> I have solved a Poisson problem for pressure in a 2D mesh, as a model
>>> for a
>>> incompressible water flow in porous media.
>>> The mesh (Tri6 elements) has a near-circular polygon in the middle
>>> representing an injection well.
>>>
>>> RHS of the equations are zero except in boundaries dofs. Dirichlet
>>> boundary
>>> conditions are imposed using a penalty both on the well and on the
>>> external
>>> boundaries to represent fixed pressure. (the solution looks ok - seems to
>>> work)
>>>
>>> To validate the solution, I am trying to estimate the water flow both in
>>> the well and in the external boundaries (they must be identical and match
>>> the analytical solution). I therefore calculate the normal pressure
>>> gradient and integrate in the whole boundary path.
>>>
>>> When I use first order variable, the results are "almost correct". But
>>> when
>>> I use second order , it is absolutely off.
>>>
>>> I am using the code below to do the integration. I tried many
>>> alternatives,
>>> no success.
>>>
>>> Any idea of what I am doing wrong?
>>>
>>
>> The code seems OK to me, although you should not need to call
>> fe_face->reinit() inside the loop over boundary ids.
>>
>> What is _sys_solution?
>>
>> --
>> John
>>
>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users