<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Wed, Jan 22, 2014 at 4:50 PM, Dharmendar Reddy <span dir="ltr"><<a href="mailto:dharmareddy84@gmail.com" target="_blank">dharmareddy84@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I take back my earlier email...<br></blockquote><div><br></div><div>Do you have the threadcomm stuff turned on?</div><div>
<br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I see the error  irrespective of valgrind options. I did a clean<br>
compile to test it few times now.<br>
See the attached valgrind.log<br>
<br>
Now the difference between, ex5f90.F and my code is that i use<br>
DMSNESSetFunctionLocal in the case where the code fails.<br>
<br>
I have also attached the solver.F90 which wraps the calls to snes, Now<br>
the solver has to interface (1) for equations which are handled with a<br>
DM and (2) for equation with out DM , here i use SNESSetFunction, and<br>
this part of the code runs fine with the test case in the code which<br>
can be compiled with -DTestSolver and standard petsc makefile<br>
<br>
The case with DM is linked deeply into my code, i am trying to get to<br>
a test case for that.<br>
<br>
thanks<br>
<span class="HOEnZb"><font color="#888888">Reddy<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Wed, Jan 22, 2014 at 4:30 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
><br>
>    The thing to use in valgrind is -q --tool=memcheck<br>
><br>
>     This checks for corrupted and illegally accessed memory, uninitialized memory etc  It shows the exact lines that memory is used incorrectly so you can fix your code.<br>
><br>
>    Barry<br>
><br>
> On Jan 22, 2014, at 4:02 PM, Dharmendar Reddy <<a href="mailto:dharmareddy84@gmail.com">dharmareddy84@gmail.com</a>> wrote:<br>
><br>
>> Hello,<br>
>>        The code works fine if i run with valgrind --leak-check=yes exename args<br>
>> it fails if i run  valgrind exename args<br>
>><br>
>> Any suggestions on what to look for my code?<br>
>><br>
>> Thanks<br>
>> Reddy<br>
>><br>
>> On Wed, Jan 22, 2014 at 3:31 PM, Dharmendar Reddy<br>
>> <<a href="mailto:dharmareddy84@gmail.com">dharmareddy84@gmail.com</a>> wrote:<br>
>>> Hello,<br>
>>>        I tried using the SNESSetConvergenceTest in ex5f90.F using my<br>
>>> subroutine. Works as expected. I will try to run my code through<br>
>>> valgrind.<br>
>>><br>
>>> Thanks<br>
>>> Reddy<br>
>>><br>
>>> On Wed, Jan 22, 2014 at 2:33 PM, Dharmendar Reddy<br>
>>> <<a href="mailto:dharmareddy84@gmail.com">dharmareddy84@gmail.com</a>> wrote:<br>
>>>> Hello,<br>
>>>>         I will also try to create a stand alone test case.<br>
>>>><br>
>>>> Thanks<br>
>>>> Reddy<br>
>>>><br>
>>>> On Wed, Jan 22, 2014 at 1:53 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
>>>>> On Wed, Jan 22, 2014 at 1:52 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
>>>>>><br>
>>>>>><br>
>>>>>>  We need more information to track this down. Could you make a simple<br>
>>>>>> standalone code that reproduces the problem? Just creates a this, creates a<br>
>>>>>> SNES, sets the function, sets the test code and then crashes when runs.<br>
>>>>>><br>
>>>>>>   But since it is not crashing in the SNESConvergenceTest_snes routine I<br>
>>>>>> suspect it may be memory corruption. Have you run your code under valgrind?<br>
>>>>>> <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind" target="_blank">http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind</a><br>
>>>>><br>
>>>>><br>
>>>>> I am putting his convergence test into ex5f right now. This can be<br>
>>>>> valgrinded. I will send an update when it runs.<br>
>>>>><br>
>>>>>  Matt<br>
>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>>   Barry<br>
>>>>>><br>
>>>>>> On Jan 20, 2014, at 7:14 PM, Dharmendar Reddy <<a href="mailto:dharmareddy84@gmail.com">dharmareddy84@gmail.com</a>><br>
>>>>>> wrote:<br>
>>>>>><br>
>>>>>>> Hello,<br>
>>>>>>>        I am getting a segmentation fault when i use<br>
>>>>>>> SNESSetConvergenceTest from Fortran.<br>
>>>>>>><br>
>>>>>>> I use the following:<br>
>>>>>>><br>
>>>>>>> call SNESSetConvergenceTest(this%snes, SNESConvergenceTest_snes,<br>
>>>>>>> this,PETSC_NULL_FUNCTION, ierr)   (Line 1)<br>
>>>>>>><br>
>>>>>>> where the soubtoutine is<br>
>>>>>>><br>
>>>>>>> subroutine<br>
>>>>>>> SNESConvergenceTest_snes(snes,it,xnorm,gnorm,fnorm,reason,this, ierr)<br>
>>>>>>> implicit none<br>
>>>>>>> #include "finclude/petsc.h"<br>
>>>>>>> ! IO Variables<br>
>>>>>>> SNES :: snes<br>
>>>>>>> integer :: it<br>
>>>>>>> PetscReal :: xnorm<br>
>>>>>>> PetscReal :: gnorm<br>
>>>>>>> PetscReal :: fnorm<br>
>>>>>>> SNESConvergedReason :: reason<br>
>>>>>>> type(Solver_t) :: this<br>
>>>>>>> PetscErrorCode :: ierr<br>
>>>>>>> ! Local Variables<br>
>>>>>>> Vec :: X, dX<br>
>>>>>>> Vec :: F, W, G<br>
>>>>>>> real(WP) :: lambda<br>
>>>>>>> print*, 'Calling custom test',it,xnorm,fnorm,gnorm<br>
>>>>>>> !call SNESLineSearchGetLambda(this%linesearch, lambda, ierr)<br>
>>>>>>> !call SNESLineSearchGetVecs(this%linesearch, X, F, dX, W, G, ierr)<br>
>>>>>>> !call this%SNESConvergenceTest(it, fnorm, lambda, X, dX, reason, ierr)<br>
>>>>>>> reason = SNES_DIVERGED_FUNCTION_COUNT<br>
>>>>>>> end subroutine SNESConvergenceTest_snes<br>
>>>>>>><br>
>>>>>>> Code works fine if  the call at Line 1 is commented i.e, if i donot<br>
>>>>>>> set the convergencetest<br>
>>>>>>><br>
>>>>>>> I have attached the stack trace when the code fails (traceFail.log)<br>
>>>>>>> and stack trace of the code which runs well (tracePass.log).<br>
>>>>>>><br>
>>>>>>><br>
>>>>>>><br>
>>>>>>> Thanks<br>
>>>>>>> Reddy<br>
>>>>>>> <traceFail.log><tracePass.log><br>
>>>>>><br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>> --<br>
>>>>> What most experimenters take for granted before they begin their experiments<br>
>>>>> is infinitely more interesting than any results to which their experiments<br>
>>>>> lead.<br>
>>>>> -- Norbert Wiener<br>
>>>><br>
>>>><br>
>>>><br>
>>>> --<br>
>>>> -----------------------------------------------------<br>
>>>> Dharmendar Reddy Palle<br>
>>>> Graduate Student<br>
>>>> Microelectronics Research center,<br>
>>>> University of Texas at Austin,<br>
>>>> 10100 Burnet Road, Bldg. 160<br>
>>>> MER 2.608F, TX 78758-4445<br>
>>>> e-mail: <a href="mailto:dharmareddy84@gmail.com">dharmareddy84@gmail.com</a><br>
>>>> Phone: <a href="tel:%2B1-512-350-9082" value="+15123509082">+1-512-350-9082</a><br>
>>>> United States of America.<br>
>>>> Homepage: <a href="https://webspace.utexas.edu/~dpr342" target="_blank">https://webspace.utexas.edu/~dpr342</a><br>
>>><br>
>>><br>
>>><br>
>>> --<br>
>>> -----------------------------------------------------<br>
>>> Dharmendar Reddy Palle<br>
>>> Graduate Student<br>
>>> Microelectronics Research center,<br>
>>> University of Texas at Austin,<br>
>>> 10100 Burnet Road, Bldg. 160<br>
>>> MER 2.608F, TX 78758-4445<br>
>>> e-mail: <a href="mailto:dharmareddy84@gmail.com">dharmareddy84@gmail.com</a><br>
>>> Phone: <a href="tel:%2B1-512-350-9082" value="+15123509082">+1-512-350-9082</a><br>
>>> United States of America.<br>
>>> Homepage: <a href="https://webspace.utexas.edu/~dpr342" target="_blank">https://webspace.utexas.edu/~dpr342</a><br>
>><br>
>><br>
>><br>
>> --<br>
>> -----------------------------------------------------<br>
>> Dharmendar Reddy Palle<br>
>> Graduate Student<br>
>> Microelectronics Research center,<br>
>> University of Texas at Austin,<br>
>> 10100 Burnet Road, Bldg. 160<br>
>> MER 2.608F, TX 78758-4445<br>
>> e-mail: <a href="mailto:dharmareddy84@gmail.com">dharmareddy84@gmail.com</a><br>
>> Phone: <a href="tel:%2B1-512-350-9082" value="+15123509082">+1-512-350-9082</a><br>
>> United States of America.<br>
>> Homepage: <a href="https://webspace.utexas.edu/~dpr342" target="_blank">https://webspace.utexas.edu/~dpr342</a><br>
><br>
<br>
<br>
<br>
--<br>
-----------------------------------------------------<br>
Dharmendar Reddy Palle<br>
Graduate Student<br>
Microelectronics Research center,<br>
University of Texas at Austin,<br>
10100 Burnet Road, Bldg. 160<br>
MER 2.608F, TX 78758-4445<br>
e-mail: <a href="mailto:dharmareddy84@gmail.com">dharmareddy84@gmail.com</a><br>
Phone: <a href="tel:%2B1-512-350-9082" value="+15123509082">+1-512-350-9082</a><br>
United States of America.<br>
Homepage: <a href="https://webspace.utexas.edu/~dpr342" target="_blank">https://webspace.utexas.edu/~dpr342</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener
</div></div>