| 36 | 
  | 
  "  -b, --nbins=INT               number of bins (general purpose)  \n                                  (default=`100')", | 
| 37 | 
  | 
  "  -x, --nbins_x=INT             number of bins in x axis  (default=`100')", | 
| 38 | 
  | 
  "  -y, --nbins_y=INT             number of bins in y axis  (default=`100')", | 
| 39 | 
– | 
  "      --nbins_z=INT             number of bins in z axis  (default=`100')", | 
| 39 | 
  | 
  "  -a, --nanglebins=INT          number of bins for cos(angle)  (default=`50')", | 
| 40 | 
  | 
  "  -c, --rcut=DOUBLE             cutoff radius (rcut)", | 
| 41 | 
  | 
  "      --dz=DOUBLE               slab width (dz)", | 
| 55 | 
  | 
  "      --bo                      bond order parameter (--rcut must be specified)", | 
| 56 | 
  | 
  "      --bor                     bond order parameter as a function of radius \n                                  (--rcut must be specified)", | 
| 57 | 
  | 
  "      --bad                     N(theta) bond angle density within (--rcut must \n                                  be specified)", | 
| 58 | 
+ | 
  "      --count                   count of molecules matching selection criteria \n                                  (and associated statistics)", | 
| 59 | 
  | 
  "  -g, --gofr                    g(r)", | 
| 60 | 
  | 
  "      --gofz                    g(z)", | 
| 61 | 
  | 
  "      --r_theta                 g(r, cos(theta))", | 
| 62 | 
  | 
  "      --r_omega                 g(r, cos(omega))", | 
| 63 | 
– | 
  "      --r_z                     g(r, z)", | 
| 63 | 
  | 
  "      --theta_omega             g(cos(theta), cos(omega))", | 
| 64 | 
  | 
  "      --gxyz                    g(x, y, z)", | 
| 65 | 
  | 
  "      --twodgofr                2D g(r) (Slab width --dz must be specified)", | 
| 71 | 
  | 
  "      --p_angle                 p(cos(theta))", | 
| 72 | 
  | 
  "      --hxy                     hxy", | 
| 73 | 
  | 
  "      --rho_r                   rho of R", | 
| 74 | 
+ | 
  "      --angle_r                 angle of R", | 
| 75 | 
  | 
  "      --hullvol                 hull volume of nanoparticle", | 
| 76 | 
  | 
    0 | 
| 77 | 
  | 
}; | 
| 108 | 
  | 
  args_info->nbins_given = 0 ; | 
| 109 | 
  | 
  args_info->nbins_x_given = 0 ; | 
| 110 | 
  | 
  args_info->nbins_y_given = 0 ; | 
| 111 | 
– | 
  args_info->nbins_z_given = 0 ; | 
| 111 | 
  | 
  args_info->nanglebins_given = 0 ; | 
| 112 | 
  | 
  args_info->rcut_given = 0 ; | 
| 113 | 
  | 
  args_info->dz_given = 0 ; | 
| 126 | 
  | 
  args_info->bo_given = 0 ; | 
| 127 | 
  | 
  args_info->bor_given = 0 ; | 
| 128 | 
  | 
  args_info->bad_given = 0 ; | 
| 129 | 
+ | 
  args_info->count_given = 0 ; | 
| 130 | 
  | 
  args_info->gofr_given = 0 ; | 
| 131 | 
  | 
  args_info->gofz_given = 0 ; | 
| 132 | 
  | 
  args_info->r_theta_given = 0 ; | 
| 133 | 
  | 
  args_info->r_omega_given = 0 ; | 
| 134 | 
– | 
  args_info->r_z_given = 0 ; | 
| 134 | 
  | 
  args_info->theta_omega_given = 0 ; | 
| 135 | 
  | 
  args_info->gxyz_given = 0 ; | 
| 136 | 
  | 
  args_info->twodgofr_given = 0 ; | 
| 142 | 
  | 
  args_info->p_angle_given = 0 ; | 
| 143 | 
  | 
  args_info->hxy_given = 0 ; | 
