int mdlc_set_params(double maxPWerror, double gap_size, double far_cut) { MDLC_TRACE(fprintf(stderr, "%d: mdlc_set_params().\n", this_node)); dlc_params.maxPWerror = maxPWerror; dlc_params.gap_size = gap_size; dlc_params.h = box_l[2] - gap_size; switch (coulomb.Dmethod) { #ifdef DP3M case DIPOLAR_MDLC_P3M: case DIPOLAR_P3M: coulomb.Dmethod =DIPOLAR_MDLC_P3M; break; #endif case DIPOLAR_MDLC_DS: case DIPOLAR_DS: coulomb.Dmethod =DIPOLAR_MDLC_DS; break; default: return ES_ERROR; } dlc_params.far_cut = far_cut; if (far_cut != -1) { dlc_params.far_calculated = 0; } else { dlc_params.far_calculated = 1; if (mdlc_tune(dlc_params.maxPWerror) == ES_ERROR) { char *errtxt = runtime_error(128); ERROR_SPRINTF(errtxt, "{009 mdlc tuning failed, gap size too small} "); } } mpi_bcast_coulomb_params(); return ES_OK; }
int mdlc_set_params(double maxPWerror, double gap_size, double far_cut) { MDLC_TRACE(fprintf(stderr, "%d: mdlc_set_params().\n", this_node)); dlc_params.maxPWerror = maxPWerror; dlc_params.gap_size = gap_size; dlc_params.h = box_l[2] - gap_size; switch (coulomb.Dmethod) { #ifdef DP3M case DIPOLAR_MDLC_P3M: case DIPOLAR_P3M: set_dipolar_method_local(DIPOLAR_MDLC_P3M); break; #endif case DIPOLAR_MDLC_DS: case DIPOLAR_DS: set_dipolar_method_local(DIPOLAR_MDLC_DS); break; default: return ES_ERROR; } dlc_params.far_cut = far_cut; if (far_cut != -1) { dlc_params.far_calculated = 0; } else { dlc_params.far_calculated = 1; if (mdlc_tune(dlc_params.maxPWerror) == ES_ERROR) { ostringstream msg; msg <<"mdlc tuning failed, gap size too small"; runtimeError(msg); } } mpi_bcast_coulomb_params(); return ES_OK; }