本文整理汇总了C++中FCS::run方法的典型用法代码示例。如果您正苦于以下问题:C++ FCS::run方法的具体用法?C++ FCS::run怎么用?C++ FCS::run使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FCS
的用法示例。
在下文中一共展示了FCS::run方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: fcs_run
/**
* run the solver method
*/
FCSResult fcs_run(FCS handle, fcs_int local_particles,
fcs_float *positions, fcs_float *charges, fcs_float *field, fcs_float *potentials)
{
const char *fnc_name = "fcs_run";
FCSResult result;
CHECK_HANDLE_RETURN_RESULT(handle, fnc_name);
if (local_particles < 0)
return fcs_result_create(FCS_ERROR_WRONG_ARGUMENT, fnc_name, "number of local particles must be non negative");
if (fcs_get_values_changed(handle))
{
result = fcs_tune(handle, local_particles, positions, charges);
if (result != FCS_RESULT_SUCCESS) return result;
}
if (!fcs_init_check(handle) || !fcs_run_check(handle))
return fcs_result_create(FCS_ERROR_MISSING_ELEMENT, fnc_name, "not all needed data has been inserted into the given handle");
if (handle->run == NULL)
return fcs_result_create(FCS_ERROR_NOT_IMPLEMENTED, fnc_name, "Running solver method '%s' not implemented", fcs_get_method_name(handle));
return handle->run(handle, local_particles, positions, charges, field, potentials);
}
示例2: fcs_run
/**
* run the solver method
*/
FCSResult fcs_run(FCS handle, fcs_int local_particles,
fcs_float *positions, fcs_float *charges, fcs_float *field, fcs_float *potentials)
{
FCSResult result;
CHECK_HANDLE_RETURN_RESULT(handle, __func__);
if (local_particles < 0)
return fcs_result_create(FCS_ERROR_WRONG_ARGUMENT, __func__, "number of local particles must be non negative");
if (fcs_get_values_changed(handle))
{
result = fcs_tune(handle, local_particles, positions, charges);
if (result != FCS_RESULT_SUCCESS) return result;
}
if (!fcs_init_check(handle) || !fcs_run_check(handle))
return fcs_result_create(FCS_ERROR_MISSING_ELEMENT, __func__, "not all needed data has been inserted into the given handle");
if (handle->run == NULL)
return fcs_result_create(FCS_ERROR_NOT_IMPLEMENTED, __func__, "Running solver method '%s' not implemented", fcs_get_method_name(handle));
fcs_float original_box_origin[3] = { handle->box_origin[0], handle->box_origin[1], handle->box_origin[2] };
if (handle->shift_positions)
{
fcs_shift_positions(local_particles, positions, original_box_origin);
handle->box_origin[0] = handle->box_origin[1] = handle->box_origin[2] = 0;
}
result = handle->run(handle, local_particles, positions, charges, field, potentials);
if (handle->shift_positions)
{
fcs_unshift_positions(local_particles, positions, original_box_origin);
handle->box_origin[0] = original_box_origin[0];
handle->box_origin[1] = original_box_origin[1];
handle->box_origin[2] = original_box_origin[2];
}
return result;
}