void cells_on_max_cut_change(int shrink) { double old_max_range = max_range; calc_maximal_cutoff(); if (max_cut > 0.0) { if (skin >= 0.0) max_range = max_cut + skin; else /* if the skin is not yet set, assume zero. */ max_range = max_cut; } else /* if no interactions yet, we also don't need a skin */ max_range = 0.0; /* no need to do something if 1. the range didn't change numerically (<= necessary for the start case, when max_range and old_max_range == 0.0) 2. it shrank, and we shouldn't shrink (NpT) */ if ((fabs(max_range - old_max_range) <= ROUND_ERROR_PREC * max_range) || (!shrink && (max_range < old_max_range))) return; cells_re_init(CELL_STRUCTURE_CURRENT); for (int i = 0; i < 3; i++) if (local_box_l[i] < max_range) { char *errtext = runtime_error(128 + TCL_INTEGER_SPACE); ERROR_SPRINTF(errtext,"{013 box_l in direction %d is still too small} ", i); } }
void integrate_vv_recalc_maxrange() { INTEG_TRACE(fprintf(stderr,"%d: integrate_vv_recalc_maxrange:\n",this_node)); /* maximal interaction cutoff */ calc_maximal_cutoff(); if (max_cut <= 0.0) { max_range = -1.0; max_range2 = -1.0; return; } max_range = max_cut; max_range_non_bonded = max_cut_non_bonded; /* at beginning be nice */ if (skin > 0.0) { max_range += skin; max_range_non_bonded += skin; } max_range2 = SQR(max_range); max_range_non_bonded2 = SQR(max_range_non_bonded); }