22 #ifndef FCS_INTERFACE_P_INCLUDED 23 #define FCS_INTERFACE_P_INCLUDED 27 #include "fcs_definitions.h" 47 typedef struct _FCS_t *
FCS;
58 FCSResult fcs_init(FCS *new_handle,
const char* method_name, MPI_Comm communicator);
103 const fcs_float *box_a,
const fcs_float *box_b,
const fcs_float *box_c,
104 const fcs_float *box_origin,
105 const fcs_int *periodicity, fcs_int total_particles);
329 fcs_float *positions, fcs_float *charges);
342 fcs_float *positions, fcs_float *charges, fcs_float *field, fcs_float *potentials);
363 fcs_float* positions, fcs_float *charges, fcs_float epsilon,
364 fcs_float *field_correction, fcs_float *energy_correction);
519 #ifdef FCS_ENABLE_DEPRECATED 520 #define fcs_set_dimension fcs_set_dimensions 521 #define fcs_get_dimension fcs_get_dimensions 522 #define fcs_set_offset fcs_set_box_origin 523 #define fcs_get_offset fcs_get_box_origin 524 #define fcs_printHandle fcs_print_parameters 525 #define fcs_method_has_near fcs_delegate_near_field 526 #define fcs_parser fcs_set_parameters 527 #define fcs_require_virial fcs_set_compute_virial fcs_int fcs_get_method(FCS handle)
function to return the numerical identifier of the solver method
FCSResult fcs_set_max_local_particles(FCS handle, fcs_int max_local_particles)
function to set the maximum number of particles that can be stored in the specified local particle da...
FCSResult fcs_set_parameters(FCS handle, const char *parameters, fcs_int continue_on_errors)
function to set the parameters of the FCS solver based on a parameter string
fcs_int fcs_get_dimensions(FCS handle)
function to return the dimensions of the system
FCSResult fcs_set_box_c(FCS handle, const fcs_float *box_c)
function to set the third base vector of the system box
const fcs_float * fcs_get_box_b(FCS handle)
function to return the second base vector of the system box
FCSResult fcs_set_box_origin(FCS handle, const fcs_float *box_origin)
function to set the origin vector of the system box
const fcs_float * fcs_get_box_origin(FCS handle)
function function to return the origin vector of the system box
FCSResult fcs_destroy(FCS handle)
function to destroy an FCS solver
FCSResult fcs_get_near_field_delegation(FCS handle, fcs_int *near_field_delegation)
function to return whether the solver method supports the delegation of near-field computations to an...
FCSResult fcs_get_tolerance(FCS handle, fcs_int *tolerance_type, fcs_float *tolerance)
function to return the error tolerance of the FCS solver
FCSResult fcs_unset_r_cut(FCS handle)
function to disable a user-defined cutoff radius for the near-field computations of the FCS solver (i...
FCSResult fcs_compute_near_potential(FCS handle, fcs_float dist, fcs_float *potential)
function to compute the near-field component of the potential for the solver method ...
FCSResult fcs_tune(FCS handle, fcs_int local_particles, fcs_float *positions, fcs_float *charges)
function to tune method specific parameters depending on the particles
FCSResult fcs_get_resort_particles(FCS handle, fcs_int *resort_particles)
function to return the new local number of particles
FCSResult fcs_set_common(FCS handle, fcs_int near_field_flag, const fcs_float *box_a, const fcs_float *box_b, const fcs_float *box_c, const fcs_float *box_origin, const fcs_int *periodicity, fcs_int total_particles)
function to set all obligatory parameters for an FCS solver
const fcs_float * fcs_get_box_a(FCS handle)
function to return the first base vector of the system box
fcs_int fcs_get_max_local_particles(FCS handle)
function to return the maximum number of particles that can be stored in the specified local particle...
FCSResult fcs_run(FCS handle, fcs_int local_particles, fcs_float *positions, fcs_float *charges, fcs_float *field, fcs_float *potentials)
function to run the solver method
FCSResult fcs_set_tolerance(FCS handle, fcs_int tolerance_type, fcs_float tolerance)
function to set the error tolerance of the FCS solver
FCSResult fcs_set_redistribute(FCS handle, fcs_int redistribute)
function to set the redistribution of particles before the computations (and back after the computati...
FCSResult fcs_get_resort_availability(FCS handle, fcs_int *availability)
function to return whether resort support is available after executing fcs_run
FCSResult fcs_set_total_particles(FCS handle, fcs_int total_particles)
function to set the total number of particles in the system
FCSResult fcs_get_resort(FCS handle, fcs_int *resort)
function to return whether resort support is requested
FCSResult fcs_set_box_b(FCS handle, const fcs_float *box_b)
function to set the second base vector of the system box
fcs_int fcs_get_total_particles(FCS handle)
function to return the total number of particles in the system
FCSResult fcs_set_resort(FCS handle, fcs_int resort)
function to set whether resort support is requested (default is no resort support) if resort support ...
FCSResult fcs_print_parameters(FCS handle)
function to print the parameters of an FCS solver to stdout
FCSResult fcs_set_near_field_flag(FCS handle, fcs_int near_field_flag)
function to set the near-field flag
FCSResult fcs_set_box_a(FCS handle, const fcs_float *box_a)
function to set the first base vector of the system box
FCSResult fcs_compute_near(FCS handle, fcs_float dist, fcs_float *potential, fcs_float *field)
function to compute the near-field components of the potential and the field for the solver method ...
public interface definitions for the FCSResult-object that is used for handling the return state of t...
FCSResult fcs_get_virial(FCS handle, fcs_float *virial)
function to return the comuputed virial
FCSResult fcs_get_compute_virial(FCS handle, fcs_int *compute_virial)
function to return whether the virial should be computed
FCSResult fcs_init(FCS *new_handle, const char *method_name, MPI_Comm communicator)
function to initialize an FCS solver
struct FCSResult_t * FCSResult
FCSResult-object that is used for handling the return state of the ScaFaCoS library functions...
FCSResult fcs_set_r_cut(FCS handle, fcs_float r_cut)
function to set a user-defined cutoff radius for the near-field computations of the FCS solver (if su...
FCSResult fcs_resort_bytes(FCS handle, void *src, void *dst, fcs_int n)
function to sort additional byte particle data into the new sorted particle order ...
FCSResult fcs_compute_near_field(FCS handle, fcs_float dist, fcs_float *field)
function to compute the near-field component of the field for the solver method
FCSResult fcs_compute_dipole_correction(FCS handle, fcs_int local_particles, fcs_float *positions, fcs_float *charges, fcs_float epsilon, fcs_float *field_correction, fcs_float *energy_correction)
function to compute the correction to the field and total energy when periodic boundary conditions wi...
FCSResult fcs_set_periodicity(FCS handle, const fcs_int *periodicity)
function to set the periodicity of the system
FCSResult fcs_resort_ints(FCS handle, fcs_int *src, fcs_int *dst, fcs_int n)
function to sort additional integer particle data into the new sorted particle order ...
FCSResult fcs_set_compute_virial(FCS handle, fcs_int compute_virial)
function to set whether the virial should be computed
const char * fcs_get_method_name(FCS handle)
function to return the name of the solver method
FCSResult fcs_set_dimensions(FCS handle, fcs_int dim)
function to set the dimensions of the system
const fcs_float * fcs_get_box_c(FCS handle)
function to return the third base vector of the system box
MPI_Comm fcs_get_communicator(FCS handle)
function to return the MPI communicator used for the parallel execution
fcs_int fcs_get_near_field_flag(FCS handle)
function to return the near-field flag
FCSResult fcs_set_max_particle_move(FCS handle, fcs_float max_particle_move)
function to set the maximum distance the particles have moved since the call of fcs_run ...
FCSResult fcs_get_r_cut(FCS handle, fcs_float *r_cut)
function to return the user-defined cutoff radius for the near-field computations of the FCS solver (...
fcs_int fcs_get_redistribute(FCS handle)
function to return the particle redistribution setting
const fcs_int * fcs_get_periodicity(FCS handle)
function to return the periodicity of the system
struct _FCS_t * FCS
FCS-object representing an FCS solver.
FCSResult fcs_resort_floats(FCS handle, fcs_float *src, fcs_float *dst, fcs_int n)
function to sort additional float particle data into the new sorted particle order ...