+ case 'I':
+ /* integration algorithm */
+ switch(atoi(argv[++i])) {
+ case MOLDYN_INTEGRATE_VERLET:
+ moldyn->integrate=velocity_verlet;
+ break;
+ default:
+ printf("unknown integration algo %s\n",argv[i]);
+ moldyn_usage(argv);
+ return -1;
+ }
+
+ case 'P':
+ /* potential + params */
+ switch(atoi(argv[++i])) {
+ case MOLDYN_POTENTIAL_HO:
+ hop.spring_constant=atof(argv[++i]);
+ hop.equilibrium_distance=atof(argv[++i]);
+ moldyn->pot_params=malloc(sizeof(t_ho_params));
+ memcpy(moldyn->pot_params,&hop,sizeof(t_ho_params));
+ moldyn->potential_force_function=harmonic_oscillator;
+ break;
+ case MOLDYN_POTENTIAL_LJ:
+ e=atof(argv[++i]);
+ s=atof(argv[++i]);
+ ljp.epsilon4=4*e;
+ ljp.sigma6=s*s*s*s*s*s;
+ ljp.sigma12=ljp.sigma6*ljp.sigma6;
+ moldyn->pot_params=malloc(sizeof(t_lj_params));
+ memcpy(moldyn->pot_params,&ljp,sizeof(t_lj_params));
+ moldyn->potential_force_function=lennard_jones;
+ break;
+ default:
+ printf("unknown potential %s\n",argv[i]);
+ moldyn_usage(argv);
+ return -1;
+ }
+