| 144 | 
  | 
  args_info->rho_r_given = 0 ; | 
| 145 | 
+ | 
  args_info->angle_r_given = 0 ; | 
| 146 | 
  | 
  args_info->hullvol_given = 0 ; | 
| 147 | 
  | 
  args_info->staticProps_group_counter = 0 ; | 
| 148 | 
  | 
} | 
| 162 | 
  | 
  args_info->nbins_x_orig = NULL; | 
| 163 | 
  | 
  args_info->nbins_y_arg = 100; | 
| 164 | 
  | 
  args_info->nbins_y_orig = NULL; | 
| 165 | 
– | 
  args_info->nbins_z_arg = 100; | 
| 166 | 
– | 
  args_info->nbins_z_orig = NULL; | 
| 165 | 
  | 
  args_info->nanglebins_arg = 50; | 
| 166 | 
  | 
  args_info->nanglebins_orig = NULL; | 
| 167 | 
  | 
  args_info->rcut_orig = NULL; | 
| 220 | 
  | 
  args_info->bo_help = gengetopt_args_info_help[25] ; | 
| 221 | 
  | 
  args_info->bor_help = gengetopt_args_info_help[26] ; | 
| 222 | 
  | 
  args_info->bad_help = gengetopt_args_info_help[27] ; | 
| 223 | 
< | 
  args_info->gofr_help = gengetopt_args_info_help[28] ; | 
| 224 | 
< | 
  args_info->gofz_help = gengetopt_args_info_help[29] ; | 
| 225 | 
< | 
  args_info->r_theta_help = gengetopt_args_info_help[30] ; | 
| 226 | 
< | 
  args_info->r_omega_help = gengetopt_args_info_help[31] ; | 
| 227 | 
< | 
  args_info->r_z_help = gengetopt_args_info_help[32] ; | 
| 228 | 
< | 
  args_info->theta_omega_help = gengetopt_args_info_help[33] ; | 
| 229 | 
< | 
  args_info->gxyz_help = gengetopt_args_info_help[34] ; | 
| 230 | 
< | 
  args_info->twodgofr_help = gengetopt_args_info_help[35] ; | 
| 231 | 
< | 
  args_info->p2_help = gengetopt_args_info_help[36] ; | 
| 232 | 
< | 
  args_info->rp2_help = gengetopt_args_info_help[37] ; | 
| 233 | 
< | 
  args_info->scd_help = gengetopt_args_info_help[38] ; | 
| 234 | 
< | 
  args_info->density_help = gengetopt_args_info_help[39] ; | 
| 235 | 
< | 
  args_info->slab_density_help = gengetopt_args_info_help[40] ; | 
| 236 | 
< | 
  args_info->p_angle_help = gengetopt_args_info_help[41] ; | 
| 237 | 
< | 
  args_info->hxy_help = gengetopt_args_info_help[42] ; | 
| 238 | 
< | 
  args_info->rho_r_help = gengetopt_args_info_help[43] ; | 
| 239 | 
< | 
  args_info->hullvol_help = gengetopt_args_info_help[44] ; | 
| 223 | 
> | 
  args_info->count_help = gengetopt_args_info_help[28] ; | 
| 224 | 
> | 
  args_info->gofr_help = gengetopt_args_info_help[29] ; | 
| 225 | 
> | 
  args_info->gofz_help = gengetopt_args_info_help[30] ; | 
| 226 | 
> | 
  args_info->r_theta_help = gengetopt_args_info_help[31] ; | 
| 227 | 
> | 
  args_info->r_omega_help = gengetopt_args_info_help[32] ; | 
| 228 | 
> | 
  args_info->r_z_help = gengetopt_args_info_help[33] ; | 
| 229 | 
> | 
  args_info->theta_omega_help = gengetopt_args_info_help[34] ; | 
| 230 | 
> | 
  args_info->gxyz_help = gengetopt_args_info_help[35] ; | 
| 231 | 
> | 
  args_info->twodgofr_help = gengetopt_args_info_help[36] ; | 
