![]() |
ScaFaCoS
1.0.1
Scalable Fast Coulomb Solvers
|
file containing all vmg specific functions More...
Include dependency graph for fcs_vmg_p.h:Go to the source code of this file.
Typedefs | |
| typedef struct fcs_vmg_parameters_t * | fcs_vmg_parameters |
Functions | |
| FCSResult | fcs_vmg_setup (FCS handle, fcs_int max_level, fcs_int max_iterations, fcs_int smoothing_steps, fcs_int cycle_type, fcs_float precision, fcs_int near_field_cells, fcs_int interpolation_order, fcs_int discretization_order) |
| Function to set all vmg parameters with a single call. More... | |
| FCSResult | fcs_vmg_set_max_level (FCS handle, fcs_int max_level) |
| Set the maximum level of the multigrid algorithm. More... | |
| FCSResult | fcs_vmg_get_max_level (FCS handle, fcs_int *max_level) |
| Get the maximum level of the multigrid algorithm. More... | |
| FCSResult | fcs_vmg_set_max_iterations (FCS handle, fcs_int max_iterations) |
| Set the maximum number of multigrid iterations. More... | |
| FCSResult | fcs_vmg_get_max_iterations (FCS handle, fcs_int *max_iterations) |
| Get the maximum number of multigrid iterations. More... | |
| FCSResult | fcs_vmg_set_smoothing_steps (FCS handle, fcs_int smoothing_steps) |
| Set the number of pre/postsmoothing steps on each level. More... | |
| FCSResult | fcs_vmg_get_smoothing_steps (FCS handle, fcs_int *smoothing_steps) |
| Get the number of pre/postsmoothing steps on each level. More... | |
| FCSResult | fcs_vmg_set_cycle_type (FCS handle, fcs_int cycle_type) |
| Set the cycle_type-number of the multigrid cycle used. More... | |
| FCSResult | fcs_vmg_get_cycle_type (FCS handle, fcs_int *cycle_type) |
| Get the cycle_type-number of the multigrid cycle used. More... | |
| FCSResult | fcs_vmg_set_precision (FCS handle, fcs_float precision) |
| Set the precision of the vmg algorithm. More... | |
| FCSResult | fcs_vmg_get_precision (FCS handle, fcs_float *precision) |
| Get the precision of the vmg algorithm. More... | |
| FCSResult | fcs_vmg_set_near_field_cells (FCS handle, fcs_int near_field_cells) |
| Set the number of near field cells for separating the near/far field part of the potential. More... | |
| FCSResult | fcs_vmg_get_near_field_cells (FCS handle, fcs_int *near_field_cells) |
| Get the number of near field cells for separating the near/far field part of the potential. More... | |
| FCSResult | fcs_vmg_set_interpolation_order (FCS handle, fcs_int interpolation_order) |
| Set the interpolation order for interpolating the gridded potential to the particle positions. More... | |
| FCSResult | fcs_vmg_get_interpolation_order (FCS handle, fcs_int *interpolation_order) |
| Get the interpolation order for interpolating the gridded potential to the particle positions. More... | |
| FCSResult | fcs_vmg_set_discretization_order (FCS handle, fcs_int discretization_order) |
| Set the discretization order. More... | |
| FCSResult | fcs_vmg_get_discretization_order (FCS handle, fcs_int *discretization_order) |
| Get the discretization order. More... | |
| void | vmg_fcs_print_timer () |
| Print runtimes of various vmg subsystems. More... | |
file containing all vmg specific functions
Definition in file fcs_vmg_p.h.
| typedef struct fcs_vmg_parameters_t* fcs_vmg_parameters |
Definition at line 35 of file fcs_vmg_p.h.
Get the cycle_type-number of the multigrid cycle used.
E.g. 1 corresponds to a V-Cycle and 2 corresponds to a W-Cycle.
| handle | FCS-object that contains the parameter. |
| cycle_type | type of multigrid cycle. |
Get the discretization order.
This will affect the discretization error heavily, but a higher value also implies more computation. Possible values are 2 or 4.
| handle | FCS-object that contains the parameter. |
| discretization_order | Discretization order. |
Get the interpolation order for interpolating the gridded potential to the particle positions.
| handle | FCS-object that contains the parameter. |
| interpolation_order | Interpolation order. |
Get the maximum number of multigrid iterations.
| handle | FCS-object that contains the parameter. |
| max_iterations | Number of iterations. |
Get the maximum level of the multigrid algorithm.
The number of grid points of the finest multigrid level will be 2^max_level.
| handle | FCS-object that contains the parameter |
| max_level | Number of iterations on return |
Get the number of near field cells for separating the near/far field part of the potential.
| handle | FCS-object that contains the parameter. |
| near_field_cells | Number of near field cells. |
Get the precision of the vmg algorithm.
Currently, the relative residual computed in the discrete L2 norm will be tested against this value.
| handle | FCS-object that contains the parameter. |
| precision | Precision of the vmg algorithm. |
Get the number of pre/postsmoothing steps on each level.
| handle | FCS-object that contains the parameter |
| smoothing_steps | Number of pre/postsmoothing steps |
Set the cycle_type-number of the multigrid cycle used.
E.g. 1 corresponds to a V-Cycle and 2 corresponds to a W-Cycle.
| handle | FCS-object that contains the parameter. |
| cycle_type | Gamma. |
Set the discretization order.
This will affect the discretization error heavily, but a higher value also implies more computation. Possible values are 2 or 4.
| handle | FCS-object that contains the parameter. |
| discretization_order | Discretization order. |
Set the interpolation order for interpolating the gridded potential to the particle positions.
| handle | FCS-object that contains the parameter. |
| interpolation_order | Interpolation order. |
Set the maximum number of multigrid iterations.
| handle | FCS-object that contains the parameter |
| max_iterations | Number of iterations. |
Set the maximum level of the multigrid algorithm.
This sets the number of grid points to 2^max_level, so basically this parameter ensures that the number of grid points will be a power of two.
| handle | FCS-object that contains the parameter |
| max_level | number of iterations |
Set the number of near field cells for separating the near/far field part of the potential.
| handle | FCS-object that contains the parameter. |
| near_field_cells | Near field cells. |
Set the precision of the vmg algorithm.
Currently, the relative residual computed in the discrete L2 norm will be tested against this value.
| handle | FCS-object that contains the parameter. |
| precision | Precision. |
Set the number of pre/postsmoothing steps on each level.
| handle | FCS-object that contains the parameter |
| smoothing_steps | Number of smoothing steps |
| FCSResult fcs_vmg_setup | ( | FCS | handle, |
| fcs_int | max_level, | ||
| fcs_int | max_iterations, | ||
| fcs_int | smoothing_steps, | ||
| fcs_int | cycle_type, | ||
| fcs_float | precision, | ||
| fcs_int | near_field_cells, | ||
| fcs_int | interpolation_order, | ||
| fcs_int | discretization_order | ||
| ) |
Function to set all vmg parameters with a single call.
| handle | FCS-object that contains the parameters |
| max_level | The maximum level of the algorithm, i.e. n_gridpoints = 2^max_level. |
| max_iterations | The maximum number of multigrid iterations. |
| smoothing_steps | Number of pre/postsmoothing steps on each level. |
| cycle_type | Cycle-number. |
| precision | Desired precision. |
| near_field_cells | Number of near field cells. |
| interpolation_order | Interpolation order. |
| discretization_order | Discretization order. |
| void vmg_fcs_print_timer | ( | ) |
Print runtimes of various vmg subsystems.
vmg has to be configured with –enable-debug-measure-time in order to do so.