Roy, 

   This turned out to be unrelated to adaptivity. 

    I am working on immersed boundary problems where I cut a FE based on a 
level-set function. On each element obtained by the cut operation, I ask the FE 
to be initialized, either using a quadrature rule, or by specific in the QP 
locations. 

    While this forward operation of QP -> compute shape functions, derivatives 
and normals (on sides) should work out fine, the issue is showing up in  
compute_face_map() ( 
https://github.com/libMesh/libmesh/blob/c4c9fd5450489486fd5f7baf2ec9a8ac0d47fc99/src/fe/fe_boundary.C#L224
 
<https://github.com/libMesh/libmesh/blob/c4c9fd5450489486fd5f7baf2ec9a8ac0d47fc99/src/fe/fe_boundary.C#L224>
 ).

    It appears that compute_face_map() is using the xyz locations of the 
quadrature points to figure out non-dimensional location of the quadrature 
points here:  
https://github.com/libMesh/libmesh/blob/c4c9fd5450489486fd5f7baf2ec9a8ac0d47fc99/src/fe/fe_boundary.C#L754
 
<https://github.com/libMesh/libmesh/blob/c4c9fd5450489486fd5f7baf2ec9a8ac0d47fc99/src/fe/fe_boundary.C#L754>
 

     So, every once in a while the level-set based intersection leads to sliver 
cut-cells, which case this inverse-map method to fail. 

     I am guessing there is a reason to do things this way, even though the 
user may have explicitly provided the quadrature points to begin with. Do you 
know if there is a way to bypass the inverse_map for FE reinit? 

Thanks,
Manav

   

