コード例 #1
0
ファイル: initialize.c プロジェクト: andmi/espresso
void on_lbboundary_change()
{
    EVENT_TRACE(fprintf(stderr, "%d: on_lbboundary_change\n", this_node));
    invalidate_obs();

#ifdef LB_BOUNDARIES
    if(lattice_switch & LATTICE_LB) {
        lb_init_boundaries();
    }
#endif
#ifdef LB_BOUNDARIES_GPU
    if(this_node == 0) {
        if(lattice_switch & LATTICE_LB_GPU) {
            lb_init_boundaries();
        }
    }
#endif

    recalc_forces = 1;
}
コード例 #2
0
ファイル: initialize.cpp プロジェクト: mgusenbauer/espresso
void on_boxl_change() {
  EVENT_TRACE(fprintf(stderr, "%d: on_boxl_change\n", this_node));

  /* Now give methods a chance to react to the change in box length */
#ifdef ELECTROSTATICS
  switch(coulomb.method) {
#ifdef P3M
  case COULOMB_ELC_P3M:
	  ELC_init();
	  // fall through
  case COULOMB_P3M_GPU:
  case COULOMB_P3M:
	  p3m_scaleby_box_l();
	  break;
#endif
  case COULOMB_MMM1D:
	  MMM1D_init();
	  break;
  case COULOMB_MMM2D:
	  MMM2D_init();
	  break;
  case COULOMB_MAGGS: 
	  maggs_init();
	  break;
  default:
	  break;
  }
#endif

#ifdef DIPOLES
  switch(coulomb.Dmethod) {
#ifdef DP3M
  case DIPOLAR_MDLC_P3M:
    // fall through
  case DIPOLAR_P3M:
    dp3m_scaleby_box_l();
    break;
#endif
  default:
      break;
  }
#endif

#ifdef LB
  if(lattice_switch & LATTICE_LB) {
    lb_init();
#ifdef LB_BOUNDARIES
    lb_init_boundaries();
#endif
  }
#endif
}
コード例 #3
0
ファイル: initialize.c プロジェクト: andmi/espresso
void on_lb_params_change_gpu(int field) {
    EVENT_TRACE(fprintf(stderr, "%d: on_lb_params_change_gpu\n", this_node));

#ifdef LB_GPU
    if (field == LBPAR_AGRID) {
        lb_init_gpu();
#ifdef LB_BOUNDARIES_GPU
        lb_init_boundaries();
#endif
    }
    if (field == LBPAR_DENSITY) {
        lb_reinit_fluid_gpu();
    }

    lb_reinit_parameters_gpu();
#endif
}