[gmx-users] Re: RE: RE: problem with g_bar

Tom Kirchner tomkirch at mis.mpg.de
Wed Mar 21 09:08:01 CET 2012


Hi Berk,

Thank you for your help, after a short test, it seems to work perfect.

All the best
Tom

On 03/20/2012 10:11 AM, gmx-users-request at gromacs.org wrote:
> Date: Tue, 20 Mar 2012 10:03:33 +0100
> From: Berk Hess<gmx3 at hotmail.com>
> Subject: RE: [gmx-users] Re: RE: problem with g_bar
> To: Discussion list for GROMACS users<gmx-users at gromacs.org>
> Message-ID:<COL113-W352A0C2419838BB4790C4F8E430 at phx.gbl>
> Content-Type: text/plain; charset="iso-8859-1"
>
>
> Hi,
>
> Apparently I didn't try to compile it myself, there is a pointer dereference missing.
> Pleae try the fix below.
>
> Cheers,
>
> Berk
>
> --- a/src/tools/gmx_bar.c
> +++ b/src/tools/gmx_bar.c
> @@ -2049,7 +2049,7 @@ static void read_bar_xvg(char *fn, real *temp, lambda_t *lambda_head)
>           gmx_fatal(FARGS,"File '%s' contains fewer than two columns", fn);
>       }
>
> -    if ( ( *temp != barsim->temp)&&  (*temp>  0) )
> +    if ( !gmx_within_tol(*temp,barsim->temp,GMX_FLOAT_EPS)&&  (*temp>  0) )
>       {
>           gmx_fatal(FARGS,"Temperature in file %s different from earlier files or setting\n", fn);
>       }
>
>
>> >  Date: Tue, 20 Mar 2012 09:23:38 +0100
>> >  From:tomkirch at mis.mpg.de
>> >  To:gmx-users at gromacs.org
>> >  Subject: [gmx-users] Re: RE: problem with g_bar
>> >  
>> >  Hi Berk,
>> >  
>> >  Thanks a lot for your answer.
>> >  
>> >  I changed the line and recompiled Gromacs, sadly I got this error:
>> >  
>> >  gmx_bar.c: In function "read_bar_xvg":
>> >  gmx_bar.c:2052:5: error: incompatible type for argument 1 of
>> >  "gmx_within_tol"
>> >  ../../include/maths.h:125:1: note: expected "double" but argument is of
>> >  type "real *"
>> >  make[3]: *** [gmx_bar.lo] Error 1
>> >  
>> >  Best,
>> >  Tom
>> >  
>> >  On 03/20/2012 03:15 AM,gmx-users-request at gromacs.org  wrote:
>>> >  >  ------------------------------ Message: 3 Date: Mon, 19 Mar 2012
>>> >  >  18:34:31 +0100 From: Berk Hess<gmx3 at hotmail.com>  Subject: RE:
>>> >  >  [gmx-users] problem with g_bar To: Discussion list for GROMACS users
>>> >  >  <gmx-users at gromacs.org>  Message-ID:
>>> >  >  <COL113-W32C019BA58913FEC173E168E420 at phx.gbl>  Content-Type:
>>> >  >  text/plain; charset="iso-8859-1" Hi, Yes, there is a problem with
>>> >  >  different temperature variables being single and double precision.
>>> >  >  Does the one line change below fix the problem? Cheers, Berk - if ( (
>>> >  >  *temp != barsim->temp)&&  (*temp>  0) ) + if (
>>> >  >  !gmx_within_tol(temp,barsim->temp,GMX_FLOAT_EPS)&&  (*temp>  0) )
>>>>> >  >>  >    Date: Mon, 19 Mar 2012 13:57:51 +0100
>>>>> >  >>  >    From:tomkirch at mis.mpg.de
>>>>> >  >>  >    To:gmx-users at gromacs.org
>>>>> >  >>  >    Subject: [gmx-users] problem with g_bar
>>>>> >  >>  >  
>>>>> >  >>  >    Dear all,
>>>>> >  >>  >  
>>>>> >  >>  >    Recently I posted my problem with g_bar on this mailing list but got no
>>>>> >  >>  >    solution for it. After additional testing I decided to send an enhanced
>>>>> >  >>  >    description of my problem.
>>>>> >  >>  >  
>>>>> >  >>  >    I am doing Free Energy calculation. The dhdl values are put in separate
>>>>> >  >>  >    .xvg files. The routine g_bar is then started using:
>>>>> >  >>  >  
>>>>> >  >>  >    g_bar -b 100 -f md_*.xvg -o -oi -oh
>>>>> >  >>  >  
>>>>> >  >>  >    With the result:
>>>>> >  >>  >  
>>>>> >  >>  >    Program g_bar, VERSION 4.5.5
>>>>> >  >>  >    Source code file: .../src/gromacs-4.5.5/src/tools/gmx_bar.c, line: 2054
>>>>> >  >>  >  
>>>>> >  >>  >    Fatal error:
>>>>> >  >>  >    Temperature in file md_0.05.xvg different from earlier files or setting
>>>>> >  >>  >  
>>>>> >  >>  >  
>>>>> >  >>  >    Checking the header of all .xvg files showed the same line for the
>>>>> >  >>  >    temperature for all files:
>>>>> >  >>  >  
>>>>> >  >>  >    @ subtitle "T = 298.15 (K), \xl\f{} = 0.025"
>>>>> >  >>  >  
>>>>> >  >>  >    Changing the temperature manually to any integer (but still with .0) let
>>>>> >  >>  >    g_bar run fine.
>>>>> >  >>  >  
>>>>> >  >>  >    sed -i 's/T\ \=\ 298.15/T\ \=\ 298.0/g' md*
>>>>> >  >>  >  
>>>>> >  >>  >    Do you have any suggestions what's wrong here?
>>>>> >  >>  >  
>>>>> >  >>  >    I'm not that familiar with C, but my suggestion would be an error with
>>>>> >  >>  >    floating point arithmetic in line 2052 of gmx_bar.c
>>>>> >  >>  >  
>>>>> >  >>  >          if ( ( *temp != barsim->temp)&&   (*temp>   0) )
>>>>> >  >>  >  
>>>>> >  >>  >    where *temp and barsim->temp are compared. Maybe it has something to do
>>>>> >  >>  >    with the input as long double (%lf) and statement "real *temp" in the
>>>>> >  >>  >    function header?
>>>>> >  >>  >  
>>>>> >  >>  >    I appreciate any hints.
>>>>> >  >>  >  
>>>>> >  >>  >    Best regards
>>>>> >  >>  >    Tom




More information about the gromacs.org_gmx-users mailing list