if (is_edip_c_) { switch (GetComputeIndex(is_compute_energy, is_compute_forces, is_compute_particle_energy, is_compute_virial, is_compute_particle_virial)) { case 0: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 1: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 2: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 3: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 4: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 5: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 6: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 7: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 8: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 9: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 10: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 11: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 12: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 13: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 14: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 15: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 16: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 17: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 18: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 19: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 20: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 21: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 22: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 23: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 24: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 25: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 26: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 27: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 28: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 29: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 30: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 31: ier = EDIPCCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; default: HELPER_LOG_ERROR("Unknown compute function index."); ier = true; break; } } else if (is_edip_single_) { switch (GetComputeIndex(is_compute_energy, is_compute_forces, is_compute_particle_energy, is_compute_virial, is_compute_particle_virial)) { case 0: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 1: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 2: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 3: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 4: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 5: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 6: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 7: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 8: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 9: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 10: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 11: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 12: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 13: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 14: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 15: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 16: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 17: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 18: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 19: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 20: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 21: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 22: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 23: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 24: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 25: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 26: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 27: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 28: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 29: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 30: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 31: ier = EDIPSingleCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; default: HELPER_LOG_ERROR("Unknown compute function index."); ier = true; break; } } else if (is_edip_multi_) { switch (GetComputeIndex(is_compute_energy, is_compute_forces, is_compute_particle_energy, is_compute_virial, is_compute_particle_virial)) { case 0: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 1: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 2: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 3: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 4: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 5: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 6: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 7: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 8: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 9: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 10: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 11: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 12: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 13: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 14: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 15: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 16: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 17: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 18: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 19: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 20: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 21: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 22: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 23: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 24: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 25: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 26: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 27: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 28: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 29: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 30: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; case 31: ier = EDIPMultiCompute( model_compute, model_compute_arguments, particle_species_codes, particle_contributing, coordinates, energy, forces, particle_energy, *virial, particle_virial); break; default: HELPER_LOG_ERROR("Unknown compute function index."); ier = true; break; } }