int ljcos2_set_params(int part_type_a, int part_type_b, double eps, double sig, double offset, double w) { IA_parameters *data = get_ia_param_safe(part_type_a, part_type_b); if (!data) return ES_ERROR; data->LJCOS2_eps = eps; data->LJCOS2_sig = sig; data->LJCOS2_offset = offset; data->LJCOS2_w = w; /* calculate dependent parameters */ data->LJCOS2_rchange = pow(2,1/6.)*sig; data->LJCOS2_cut = w + data->LJCOS2_rchange; /* broadcast interaction parameters */ mpi_bcast_ia_params(part_type_a, part_type_b); if (lj_force_cap != -1.0) mpi_lj_cap_forces(lj_force_cap); return ES_OK; }
int lennard_jones_set_params(int part_type_a, int part_type_b, double eps, double sig, double cut, double shift, double offset, double cap_radius, double min) { IA_parameters *data = get_ia_param_safe(part_type_a, part_type_b); if (!data) return ES_ERROR; data->LJ_eps = eps; data->LJ_sig = sig; data->LJ_cut = cut; data->LJ_shift = shift; data->LJ_offset = offset; if (cap_radius > 0) { data->LJ_capradius = cap_radius; } if (min > 0) { data->LJ_min = min; } /* broadcast interaction parameters */ mpi_bcast_ia_params(part_type_a, part_type_b); if (lj_force_cap != -1.0) mpi_lj_cap_forces(lj_force_cap); return ES_OK; }
int ljcos2_set_params(int part_type_a, int part_type_b, double eps, double sig, double offset, double w) { IA_parameters *data, *data_sym; make_particle_type_exist(part_type_a); make_particle_type_exist(part_type_b); data = get_ia_param(part_type_a, part_type_b); data_sym = get_ia_param(part_type_b, part_type_a); if (!data || !data_sym) { return TCL_ERROR; } /* lj-cos2 should be symmetrically */ data->LJCOS2_eps = data_sym->LJCOS2_eps = eps; data->LJCOS2_sig = data_sym->LJCOS2_sig = sig; data->LJCOS2_offset = data_sym->LJCOS2_offset = offset; data->LJCOS2_w = data_sym->LJCOS2_w = w; /* calculate dependent parameters */ data->LJCOS2_rchange = data_sym->LJCOS2_rchange = pow(2,1/6.)*sig; data->LJCOS2_cut = data_sym->LJCOS2_cut = w + data_sym->LJCOS2_rchange; /* broadcast interaction parameters */ mpi_bcast_ia_params(part_type_a, part_type_b); mpi_bcast_ia_params(part_type_b, part_type_a); if (lj_force_cap != -1.0) mpi_lj_cap_forces(lj_force_cap); return TCL_OK; }
/** set the force cap for the LJ interaction. @param ljforcecap the maximal force, 0 to disable, -1 for individual cutoff for each of the interactions. */ int ljforcecap_set_params(double ljforcecap) { if (lj_force_cap != -1.0) mpi_lj_cap_forces(lj_force_cap); return ES_OK; }