| 232 | 
> | 
  args_info->p2_help = gengetopt_args_info_help[37] ; | 
| 233 | 
> | 
  args_info->rp2_help = gengetopt_args_info_help[38] ; | 
| 234 | 
> | 
  args_info->scd_help = gengetopt_args_info_help[39] ; | 
| 235 | 
> | 
  args_info->density_help = gengetopt_args_info_help[40] ; | 
| 236 | 
> | 
  args_info->slab_density_help = gengetopt_args_info_help[41] ; | 
| 237 | 
> | 
  args_info->p_angle_help = gengetopt_args_info_help[42] ; | 
| 238 | 
> | 
  args_info->hxy_help = gengetopt_args_info_help[43] ; | 
| 239 | 
> | 
  args_info->rho_r_help = gengetopt_args_info_help[44] ; | 
| 240 | 
> | 
  args_info->hullvol_help = gengetopt_args_info_help[45] ; | 
| 241 | 
  | 
   | 
| 242 | 
  | 
} | 
| 243 | 
  | 
 | 
| 327 | 
  | 
  free_string_field (&(args_info->nbins_orig)); | 
| 328 | 
  | 
  free_string_field (&(args_info->nbins_x_orig)); | 
| 329 | 
  | 
  free_string_field (&(args_info->nbins_y_orig)); | 
| 331 | 
– | 
  free_string_field (&(args_info->nbins_z_orig)); | 
| 330 | 
  | 
  free_string_field (&(args_info->nanglebins_orig)); | 
| 331 | 
  | 
  free_string_field (&(args_info->rcut_orig)); | 
| 332 | 
  | 
  free_string_field (&(args_info->dz_orig)); | 
| 398 | 
  | 
    write_into_file(outfile, "nbins_x", args_info->nbins_x_orig, 0); | 
| 399 | 
  | 
  if (args_info->nbins_y_given) | 
| 400 | 
  | 
    write_into_file(outfile, "nbins_y", args_info->nbins_y_orig, 0); | 
| 403 | 
– | 
  if (args_info->nbins_z_given) | 
| 404 | 
– | 
    write_into_file(outfile, "nbins_z", args_info->nbins_z_orig, 0); | 
| 401 | 
  | 
  if (args_info->nanglebins_given) | 
| 402 | 
  | 
    write_into_file(outfile, "nanglebins", args_info->nanglebins_orig, 0); | 
| 403 | 
  | 
  if (args_info->rcut_given) | 
| 434 | 
  | 
    write_into_file(outfile, "bor", 0, 0 ); | 
| 435 | 
  | 
  if (args_info->bad_given) | 
| 436 | 
  | 
    write_into_file(outfile, "bad", 0, 0 ); | 
| 437 | 
+ | 
  if (args_info->count_given) | 
| 438 | 
+ | 
    write_into_file(outfile, "count", 0, 0 ); | 
| 439 | 
  | 
  if (args_info->gofr_given) | 
| 440 | 
  | 
    write_into_file(outfile, "gofr", 0, 0 ); | 
| 441 | 
  | 
  if (args_info->gofz_given) | 
| 444 | 
  | 
    write_into_file(outfile, "r_theta", 0, 0 ); | 
| 445 | 
  | 
  if (args_info->r_omega_given) | 
| 446 | 
  | 
    write_into_file(outfile, "r_omega", 0, 0 ); | 
| 449 | 
– | 
  if (args_info->r_z_given) | 
| 450 | 
– | 
    write_into_file(outfile, "r_z", 0, 0 ); | 
| 447 | 
  | 
  if (args_info->theta_omega_given) | 
| 448 | 
  | 
    write_into_file(outfile, "theta_omega", 0, 0 ); | 
| 449 | 
  | 
  if (args_info->gxyz_given) | 
| 466 | 
  | 
    write_into_file(outfile, "hxy", 0, 0 ); | 
| 467 | 
  | 
  if (args_info->rho_r_given) | 
| 468 | 
  | 
    write_into_file(outfile, "rho_r", 0, 0 ); | 
