void init_forces() { Cell *cell; Particle *p; int np, c, i; /* The force initialization depends on the used thermostat and the thermodynamic ensemble */ #ifdef NPT /* reset virial part of instantaneous pressure */ if(integ_switch == INTEG_METHOD_NPT_ISO) nptiso.p_vir[0] = nptiso.p_vir[1] = nptiso.p_vir[2] = 0.0; #endif /* initialize forces with langevin thermostat forces or zero depending on the thermostat set torque to zero for all and rescale quaternions */ for (c = 0; c < local_cells.n; c++) { cell = local_cells.cell[c]; p = cell->part; np = cell->n; for (i = 0; i < np; i++) init_local_particle_force(&p[i]); } #ifdef ADRESS #ifdef ADRESS_INIT /* update positions of atoms reinitialized when crossing from CG to hybrid zone done previously in init_local_particle_force */ ghost_communicator(&cell_structure.update_ghost_pos_comm); #endif #endif /* initialize ghost forces with zero set torque to zero for all and rescale quaternions */ for (c = 0; c < ghost_cells.n; c++) { cell = ghost_cells.cell[c]; p = cell->part; np = cell->n; for (i = 0; i < np; i++) init_ghost_force(&p[i]); } #ifdef CONSTRAINTS init_constraint_forces(); #endif }
void init_forces_ghosts() { Cell *cell; Particle *p; int np, c, i; for (c = 0; c < ghost_cells.n; c++) { cell = ghost_cells.cell[c]; p = cell->part; np = cell->n; for (i = 0; i < np; i++) init_ghost_force(&p[i]); } }
void init_forces() { Cell *cell; Particle *p; int np, c, i; /* The force initialization depends on the used thermostat and the thermodynamic ensemble */ #ifdef NPT /* reset virial part of instantaneous pressure */ if(integ_switch == INTEG_METHOD_NPT_ISO) nptiso.p_vir[0] = nptiso.p_vir[1] = nptiso.p_vir[2] = 0.0; #endif /* initialize forces with langevin thermostat forces or zero depending on the thermostat set torque to zero for all and rescale quaternions */ for (c = 0; c < local_cells.n; c++) { cell = local_cells.cell[c]; p = cell->part; np = cell->n; for (i = 0; i < np; i++) init_local_particle_force(&p[i]); } /* initialize ghost forces with zero set torque to zero for all and rescale quaternions */ for (c = 0; c < ghost_cells.n; c++) { cell = ghost_cells.cell[c]; p = cell->part; np = cell->n; for (i = 0; i < np; i++) init_ghost_force(&p[i]); } #ifdef CONSTRAINTS init_constraint_forces(); #endif }