![]() |
ESPResSo 3.2.0-11-g9950804-git
Extensible Simulation Package for Soft Matter Research
|
For more information about ELC, see elc.h. More...
#include <math.h>#include <mpi.h>#include "utils.h"#include "communication.h"#include "particle_data.h"#include "interaction_data.h"#include "cells.h"#include "elc.h"#include "mmm-common.h"#include "pressure.h"#include "p3m.h"#include "errorhandling.h"
Go to the source code of this file.
Defines | |
| #define | MAXIMAL_FAR_CUT 50 |
| Largest reasonable cutoff for far formula. | |
| #define | checkpoint(text, p, q, size) |
| #define | clear_log_forces(w) |
Product decomposition data organization | |
For the cell blocks it is assumed that the lower blocks part is in the lower half. This has to have positive sign, so that has to be first. | |
| #define | POQESP 0 |
| #define | POQECP 1 |
| #define | POQESM 2 |
| #define | POQECM 3 |
| #define | PQESSP 0 |
| #define | PQESCP 1 |
| #define | PQECSP 2 |
| #define | PQECCP 3 |
| #define | PQESSM 4 |
| #define | PQESCM 5 |
| #define | PQECSM 6 |
| #define | PQECCM 7 |
Functions | |
| void | ELC_setup_constants () |
| MDINLINE void | clear_vec (double *pdc, int size) |
| MDINLINE void | copy_vec (double *pdc_d, double *pdc_s, int size) |
| MDINLINE void | add_vec (double *pdc_d, double *pdc_s1, double *pdc_s2, int size) |
| MDINLINE void | addscale_vec (double *pdc_d, double scale, double *pdc_s1, double *pdc_s2, int size) |
| MDINLINE void | scale_vec (double scale, double *pdc, int size) |
| MDINLINE double * | block (double *p, int index, int size) |
| MDINLINE double | image_sum_b (double q, double z) |
| MDINLINE double | image_sum_t (double q, double z) |
| void | ELC_add_force () |
| the force calculation | |
| double | ELC_energy () |
| the energy calculation | |
| int | ELC_tune (double error) |
| int | ELC_sanity_checks () |
| check the ELC parameters | |
| void | ELC_init () |
| initialize the ELC constants | |
| void | ELC_on_resort_particles () |
| resize the particle buffers | |
| int | ELC_set_params (double maxPWerror, double gap_size, double far_cut, int neutralize, double top, double mid, double bot) |
| set parameters for ELC. | |
| void | ELC_P3M_self_forces () |
| forces of particles in border layers with themselves | |
| void | ELC_p3m_charge_assign_both () |
| assign the additional, virtual charges, used only in energy.c | |
| void | ELC_p3m_charge_assign_image () |
| assign the additional, virtual charges, used only in energy.c | |
| void | ELC_P3M_dielectric_layers_force_contribution (Particle *p1, Particle *p2, double force1[3], double force2[3]) |
| pairwise contributions from the lowest and top layers to the force | |
| double | ELC_P3M_dielectric_layers_energy_contribution (Particle *p1, Particle *p2) |
| pairwise contributions from the lowest and top layers to the energy | |
| double | ELC_P3M_dielectric_layers_energy_self () |
| self energies of top and bottom layers with their virtual images | |
| void | ELC_P3M_modify_p3m_sums_both () |
| take into account the virtual charges in the charge sums, used in energy.c | |
| void | ELC_P3M_modify_p3m_sums_image () |
| take into account the virtual charges in the charge sums, used in energy.c | |
| void | ELC_P3M_restore_p3m_sums () |
| assign the additional, virtual charges, used only in energy.c | |
sin/cos storage | |
| static void | prepare_scx_cache () |
| static void | prepare_scy_cache () |
common code | |
| static void | distribute (int size) |
p=0 per frequency code | |
| static void | setup_P (int p, double omega) |
| static void | add_P_force () |
| static double | P_energy (double omega) |
q=0 per frequency code | |
| static void | setup_Q (int q, double omega) |
| static void | add_Q_force () |
| static double | Q_energy (double omega) |
p,q <> 0 per frequency code | |
| static void | setup_PQ (int p, int q, double omega) |
| static void | add_PQ_force (int p, int q, double omega) |
| static double | PQ_energy (double omega) |
| static void | add_dipole_force () |
| static double | dipole_energy () |
| static double | z_energy () |
| static void | add_z_force () |
Variables | |
| ELC_struct | elc_params = { 1e100, 10, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0 } |
| static int | n_localpart = 0 |
| number of local particles, equals the size of elc::partblk. | |
| static double * | partblk = NULL |
| temporary buffers for product decomposition | |
| static double | gblcblk [8] |
| collected data from the other cells | |
Inverse box dimensions and derived constants | |
| static double | ux |
| static double | ux2 |
| static double | uy |
| static double | uy2 |
| static double | uz |
sin/cos caching | |
| static SCCache * | scxcache = NULL |
| static int | n_scxcache |
| static SCCache * | scycache = NULL |
| static int | n_scycache |
| #define checkpoint | ( | text, | |
| p, | |||
| q, | |||
| size | |||
| ) |
Definition at line 281 of file elc.c.
Referenced by ELC_add_force(), and ELC_energy().
| #define clear_log_forces | ( | w | ) |
Definition at line 303 of file elc.c.
Referenced by ELC_add_force().
| #define MAXIMAL_FAR_CUT 50 |
Largest reasonable cutoff for far formula.
Definition at line 48 of file elc.c.
Referenced by ELC_tune().
| #define POQECM 3 |
Definition at line 73 of file elc.c.
Referenced by add_P_force(), add_Q_force(), P_energy(), Q_energy(), setup_P(), and setup_Q().
| #define POQECP 1 |
Definition at line 71 of file elc.c.
Referenced by add_P_force(), add_Q_force(), P_energy(), Q_energy(), setup_P(), and setup_Q().
| #define POQESM 2 |
Definition at line 72 of file elc.c.
Referenced by add_P_force(), add_Q_force(), P_energy(), Q_energy(), setup_P(), and setup_Q().
| #define POQESP 0 |
Definition at line 70 of file elc.c.
Referenced by add_P_force(), add_Q_force(), P_energy(), Q_energy(), setup_P(), and setup_Q().
| #define PQECCM 7 |
Definition at line 82 of file elc.c.
Referenced by add_PQ_force(), PQ_energy(), and setup_PQ().
| #define PQECCP 3 |
Definition at line 78 of file elc.c.
Referenced by add_PQ_force(), PQ_energy(), and setup_PQ().
| #define PQECSM 6 |
Definition at line 81 of file elc.c.
Referenced by add_PQ_force(), PQ_energy(), and setup_PQ().
| #define PQECSP 2 |
Definition at line 77 of file elc.c.
Referenced by add_PQ_force(), PQ_energy(), and setup_PQ().
| #define PQESCM 5 |
Definition at line 80 of file elc.c.
Referenced by add_PQ_force(), PQ_energy(), and setup_PQ().
| #define PQESCP 1 |
Definition at line 76 of file elc.c.
Referenced by add_PQ_force(), PQ_energy(), and setup_PQ().
| #define PQESSM 4 |
Definition at line 79 of file elc.c.
Referenced by add_PQ_force(), PQ_energy(), and setup_PQ().
| #define PQESSP 0 |
Definition at line 75 of file elc.c.
Referenced by add_PQ_force(), PQ_energy(), and setup_PQ().
| static void add_dipole_force | ( | ) | [static] |
Definition at line 310 of file elc.c.
References box_l, CellPList::cell, coulomb, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::dielectric_contrast_on, distribute(), Particle::f, gblcblk, ELC_struct::h, i, local_cells, M_PI, CellPList::n, ParticleList::n, ELC_struct::neutralize, ParticlePosition::p, Particle::p, part, ParticleList::part, Coulomb_parameters::prefactor, ParticleProperties::q, Particle::r, ELC_struct::space_layer, ux, uy, and uz.
Referenced by ELC_add_force().
| static void add_P_force | ( | ) | [static] |
Definition at line 814 of file elc.c.
References CellPList::cell, ParticleForce::f, Particle::f, gblcblk, i, local_cells, CellPList::n, ParticleList::n, part, ParticleList::part, partblk, POQECM, POQECP, POQESM, and POQESP.
Referenced by ELC_add_force().
| static void add_PQ_force | ( | int | p, |
| int | q, | ||
| double | omega | ||
| ) | [static] |
Definition at line 1018 of file elc.c.
References C_2PI, CellPList::cell, ParticleForce::f, Particle::f, gblcblk, i, local_cells, CellPList::n, ParticleList::n, part, ParticleList::part, partblk, PQECCM, PQECCP, PQECSM, PQECSP, PQESCM, PQESCP, PQESSM, PQESSP, ux, and uy.
Referenced by ELC_add_force().
| static void add_Q_force | ( | ) | [static] |
Definition at line 855 of file elc.c.
References CellPList::cell, ParticleForce::f, Particle::f, gblcblk, i, local_cells, CellPList::n, ParticleList::n, part, ParticleList::part, partblk, POQECM, POQECP, POQESM, and POQESP.
Referenced by ELC_add_force().
| MDINLINE void add_vec | ( | double * | pdc_d, |
| double * | pdc_s1, | ||
| double * | pdc_s2, | ||
| int | size | ||
| ) |
| static void add_z_force | ( | ) | [static] |
Definition at line 558 of file elc.c.
References CellPList::cell, clear_vec(), coulomb, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::dielectric_contrast_on, distribute(), ParticleForce::f, Particle::f, gblcblk, ELC_struct::h, i, local_cells, M_PI, CellPList::n, ParticleList::n, Particle::p, part, ParticleList::part, Coulomb_parameters::prefactor, ParticleProperties::q, ELC_struct::space_layer, ux, and uy.
Referenced by ELC_add_force().
| MDINLINE void addscale_vec | ( | double * | pdc_d, |
| double | scale, | ||
| double * | pdc_s1, | ||
| double * | pdc_s2, | ||
| int | size | ||
| ) |
Definition at line 227 of file elc.c.
References i.
Referenced by distribute(), setup_P(), setup_PQ(), and setup_Q().
| MDINLINE double* block | ( | double * | p, |
| int | index, | ||
| int | size | ||
| ) |
Definition at line 241 of file elc.c.
Referenced by add_P_force(), add_PQ_force(), add_Q_force(), add_z_force(), observable_blocked_com_force(), observable_blocked_com_position(), observable_blocked_com_velocity(), P_energy(), PQ_energy(), Q_energy(), setup_P(), setup_PQ(), setup_Q(), and z_energy().
| MDINLINE void clear_vec | ( | double * | pdc, |
| int | size | ||
| ) |
Definition at line 206 of file elc.c.
References i.
Referenced by add_z_force(), clear_image_contributions(), setup_P(), setup_PQ(), setup_Q(), setup_z_energy(), setup_z_force(), and z_energy().
| MDINLINE void copy_vec | ( | double * | pdc_d, |
| double * | pdc_s, | ||
| int | size | ||
| ) |
Definition at line 213 of file elc.c.
References i.
Referenced by distribute(), gather_image_contributions(), and setup_z_energy().
| static double dipole_energy | ( | ) | [static] |
Definition at line 378 of file elc.c.
References box_l, CellPList::cell, coulomb, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::dielectric_contrast_on, distribute(), gblcblk, ELC_struct::h, i, local_cells, M_PI, CellPList::n, ParticleList::n, ELC_struct::neutralize, ParticlePosition::p, Particle::p, part, ParticleList::part, Coulomb_parameters::prefactor, ParticleProperties::q, Particle::r, ELC_struct::space_layer, SQR(), this_node, ux, uy, and uz.
Referenced by ELC_energy().
| void distribute | ( | int | size | ) | [static] |
Definition at line 246 of file elc.c.
References comm_cart, copy_vec(), gblcblk, MPI_Allreduce(), MPI_DOUBLE, and MPI_SUM.
Referenced by add_dipole_force(), add_z_force(), dipole_energy(), ELC_add_force(), ELC_energy(), and z_energy().
| void ELC_add_force | ( | ) |
the force calculation
Definition at line 1076 of file elc.c.
References add_dipole_force(), add_P_force(), add_PQ_force(), add_Q_force(), add_z_force(), C_2PI, checkpoint, clear_log_forces, distribute(), ELC_struct::far_cut, ELC_struct::far_cut2, n_scxcache, n_scycache, prepare_scx_cache(), prepare_scy_cache(), setup_P(), setup_PQ(), setup_Q(), SQR(), ux, and uy.
Referenced by calc_long_range_forces(), and calc_long_range_forces_iccp3m().
| double ELC_energy | ( | ) |
the energy calculation
Definition at line 1124 of file elc.c.
References C_2PI, checkpoint, dipole_energy(), distribute(), ELC_struct::far_cut, ELC_struct::far_cut2, n_scxcache, n_scycache, P_energy(), PQ_energy(), prepare_scx_cache(), prepare_scy_cache(), Q_energy(), setup_P(), setup_PQ(), setup_Q(), SQR(), ux, uy, and z_energy().
Referenced by calc_long_range_energies().
| void ELC_init | ( | ) |
initialize the ELC constants
Definition at line 1212 of file elc.c.
References p3m_parameter_struct::additional_mesh, coulomb, COULOMB_ELC_P3M, ELC_struct::dielectric_contrast_on, dmin(), ELC_setup_constants(), ELC_tune(), ERROR_SPRINTF, ES_ERROR, ELC_struct::far_calculated, ELC_struct::gap_size, ELC_struct::h, ELC_struct::maxPWerror, Coulomb_parameters::method, ELC_struct::minimal_dist, p3m, p3m_data_struct::params, p3m_parameter_struct::r_cut, runtime_error(), ELC_struct::space_box, and ELC_struct::space_layer.
Referenced by on_boxl_change(), on_cell_structure_change(), and on_coulomb_change().
| void ELC_on_resort_particles | ( | ) |
resize the particle buffers
Definition at line 1257 of file elc.c.
References cells_get_n_particles(), ELC_struct::far_cut, n_scxcache, n_scycache, partblk, realloc, scxcache, scycache, ux, and uy.
Referenced by on_resort_particles().
| void ELC_p3m_charge_assign_both | ( | ) |
assign the additional, virtual charges, used only in energy.c
Definition at line 1369 of file elc.c.
References CellPList::cell, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::h, i, local_cells, p3m_data_struct::local_mesh, CellPList::n, ParticleList::n, ParticlePosition::p, Particle::p, p3m, p3m_assign_charge(), p3m_shrink_wrap_charge_grid(), ParticleList::part, ParticleProperties::q, Particle::r, p3m_data_struct::rs_mesh, p3m_local_mesh::size, and ELC_struct::space_layer.
Referenced by calc_long_range_energies(), and calc_long_range_forces().
| void ELC_p3m_charge_assign_image | ( | ) |
assign the additional, virtual charges, used only in energy.c
Definition at line 1409 of file elc.c.
References CellPList::cell, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::h, i, local_cells, p3m_data_struct::local_mesh, CellPList::n, ParticleList::n, ParticlePosition::p, Particle::p, p3m, p3m_assign_charge(), ParticleList::part, ParticleProperties::q, Particle::r, p3m_data_struct::rs_mesh, p3m_local_mesh::size, and ELC_struct::space_layer.
Referenced by calc_long_range_energies().
pairwise contributions from the lowest and top layers to the energy
Definition at line 1490 of file elc.c.
References ELC_struct::di_mid_bot, ELC_struct::di_mid_top, get_mi_vector(), ELC_struct::h, ParticlePosition::p, Particle::p, p3m_pair_energy(), ParticleProperties::q, Particle::r, ELC_struct::space_layer, and sqrlen().
Referenced by add_non_bonded_pair_energy().
| double ELC_P3M_dielectric_layers_energy_self | ( | ) |
self energies of top and bottom layers with their virtual images
Definition at line 1543 of file elc.c.
References CellPList::cell, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, get_mi_vector(), ELC_struct::h, i, local_cells, CellPList::n, ParticleList::n, ParticlePosition::p, Particle::p, p3m_pair_energy(), ParticleList::part, ParticleProperties::q, Particle::r, ELC_struct::space_layer, and sqrlen().
Referenced by calc_long_range_energies().
| void ELC_P3M_dielectric_layers_force_contribution | ( | Particle * | p1, |
| Particle * | p2, | ||
| double | force1[3], | ||
| double | force2[3] | ||
| ) |
pairwise contributions from the lowest and top layers to the force
Definition at line 1443 of file elc.c.
References ELC_struct::di_mid_bot, ELC_struct::di_mid_top, get_mi_vector(), ELC_struct::h, ParticlePosition::p, Particle::p, p3m_add_pair_force(), ParticleProperties::q, Particle::r, ELC_struct::space_layer, and sqrlen().
Referenced by add_non_bonded_pair_force().
| void ELC_P3M_modify_p3m_sums_both | ( | ) |
take into account the virtual charges in the charge sums, used in energy.c
Definition at line 1585 of file elc.c.
References CellPList::cell, comm_cart, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::h, i, local_cells, MPI_Allreduce(), MPI_DOUBLE, MPI_SUM, CellPList::n, ParticleList::n, Particle::p, p3m, part, ParticleList::part, ParticleProperties::q, ELC_struct::space_layer, SQR(), p3m_data_struct::square_sum_q, p3m_data_struct::sum_q2, and p3m_data_struct::sum_qpart.
Referenced by calc_long_range_energies(), and calc_long_range_forces().
| void ELC_P3M_modify_p3m_sums_image | ( | ) |
take into account the virtual charges in the charge sums, used in energy.c
Definition at line 1626 of file elc.c.
References CellPList::cell, comm_cart, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::h, i, local_cells, MPI_Allreduce(), MPI_DOUBLE, MPI_SUM, CellPList::n, ParticleList::n, Particle::p, p3m, part, ParticleList::part, ParticleProperties::q, ELC_struct::space_layer, SQR(), p3m_data_struct::square_sum_q, p3m_data_struct::sum_q2, and p3m_data_struct::sum_qpart.
Referenced by calc_long_range_energies().
| void ELC_P3M_restore_p3m_sums | ( | ) |
assign the additional, virtual charges, used only in energy.c
Definition at line 1669 of file elc.c.
References CellPList::cell, comm_cart, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::dielectric_contrast_on, ELC_struct::h, i, local_cells, MPI_Allreduce(), MPI_DOUBLE, MPI_SUM, CellPList::n, ParticleList::n, Particle::p, p3m, part, ParticleList::part, ParticleProperties::q, ELC_struct::space_layer, SQR(), p3m_data_struct::square_sum_q, p3m_data_struct::sum_q2, and p3m_data_struct::sum_qpart.
Referenced by calc_long_range_forces().
| void ELC_P3M_self_forces | ( | ) |
forces of particles in border layers with themselves
Definition at line 1334 of file elc.c.
References CellPList::cell, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, Particle::f, get_mi_vector(), ELC_struct::h, i, local_cells, CellPList::n, ParticleList::n, ParticlePosition::p, Particle::p, p3m_add_pair_force(), ParticleList::part, ParticleProperties::q, Particle::r, ELC_struct::space_layer, and sqrlen().
Referenced by calc_long_range_forces().
| int ELC_sanity_checks | ( | ) |
check the ELC parameters
Definition at line 1201 of file elc.c.
References ERROR_SPRINTF, PERIODIC, and runtime_error().
Referenced by check_obs_calc_initialized().
| int ELC_set_params | ( | double | maxPWerror, |
| double | min_dist, | ||
| double | far_cut, | ||
| int | neutralize, | ||
| double | top, | ||
| double | mid, | ||
| double | bottom | ||
| ) |
set parameters for ELC.
| maxPWerror | the required accuracy of the potential and the force. Note that this counts for the plain 1/r contribution alone, without the Bjerrum length and the charge prefactor. |
| min_dist | the gap size. |
| far_cut | the cutoff of the exponential sum. If -1, the cutoff is automatically calculated using the error formulas. |
| neutralize | whether to add a neutralizing background. WARNING: This background exerts forces, which are dependent on the simulation box; especially the gap size enters into the value of the forces. |
| top | dielectric constant of upper part |
| mid | dielectric constant of center part |
| bottom | dielectric constant of lower part |
Definition at line 1268 of file elc.c.
References box_l, coulomb, COULOMB_ELC_P3M, COULOMB_P3M, ELC_struct::di_bot, ELC_struct::di_mid, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::di_top, ELC_struct::dielectric_contrast_on, dmin(), ELC_setup_constants(), ELC_tune(), p3m_parameter_struct::epsilon, ERROR_SPRINTF, ES_ERROR, ES_OK, ELC_struct::far_calculated, ELC_struct::far_cut, ELC_struct::far_cut2, ELC_struct::gap_size, ELC_struct::h, ELC_struct::maxPWerror, Coulomb_parameters::method, ELC_struct::minimal_dist, mpi_bcast_coulomb_params(), ELC_struct::neutralize, p3m, P3M_EPSILON_METALLIC, p3m_data_struct::params, runtime_error(), ELC_struct::space_box, ELC_struct::space_layer, SQR(), and top.
Referenced by tclcommand_inter_coulomb_parse_elc_params().
| void ELC_setup_constants | ( | ) |
Definition at line 145 of file elc.c.
References box_l, ux, ux2, uy, uy2, and uz.
Referenced by ELC_init(), and ELC_set_params().
| int ELC_tune | ( | double | error | ) |
Definition at line 1163 of file elc.c.
References box_l, C_2PI, ELC_struct::dielectric_contrast_on, dmin(), err, ES_ERROR, ES_OK, ELC_struct::far_cut, ELC_struct::far_cut2, ELC_struct::h, M_PI, MAXIMAL_FAR_CUT, ELC_struct::space_layer, SQR(), ux, and uy.
Referenced by ELC_init(), and ELC_set_params().
| MDINLINE double image_sum_b | ( | double | q, |
| double | z | ||
| ) |
Definition at line 478 of file elc.c.
References box_l, ELC_struct::di_mid_bot, and ELC_struct::di_mid_top.
Referenced by z_energy().
| MDINLINE double image_sum_t | ( | double | q, |
| double | z | ||
| ) |
Definition at line 487 of file elc.c.
References box_l, ELC_struct::di_mid_bot, and ELC_struct::di_mid_top.
Referenced by z_energy().
| static double P_energy | ( | double | omega | ) | [static] |
Definition at line 836 of file elc.c.
References CellPList::cell, gblcblk, i, local_cells, CellPList::n, ParticleList::n, partblk, POQECM, POQECP, POQESM, and POQESP.
Referenced by ELC_energy().
| static double PQ_energy | ( | double | omega | ) | [static] |
Definition at line 1051 of file elc.c.
References CellPList::cell, gblcblk, i, local_cells, CellPList::n, ParticleList::n, partblk, PQECCM, PQECCP, PQECSM, PQECSP, PQESCM, PQESCP, PQESSM, and PQESSP.
Referenced by ELC_energy().
| static void prepare_scx_cache | ( | ) | [static] |
Definition at line 156 of file elc.c.
References C_2PI, CellPList::cell, i, local_cells, CellPList::n, ParticleList::n, n_localpart, n_scxcache, ParticlePosition::p, part, ParticleList::part, Particle::r, scxcache, and ux.
Referenced by ELC_add_force(), and ELC_energy().
| static void prepare_scy_cache | ( | ) | [static] |
Definition at line 179 of file elc.c.
References C_2PI, CellPList::cell, i, local_cells, CellPList::n, ParticleList::n, n_localpart, n_scycache, ParticlePosition::p, part, ParticleList::part, Particle::r, scycache, and uy.
Referenced by ELC_add_force(), and ELC_energy().
| static double Q_energy | ( | double | omega | ) | [static] |
Definition at line 877 of file elc.c.
References CellPList::cell, gblcblk, i, local_cells, CellPList::n, ParticleList::n, partblk, POQECM, POQECP, POQESM, and POQESP.
Referenced by ELC_energy().
| MDINLINE void scale_vec | ( | double | scale, |
| double * | pdc, | ||
| int | size | ||
| ) |
Definition at line 234 of file elc.c.
References i.
Referenced by setup_P(), setup_PQ(), setup_Q(), setup_z_energy(), and setup_z_force().
| static void setup_P | ( | int | p, |
| double | omega | ||
| ) | [static] |
Definition at line 611 of file elc.c.
References add_vec(), addscale_vec(), block(), box_l, CellPList::cell, clear_vec(), coulomb, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::dielectric_contrast_on, gblcblk, ELC_struct::h, i, lclimge, local_cells, M_PI, CellPList::n, ParticleList::n, ParticlePosition::p, Particle::p, part, ParticleList::part, partblk, POQECM, POQECP, POQESM, POQESP, Coulomb_parameters::prefactor, ParticleProperties::q, Particle::r, scale_vec(), scxcache, ELC_struct::space_layer, ux, and uy.
Referenced by ELC_add_force(), and ELC_energy().
| static void setup_PQ | ( | int | p, |
| int | q, | ||
| double | omega | ||
| ) | [static] |
Definition at line 900 of file elc.c.
References add_vec(), addscale_vec(), block(), box_l, CellPList::cell, clear_vec(), coulomb, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::dielectric_contrast_on, gblcblk, ELC_struct::h, i, lclimge, local_cells, M_PI, CellPList::n, ParticleList::n, n_localpart, ParticlePosition::p, Particle::p, part, ParticleList::part, partblk, PQECCM, PQECCP, PQECSM, PQECSP, PQESCM, PQESCP, PQESSM, PQESSP, Coulomb_parameters::prefactor, ParticleProperties::q, Particle::r, scale_vec(), scxcache, scycache, ELC_struct::space_layer, ux, and uy.
Referenced by ELC_add_force(), and ELC_energy().
| static void setup_Q | ( | int | q, |
| double | omega | ||
| ) | [static] |
Definition at line 713 of file elc.c.
References add_vec(), addscale_vec(), block(), box_l, CellPList::cell, clear_vec(), coulomb, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::dielectric_contrast_on, gblcblk, ELC_struct::h, i, lclimge, local_cells, M_PI, CellPList::n, ParticleList::n, ParticlePosition::p, Particle::p, part, ParticleList::part, partblk, POQECM, POQECP, POQESM, POQESP, Coulomb_parameters::prefactor, ParticleProperties::q, Particle::r, scale_vec(), scycache, ELC_struct::space_layer, ux, and uy.
Referenced by ELC_add_force(), and ELC_energy().
| static double z_energy | ( | ) | [static] |
Definition at line 496 of file elc.c.
References box_l, CellPList::cell, clear_vec(), coulomb, ELC_struct::di_mid_bot, ELC_struct::di_mid_top, ELC_struct::dielectric_contrast_on, distribute(), gblcblk, ELC_struct::h, i, image_sum_b(), image_sum_t(), local_cells, M_PI, CellPList::n, ParticleList::n, ParticlePosition::p, Particle::p, part, ParticleList::part, Coulomb_parameters::prefactor, ParticleProperties::q, Particle::r, ELC_struct::space_layer, this_node, ux, and uy.
Referenced by ELC_energy().
| ELC_struct elc_params = { 1e100, 10, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0 } |
Definition at line 59 of file elc.c.
Referenced by add_non_bonded_pair_energy(), add_non_bonded_pair_force(), calc_long_range_energies(), calc_long_range_forces(), calc_long_range_forces_iccp3m(), iccp3m_sanity_check(), mpi_bcast_coulomb_params_slave(), p3m_mc_time(), recalc_global_maximal_nonbonded_cutoff(), and tclprint_to_result_ELC().
double gblcblk[8] [static] |
collected data from the other cells
Definition at line 91 of file elc.c.
Referenced by add_dipole_force(), add_P_force(), add_PQ_force(), add_Q_force(), add_z_force(), dipole_energy(), distribute(), P_energy(), PQ_energy(), Q_energy(), setup_P(), setup_PQ(), setup_Q(), and z_energy().
int n_localpart = 0 [static] |
number of local particles, equals the size of elc::partblk.
Definition at line 86 of file elc.c.
Referenced by prepare_scx_cache(), prepare_scy_cache(), and setup_PQ().
int n_scxcache [static] |
Definition at line 101 of file elc.c.
Referenced by ELC_add_force(), ELC_energy(), ELC_on_resort_particles(), and prepare_scx_cache().
int n_scycache [static] |
Definition at line 103 of file elc.c.
Referenced by ELC_add_force(), ELC_energy(), ELC_on_resort_particles(), and prepare_scy_cache().
double* partblk = NULL [static] |
temporary buffers for product decomposition
Definition at line 89 of file elc.c.
Referenced by add_P_force(), add_PQ_force(), add_Q_force(), ELC_on_resort_particles(), P_energy(), PQ_energy(), Q_energy(), setup_P(), setup_PQ(), and setup_Q().
SCCache* scxcache = NULL [static] |
Definition at line 100 of file elc.c.
Referenced by ELC_on_resort_particles(), prepare_scx_cache(), setup_P(), and setup_PQ().
SCCache* scycache = NULL [static] |
Definition at line 102 of file elc.c.
Referenced by ELC_on_resort_particles(), prepare_scy_cache(), setup_PQ(), and setup_Q().
double ux [static] |
Definition at line 56 of file elc.c.
Referenced by add_dipole_force(), add_PQ_force(), add_z_force(), dipole_energy(), ELC_add_force(), ELC_energy(), ELC_on_resort_particles(), ELC_setup_constants(), ELC_tune(), prepare_scx_cache(), setup_P(), setup_PQ(), setup_Q(), and z_energy().
| double ux2 |
Definition at line 56 of file elc.c.
Referenced by add_mmm2d_coulomb_pair_force(), calc_mmm2d_copy_pair_energy(), ELC_setup_constants(), MMM2D_add_far(), and MMM2D_setup_constants().
| double uy |
Definition at line 56 of file elc.c.
Referenced by add_dipole_force(), add_force_contribution(), add_mmm2d_coulomb_pair_force(), add_PQ_force(), add_z_force(), calc_mmm2d_copy_pair_energy(), dipole_energy(), ELC_add_force(), ELC_energy(), ELC_on_resort_particles(), ELC_setup_constants(), ELC_tune(), energy_contribution(), MMM2D_dielectric_layers_energy_contribution(), MMM2D_on_resort_particles(), MMM2D_setup_constants(), MMM2D_tune_far(), MMM2D_tune_near(), prepare_scy_cache(), prepareBernoulliNumbers(), setup_P(), setup_PQ(), setup_Q(), setup_z_energy(), setup_z_force(), and z_energy().
| double uy2 |
Definition at line 56 of file elc.c.
Referenced by add_mmm2d_coulomb_pair_force(), calc_mmm2d_copy_pair_energy(), ELC_setup_constants(), MMM2D_add_far(), and MMM2D_setup_constants().
| double uz |
Definition at line 56 of file elc.c.
Referenced by add_dipole_force(), add_mmm1d_coulomb_pair_force(), determine_bessel_cutoff(), dipole_energy(), ELC_setup_constants(), mmm1d_coulomb_pair_energy(), MMM1D_setup_constants(), MMM2D_add_far(), and MMM2D_setup_constants().
1.7.5.1