| 469 | 
+ | 
  if (args_info->angle_r_given) | 
| 470 | 
+ | 
    write_into_file(outfile, "angle_r", 0, 0 ); | 
| 471 | 
  | 
  if (args_info->hullvol_given) | 
| 472 | 
  | 
    write_into_file(outfile, "hullvol", 0, 0 ); | 
| 473 | 
  | 
   | 
| 526 | 
  | 
  args_info->bo_given = 0 ; | 
| 527 | 
  | 
  args_info->bor_given = 0 ; | 
| 528 | 
  | 
  args_info->bad_given = 0 ; | 
| 529 | 
+ | 
  args_info->count_given = 0 ; | 
| 530 | 
  | 
  args_info->gofr_given = 0 ; | 
| 531 | 
  | 
  args_info->gofz_given = 0 ; | 
| 532 | 
  | 
  args_info->r_theta_given = 0 ; | 
| 533 | 
  | 
  args_info->r_omega_given = 0 ; | 
| 535 | 
– | 
  args_info->r_z_given = 0 ; | 
| 534 | 
  | 
  args_info->theta_omega_given = 0 ; | 
| 535 | 
  | 
  args_info->gxyz_given = 0 ; | 
| 536 | 
  | 
  args_info->twodgofr_given = 0 ; | 
| 542 | 
  | 
  args_info->p_angle_given = 0 ; | 
| 543 | 
  | 
  args_info->hxy_given = 0 ; | 
| 544 | 
  | 
  args_info->rho_r_given = 0 ; | 
| 545 | 
+ | 
  args_info->angle_r_given = 0 ; | 
| 546 | 
  | 
  args_info->hullvol_given = 0 ; | 
| 547 | 
  | 
 | 
| 548 | 
  | 
  args_info->staticProps_group_counter = 0; | 
| 792 | 
  | 
        { "nbins",      1, NULL, 'b' }, | 
| 793 | 
  | 
        { "nbins_x",    1, NULL, 'x' }, | 
| 794 | 
  | 
        { "nbins_y",    1, NULL, 'y' }, | 
| 796 | 
– | 
        { "nbins_z",    1, NULL, 0 }, | 
| 795 | 
  | 
        { "nanglebins", 1, NULL, 'a' }, | 
| 796 | 
  | 
        { "rcut",       1, NULL, 'c' }, | 
| 797 | 
  | 
        { "dz", 1, NULL, 0 }, | 
| 810 | 
  | 
        { "bo", 0, NULL, 0 }, | 
| 811 | 
  | 
        { "bor",        0, NULL, 0 }, | 
| 812 | 
  | 
        { "bad",        0, NULL, 0 }, | 
| 813 | 
+ | 
        { "count",      0, NULL, 0 }, | 
| 814 | 
  | 
        { "gofr",       0, NULL, 'g' }, | 
| 815 | 
  | 
        { "gofz",       0, NULL, 0 }, | 
| 816 | 
  | 
        { "r_theta",    0, NULL, 0 }, | 
| 817 | 
  | 
        { "r_omega",    0, NULL, 0 }, | 
| 819 | 
– | 
        { "r_z",        0, NULL, 0 }, | 
| 818 | 
  | 
        { "theta_omega",        0, NULL, 0 }, | 
| 819 | 
  | 
        { "gxyz",       0, NULL, 0 }, | 
| 820 | 
  | 
        { "twodgofr",   0, NULL, 0 }, | 
| 826 | 
  | 
        { "p_angle",    0, NULL, 0 }, | 
| 827 | 
  | 
        { "hxy",        0, NULL, 0 }, | 
| 828 | 
  | 
        { "rho_r",      0, NULL, 0 }, | 
| 829 | 
+ | 
        { "angle_r",    0, NULL, 0 }, | 
| 830 | 
  | 
        { "hullvol",    0, NULL, 0 }, | 
| 831 | 
  | 
        { NULL, 0, NULL, 0 } | 
| 832 | 
  | 
      }; | 