> On May 2, 2019, at 8:10 AM, Stogner, Roy H <royst...@ices.utexas.edu> wrote:
> 
> 
> On Thu, 2 May 2019, Manav Bhatia wrote:
> 
>> I ran the debug version and this is where it crashed. 
> 
> Well, I'm afraid that's no more help.  Thanks anyway.
> 
> Could you loop through elem 16514's parent (672) and parent's parent
> and so on up to the top level and print them?  I'm not sure where to
> begin looking for the problem, unless you can set up a test case we
> can reproduce.
> ---
> Roy
> 
>> [2] src/fe/fe_map.C, line 1866, compiled Apr 29 2019 at 13:59:12
>> WARNING: Newton scheme has not converged in 11 iterations:
>>    physical_point=(x,y,z)=(    0.27,   0.2775,        0)   
>> physical_guess=(x,y,z)=(    0.27,   0.2775,        0)   
>> dp=(x,y,z)=(-1.21944e-13,
>> -1.12163e-06,        0)   p=(x,y,z)=(      -1, -0.57735,        0)   
>> error=1.12163e-06   in element 16514
>>   Elem Information
>>    id()=16514, processor_id()=2
>>    type()=QUAD4
>>    dim()=2
>>    n_nodes()=4
>>     0  Node id()=13234, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>     1  Node id()=604, processor_id()=2, Point=(x,y,z)=(0.271875,   0.2775,   
>>      0)
>>     DoFs=(0/0/13470) (0/1/13471) (0/2/13472) (0/3/13473) (0/4/13474) 
>> (0/5/13475) (2/0/2245) (3/0/2245) 
>>     2  Node id()=13235, processor_id()=4294967295, Point=(x,y,z)=(0.271875,  
>>  0.2775,        0)
>>     DoFs=
>>     3  Node id()=13233, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>    n_sides()=4
>>     neighbor(0)=nullptr
>>     neighbor(1)=nullptr
>>     neighbor(2)=nullptr
>>     neighbor(3)=nullptr
>>    hmin()=9.89829e-11, hmax()=0.001875
>>    volume()=1.85593e-13
>>    active()=1, ancestor()=0, subactive()=0, has_children()=0
>>    parent()=672
>>    level()=4, p_level()=0
>>    refinement_flag()=DO_NOTHING
>>    p_refinement_flag()=DO_NOTHING
>>    DoFs=
>> [2] src/fe/fe_map.C, line 1866, compiled Apr 29 2019 at 13:59:12
>> WARNING: Newton scheme has not converged in 12 iterations:
>>    physical_point=(x,y,z)=(    0.27,   0.2775,        0)   
>> physical_guess=(x,y,z)=(    0.27,   0.2775,        0)   
>> dp=(x,y,z)=(-1.21944e-13,
>> -1.12163e-06,        0)   p=(x,y,z)=(      -1, -0.577351,        0)   
>> error=1.12163e-06   in element 16514
>>   Elem Information
>>    id()=16514, processor_id()=2
>>    type()=QUAD4
>>    dim()=2
>>    n_nodes()=4
>>     0  Node id()=13234, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>     1  Node id()=604, processor_id()=2, Point=(x,y,z)=(0.271875,   0.2775,   
>>      0)
>>     DoFs=(0/0/13470) (0/1/13471) (0/2/13472) (0/3/13473) (0/4/13474) 
>> (0/5/13475) (2/0/2245) (3/0/2245) 
>>     2  Node id()=13235, processor_id()=4294967295, Point=(x,y,z)=(0.271875,  
>>  0.2775,        0)
>>     DoFs=
>>     3  Node id()=13233, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>    n_sides()=4
>>     neighbor(0)=nullptr
>>     neighbor(1)=nullptr
>>     neighbor(2)=nullptr
>>     neighbor(3)=nullptr
>>    hmin()=9.89829e-11, hmax()=0.001875
>>    volume()=1.85593e-13
>>    active()=1, ancestor()=0, subactive()=0, has_children()=0
>>    parent()=672
>>    level()=4, p_level()=0
>>    refinement_flag()=DO_NOTHING
>>    p_refinement_flag()=DO_NOTHING
>>    DoFs=
>> [2] src/fe/fe_map.C, line 1866, compiled Apr 29 2019 at 13:59:12
>> WARNING: Newton scheme has not converged in 13 iterations:
>>    physical_point=(x,y,z)=(    0.27,   0.2775,        0)   
>> physical_guess=(x,y,z)=(    0.27,   0.2775,        0)   
>> dp=(x,y,z)=(2.43888e-13,
>> 2.24326e-06,        0)   p=(x,y,z)=(      -1, -0.577349,        0)   
>> error=2.24326e-06   in element 16514
>>   Elem Information
>>    id()=16514, processor_id()=2
>>    type()=QUAD4
>>    dim()=2
>>    n_nodes()=4
>>     0  Node id()=13234, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>     1  Node id()=604, processor_id()=2, Point=(x,y,z)=(0.271875,   0.2775,   
>>      0)
>>     DoFs=(0/0/13470) (0/1/13471) (0/2/13472) (0/3/13473) (0/4/13474) 
>> (0/5/13475) (2/0/2245) (3/0/2245) 
>>     2  Node id()=13235, processor_id()=4294967295, Point=(x,y,z)=(0.271875,  
>>  0.2775,        0)
>>     DoFs=
>>     3  Node id()=13233, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>    n_sides()=4
>>     neighbor(0)=nullptr
>>     neighbor(1)=nullptr
>>     neighbor(2)=nullptr
>>     neighbor(3)=nullptr
>>    hmin()=9.89829e-11, hmax()=0.001875
>>    volume()=1.85593e-13
>>    active()=1, ancestor()=0, subactive()=0, has_children()=0
>>    parent()=672
>>    level()=4, p_level()=0
>>    refinement_flag()=DO_NOTHING
>>    p_refinement_flag()=DO_NOTHING
>>    DoFs=
>> [2] src/fe/fe_map.C, line 1866, compiled Apr 29 2019 at 13:59:12
>> WARNING: Newton scheme has not converged in 14 iterations:
>>    physical_point=(x,y,z)=(    0.27,   0.2775,        0)   
>> physical_guess=(x,y,z)=(    0.27,   0.2775,        0)   
>> dp=(x,y,z)=(-1.21944e-13,
>> -1.12163e-06,        0)   p=(x,y,z)=(      -1, -0.57735,        0)   
>> error=1.12163e-06   in element 16514
>>   Elem Information
>>    id()=16514, processor_id()=2
>>    type()=QUAD4
>>    dim()=2
>>    n_nodes()=4
>>     0  Node id()=13234, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>     1  Node id()=604, processor_id()=2, Point=(x,y,z)=(0.271875,   0.2775,   
>>      0)
>>     DoFs=(0/0/13470) (0/1/13471) (0/2/13472) (0/3/13473) (0/4/13474) 
>> (0/5/13475) (2/0/2245) (3/0/2245) 
>>     2  Node id()=13235, processor_id()=4294967295, Point=(x,y,z)=(0.271875,  
>>  0.2775,        0)
>>     DoFs=
>>     3  Node id()=13233, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>    n_sides()=4
>>     neighbor(0)=nullptr
>>     neighbor(1)=nullptr
>>     neighbor(2)=nullptr
>>     neighbor(3)=nullptr
>>    hmin()=9.89829e-11, hmax()=0.001875
>>    volume()=1.85593e-13
>>    active()=1, ancestor()=0, subactive()=0, has_children()=0
>>    parent()=672
>>    level()=4, p_level()=0
>>    refinement_flag()=DO_NOTHING
>>    p_refinement_flag()=DO_NOTHING
>>    DoFs=
>> [2] src/fe/fe_map.C, line 1866, compiled Apr 29 2019 at 13:59:12
>> WARNING: Newton scheme has not converged in 15 iterations:
>>    physical_point=(x,y,z)=(    0.27,   0.2775,        0)   
>> physical_guess=(x,y,z)=(    0.27,   0.2775,        0)   
>> dp=(x,y,z)=(-1.21944e-13,
>> -1.12163e-06,        0)   p=(x,y,z)=(      -1, -0.577351,        0)   
>> error=1.12163e-06   in element 16514
>>   Elem Information
>>    id()=16514, processor_id()=2
>>    type()=QUAD4
>>    dim()=2
>>    n_nodes()=4
>>     0  Node id()=13234, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>     1  Node id()=604, processor_id()=2, Point=(x,y,z)=(0.271875,   0.2775,   
>>      0)
>>     DoFs=(0/0/13470) (0/1/13471) (0/2/13472) (0/3/13473) (0/4/13474) 
>> (0/5/13475) (2/0/2245) (3/0/2245) 
>>     2  Node id()=13235, processor_id()=4294967295, Point=(x,y,z)=(0.271875,  
>>  0.2775,        0)
>>     DoFs=
>>     3  Node id()=13233, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>    n_sides()=4
>>     neighbor(0)=nullptr
>>     neighbor(1)=nullptr
>>     neighbor(2)=nullptr
>>     neighbor(3)=nullptr
>>    hmin()=9.89829e-11, hmax()=0.001875
>>    volume()=1.85593e-13
>>    active()=1, ancestor()=0, subactive()=0, has_children()=0
>>    parent()=672
>>    level()=4, p_level()=0
>>    refinement_flag()=DO_NOTHING
>>    p_refinement_flag()=DO_NOTHING
>>    DoFs=
>> [2] src/fe/fe_map.C, line 1866, compiled Apr 29 2019 at 13:59:12
>> WARNING: Newton scheme has not converged in 16 iterations:
>>    physical_point=(x,y,z)=(    0.27,   0.2775,        0)   
>> physical_guess=(x,y,z)=(    0.27,   0.2775,        0)   
>> dp=(x,y,z)=(2.43888e-13,
>> 2.24326e-06,        0)   p=(x,y,z)=(      -1, -0.577349,        0)   
>> error=2.24326e-06   in element 16514
>>   Elem Information
>>    id()=16514, processor_id()=2
>>    type()=QUAD4
>>    dim()=2
>>    n_nodes()=4
>>     0  Node id()=13234, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>     1  Node id()=604, processor_id()=2, Point=(x,y,z)=(0.271875,   0.2775,   
>>      0)
>>     DoFs=(0/0/13470) (0/1/13471) (0/2/13472) (0/3/13473) (0/4/13474) 
>> (0/5/13475) (2/0/2245) (3/0/2245) 
>>     2  Node id()=13235, processor_id()=4294967295, Point=(x,y,z)=(0.271875,  
>>  0.2775,        0)
>>     DoFs=
>>     3  Node id()=13233, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>    n_sides()=4
>>     neighbor(0)=nullptr
>>     neighbor(1)=nullptr
>>     neighbor(2)=nullptr
>>     neighbor(3)=nullptr
>>    hmin()=9.89829e-11, hmax()=0.001875
>>    volume()=1.85593e-13
>>    active()=1, ancestor()=0, subactive()=0, has_children()=0
>>    parent()=672
>>    level()=4, p_level()=0
>>    refinement_flag()=DO_NOTHING
>>    p_refinement_flag()=DO_NOTHING
>>    DoFs=
>> [2] src/fe/fe_map.C, line 1866, compiled Apr 29 2019 at 13:59:12
>> WARNING: Newton scheme has not converged in 17 iterations:
>>    physical_point=(x,y,z)=(    0.27,   0.2775,        0)   
>> physical_guess=(x,y,z)=(    0.27,   0.2775,        0)   
>> dp=(x,y,z)=(-1.21944e-13,
>> -1.12163e-06,        0)   p=(x,y,z)=(      -1, -0.57735,        0)   
>> error=1.12163e-06   in element 16514
>>   Elem Information
>>    id()=16514, processor_id()=2
>>    type()=QUAD4
>>    dim()=2
>>    n_nodes()=4
>>     0  Node id()=13234, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>     1  Node id()=604, processor_id()=2, Point=(x,y,z)=(0.271875,   0.2775,   
>>      0)
>>     DoFs=(0/0/13470) (0/1/13471) (0/2/13472) (0/3/13473) (0/4/13474) 
>> (0/5/13475) (2/0/2245) (3/0/2245) 
>>     2  Node id()=13235, processor_id()=4294967295, Point=(x,y,z)=(0.271875,  
>>  0.2775,        0)
>>     DoFs=
>>     3  Node id()=13233, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>    n_sides()=4
>>     neighbor(0)=nullptr
>>     neighbor(1)=nullptr
>>     neighbor(2)=nullptr
>>     neighbor(3)=nullptr
>>    hmin()=9.89829e-11, hmax()=0.001875
>>    volume()=1.85593e-13
>>    active()=1, ancestor()=0, subactive()=0, has_children()=0
>>    parent()=672
>>    level()=4, p_level()=0
>>    refinement_flag()=DO_NOTHING
>>    p_refinement_flag()=DO_NOTHING
>>    DoFs=
>> WARNING: Newton scheme has not converged in 21 iterations:
>>    physical_point=(x,y,z)=(    0.27,   0.2775,        0)   
>> physical_guess=(x,y,z)=(    0.27,   0.2775,        0)   
>> dp=(x,y,z)=(-1.21944e-13,
>> -1.12163e-06,        0)   p=(x,y,z)=(      -1, -0.577351,        0)   
>> error=1.12163e-06   in element 16514
>>   Elem Information
>>    id()=16514, processor_id()=2
>>    type()=QUAD4
>>    dim()=2
>>    n_nodes()=4
>>     0  Node id()=13234, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>     1  Node id()=604, processor_id()=2, Point=(x,y,z)=(0.271875,   0.2775,   
>>      0)
>>     DoFs=(0/0/13470) (0/1/13471) (0/2/13472) (0/3/13473) (0/4/13474) 
>> (0/5/13475) (2/0/2245) (3/0/2245) 
>>     2  Node id()=13235, processor_id()=4294967295, Point=(x,y,z)=(0.271875,  
>>  0.2775,        0)
>>     DoFs=
>>     3  Node id()=13233, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>    n_sides()=4
>>     neighbor(0)=nullptr
>>     neighbor(1)=nullptr
>>     neighbor(2)=nullptr
>>     neighbor(3)=nullptr
>>    hmin()=9.89829e-11, hmax()=0.001875
>>    volume()=1.85593e-13
>>    active()=1, ancestor()=0, subactive()=0, has_children()=0
>>    parent()=672
>>    level()=4, p_level()=0
>>    refinement_flag()=DO_NOTHING
>>    p_refinement_flag()=DO_NOTHING
>>    DoFs=
>> ERROR: Newton scheme FAILED to converge in 21 iterations in element 16514 
>> for physical point = (x,y,z)=(    0.27,   0.2775,        0)
>>   Elem Information
>>    id()=16514, processor_id()=2
>>    type()=QUAD4
>>    dim()=2
>>    n_nodes()=4
>>     0  Node id()=13234, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>     1  Node id()=604, processor_id()=2, Point=(x,y,z)=(0.271875,   0.2775,   
>>      0)
>>     DoFs=(0/0/13470) (0/1/13471) (0/2/13472) (0/3/13473) (0/4/13474) 
>> (0/5/13475) (2/0/2245) (3/0/2245) 
>>     2  Node id()=13235, processor_id()=4294967295, Point=(x,y,z)=(0.271875,  
>>  0.2775,        0)
>>     DoFs=
>>     3  Node id()=13233, processor_id()=4294967295, Point=(x,y,z)=(    0.27,  
>>  0.2775,        0)
>>     DoFs=
>>    n_sides()=4
>>     neighbor(0)=nullptr
>>     neighbor(1)=nullptr
>>     neighbor(2)=nullptr
>>     neighbor(3)=nullptr
>>    hmin()=9.89829e-11, hmax()=0.001875
>>    volume()=1.85593e-13
>>    active()=1, ancestor()=0, subactive()=0, has_children()=0
>>    parent()=672
>>    level()=4, p_level()=0
>>    refinement_flag()=DO_NOTHING
>>    p_refinement_flag()=DO_NOTHING
>>    DoFs=
>> Exiting...
>> [2] src/fe/fe_map.C, line 1905, compiled Apr 29 2019 at 13:59:12
>> 
>> 
>> 
>> 
>>      On May 1, 2019, at 9:29 PM, Stogner, Roy H <royst...@ices.utexas.edu> 
>> wrote:
>> 
>> 
>> On Wed, 1 May 2019, Manav Bhatia wrote:
>> 
>>       I am using h-refinement in my analysis, which uses the mesh function 
>> routines to compute the value of the function in the
>>      interior of an element.
>> 
>>       All of my elements in the original mesh (before any refinements) are 
>> squares (quad4).
>> 
>>       For the most part everything works out fine without any issues.
>>       Occasionally, however, I will get an error in the inverse_map()
>>       like this. I am particularly perplexed by the hmin() size of
>>       10^-11.
>> 
>>       The size of my elements before refinement is hmin() = .015 and I
>>       allow a max of 4 refinements in any element. Would there be any
>>       reason to expect an hmin of order 10^-11 in this case?
>> 
>> 
>> Not even close, but there's definitely *something* going seriously
>> wrong here.
>> 
>> You have a degenerate element; points 0 and 3 and points 1 and 2
>> coincide.
>> 
>> You have three nodes with invalid processor ids.
>> 
>> You probably ought to
>> 
>>      Rerun in devel/dbg mode for more details.
>> 
>> 
>> (preferably dbg) and see whether it catches any problems earlier.
>> ---
>> Roy
>> 
>> 
>> 


_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to