| 905 | 
  | 
              "nbins_x", 'x', | 
| 906 | 
  | 
              additional_error)) | 
| 907 | 
  | 
            goto failure; | 
| 908 | 
< | 
         | 
| 908 | 
> | 
          | 
| 909 | 
  | 
          break; | 
| 910 | 
  | 
        case 'y':       /* number of bins in y axis.  */ | 
| 911 | 
  | 
         | 
| 1017 | 
  | 
          break; | 
| 1018 | 
  | 
 | 
| 1019 | 
  | 
        case 0: /* Long option with no short option */ | 
| 1020 | 
< | 
          /* number of bins in z axis.  */ | 
| 1021 | 
< | 
          if (strcmp (long_options[option_index].name, "nbins_z") == 0) | 
| 1022 | 
< | 
          { | 
| 1023 | 
< | 
           | 
| 1024 | 
< | 
           | 
| 1025 | 
< | 
            if (update_arg( (void *)&(args_info->nbins_z_arg),  | 
| 1026 | 
< | 
                 &(args_info->nbins_z_orig), &(args_info->nbins_z_given), | 
| 1027 | 
< | 
                &(local_args_info.nbins_z_given), optarg, 0, "100", ARG_INT, | 
| 1028 | 
< | 
                check_ambiguity, override, 0, 0, | 
| 1029 | 
< | 
                "nbins_z", '-', | 
| 1030 | 
< | 
                additional_error)) | 
| 1031 | 
< | 
              goto failure; | 
| 1032 | 
< | 
           | 
| 1033 | 
< | 
          } | 
| 1020 | 
> | 
          /* number of bins in z axis.  */ | 
| 1021 | 
> | 
          if (strcmp (long_options[option_index].name, "nbins_z") == 0) | 
| 1022 | 
> | 
          {         | 
| 1023 | 
> | 
                   | 
| 1024 | 
> | 
            if (update_arg( (void *)&(args_info->nbins_z_arg),  | 
| 1025 | 
> | 
                &(args_info->nbins_z_orig), &(args_info->nbins_z_given), | 
| 1026 | 
> | 
                &(local_args_info.nbins_z_given), optarg, 0, "100", ARG_INT, | 
| 1027 | 
> | 
                check_ambiguity, override, 0, 0, | 
| 1028 | 
> | 
                "nbins_z", '-', | 
| 1029 | 
> | 
                 additional_error)) | 
| 1030 | 
> | 
               goto failure; | 
| 1031 | 
> | 
                   | 
| 1032 | 
> | 
          } | 
| 1033 | 
> | 
 | 
| 1034 | 
> | 
 | 
| 1035 | 
  | 
          /* slab width (dz).  */ | 
| 1036 | 
  | 
          else if (strcmp (long_options[option_index].name, "dz") == 0) | 
| 1037 | 
  | 
          { | 
| 1047 | 
  | 
           | 
| 1048 | 
  | 
          } | 
| 1049 | 
  | 
          /* maximum length (Defaults to 1/2 smallest length of first frame).  */ | 
| 1050 | 
< | 
          else if (strcmp (long_options[option_index].name, "length") == 0) | 
| 1050 | 
> | 
          if (strcmp (long_options[option_index].name, "length") == 0) | 
| 1051 | 
  | 
          { | 
| 1052 | 
  | 
           | 
| 1053 | 
  | 
           | 
| 1247 | 
  | 
                &(local_args_info.bad_given), optarg, 0, 0, ARG_NO, | 
| 1248 | 
  | 
                check_ambiguity, override, 0, 0, | 
| 1249 | 
  | 
                "bad", '-', | 
| 1250 | 
+ | 
                additional_error)) | 
| 1251 | 
+ | 
              goto failure; | 
| 1252 | 
+ | 
           | 
| 1253 | 
+ | 
          } | 
| 1254 | 
+ | 
          /* count of molecules matching selection criteria (and associated statistics).  */ | 
| 1255 | 
+ | 
          else if (strcmp (long_options[option_index].name, "count") == 0) | 
| 1256 | 
+ | 
          { | 
| 1257 | 
+ | 
           | 
| 1258 | 
+ | 
            if (args_info->staticProps_group_counter && override) | 
| 1259 | 
+ | 
              reset_group_staticProps (args_info); | 
| 1260 | 
+ | 
            args_info->staticProps_group_counter += 1; | 
| 1261 | 
+ | 
           | 
| 1262 | 
+ | 
            if (update_arg( 0 ,  | 
| 1263 | 
+ | 
                 0 , &(args_info->count_given), | 
| 1264 | 
+ | 
                &(local_args_info.count_given), optarg, 0, 0, ARG_NO, | 
| 1265 | 
+ | 
                check_ambiguity, override, 0, 0, | 
| 1266 | 
+ | 
                "count", '-', | 
| 1267 | 
  | 
                additional_error)) | 
| 1268 | 
  | 
              goto failure; | 
| 1269 | 
  | 
           | 
| 1319 | 
  | 
              goto failure; | 
| 1320 | 
  | 
           | 
| 1321 | 
  | 
          } | 
| 1305 | 
– | 
          /* g(r, z).  */ | 
| 1306 | 
– | 
          else if (strcmp (long_options[option_index].name, "r_z") == 0) | 
| 1307 | 
– | 
          { | 
| 1308 | 
– | 
           | 
| 1309 | 
– | 
            if (args_info->staticProps_group_counter && override) | 
| 1310 | 
– | 
              reset_group_staticProps (args_info); | 
| 1311 | 
– | 
            args_info->staticProps_group_counter += 1; | 
| 1312 | 
– | 
           | 
| 1313 | 
– | 
            if (update_arg( 0 ,  | 
| 1314 | 
– | 
                 0 , &(args_info->r_z_given), | 
| 1315 | 
– | 
                &(local_args_info.r_z_given), optarg, 0, 0, ARG_NO, | 
| 1316 | 
– | 
                check_ambiguity, override, 0, 0, | 
| 1317 | 
– | 
                "r_z", '-', | 
| 1318 | 
– | 
                additional_error)) | 
| 1319 | 
– | 
              goto failure; | 
| 1320 | 
– | 
           | 
| 1321 | 
– | 
          } | 
| 1322 | 
  | 
          /* g(cos(theta), cos(omega)).  */ | 
| 1323 | 
  | 
          else if (strcmp (long_options[option_index].name, "theta_omega") == 0) | 
| 1324 | 
  | 
          { | 
| 1455 | 
  | 
              goto failure; | 
| 1456 | 
  | 
           | 
| 1457 | 
  | 
          } | 
| 1458 | 
+ | 
          /* angle of R.  */ | 
| 1459 | 
+ | 
          else if (strcmp (long_options[option_index].name, "angle_r") == 0) | 
| 1460 | 
+ | 
          { | 
| 1461 | 
+ | 
           | 
| 1462 | 
+ | 
            if (args_info->staticProps_group_counter && override) | 
| 1463 | 
+ | 
              reset_group_staticProps (args_info); | 
| 1464 | 
+ | 
            args_info->staticProps_group_counter += 1; | 
| 1465 | 
+ | 
           | 
| 1466 | 
+ | 
            if (update_arg( 0 ,  | 
| 1467 | 
+ | 
                 0 , &(args_info->angle_r_given), | 
| 1468 | 
+ | 
                &(local_args_info.angle_r_given), optarg, 0, 0, ARG_NO, | 
| 1469 | 
+ | 
                check_ambiguity, override, 0, 0, | 
| 1470 | 
+ | 
                "angle_r", '-', | 
| 1471 | 
+ | 
                additional_error)) | 
| 1472 | 
+ | 
              goto failure; | 
| 1473 | 
+ | 
           | 
| 1474 | 
+ | 
          } | 
| 1475 | 
  | 
          /* hull volume of nanoparticle.  */ | 
| 1476 | 
  | 
          else if (strcmp (long_options[option_index].name, "hullvol") == 0) | 
| 1477 | 
  | 
          { |