Changeset a150d0


Ignore:
Timestamp:
Apr 25, 2012, 4:21:08 PM (14 years ago)
Author:
Julian Iseringhausen <isering@…>
Children:
7dd744
Parents:
b51c3b
Message:

vmg: Added parameter to control the interpolation degree (Tensor Lagrange interpolation) for interpolating the potentials from the grid to the particle positions.

git-svn-id: https://svn.version.fz-juelich.de/scafacos/trunk@1742 5161e1c8-67bf-11de-9fd5-51895aff932f

Location:
src/interface
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/interface/interface_fcs.cpp

    rb51c3b ra150d0  
    5858  static vmg_float box_size = -1.0;
    5959  static vmg_int near_field_cells = -1;
     60  static vmg_int interpolation_degree = -1;
    6061  static MPI_Comm mpi_comm;
    6162}
     
    6465                         vmg_int smoothing_steps, vmg_int gamma, vmg_float precision,
    6566                         vmg_float* box_offset, vmg_float box_size,
    66                          vmg_int near_field_cells, MPI_Comm mpi_comm)
     67                         vmg_int near_field_cells, vmg_int interpolation_degree,
     68                         MPI_Comm mpi_comm)
    6769{
    6870  VMGBackupSettings::level = level;
     
    7577  VMGBackupSettings::box_size = box_size;
    7678  VMGBackupSettings::near_field_cells = near_field_cells;
     79  VMGBackupSettings::interpolation_degree = interpolation_degree;
    7780  VMGBackupSettings::mpi_comm = mpi_comm;
    7881
     
    163166  new ObjectStorage<int>("MAX_ITERATION", max_iter);
    164167  new ObjectStorage<int>("PARTICLE_NEAR_FIELD_CELLS", near_field_cells);
     168  new ObjectStorage<int>("PARTICLE_INTERPOLATION_DEGREE", interpolation_degree);
    165169
    166170  /*
     
    178182                   vmg_int smoothing_steps, vmg_int gamma, vmg_float precision,
    179183                   vmg_float* box_offset, vmg_float box_size,
    180                    vmg_int near_field_cells, MPI_Comm mpi_comm)
     184                   vmg_int near_field_cells, vmg_int interpolation_degree,
     185                   MPI_Comm mpi_comm)
    181186{
    182187  if (VMGBackupSettings::level != level ||
     
    193198      VMGBackupSettings::box_size != box_size ||
    194199      VMGBackupSettings::near_field_cells != near_field_cells ||
     200      VMGBackupSettings::interpolation_degree != interpolation_degree ||
    195201      VMGBackupSettings::mpi_comm != mpi_comm) {
    196202
     
    199205                 smoothing_steps, gamma, precision,
    200206                 box_offset, box_size, near_field_cells,
    201                 mpi_comm);
     207                 interpolation_degree, mpi_comm);
    202208
    203209  }
  • src/interface/interface_fcs.h

    rb51c3b ra150d0  
    1616                   fcs_int smoothing_steps, fcs_int gamma, fcs_float precision,
    1717                   fcs_float* box_offset, fcs_float box_size,
    18                    fcs_int near_field_cells, MPI_Comm mpi_comm);
     18                   fcs_int near_field_cells, fcs_int interpolation_degree,
     19                   MPI_Comm mpi_comm);
    1920
    2021int VMG_fcs_check();
  • src/interface/interface_particles.cpp

    rb51c3b ra150d0  
    102102  vmg_float length;
    103103  Vector dist_vec;
    104   InterpolatePolynomial ip(8);
    105104
    106105#ifdef DEBUG_OUTPUT
     
    119118   */
    120119  const vmg_int& num_particles_local = factory.GetObjectStorageVal<vmg_int>("PARTICLE_NUM_LOCAL");
    121   const int& near_field_cells = factory.GetObjectStorageVal<int>("PARTICLE_NEAR_FIELD_CELLS");
     120  const vmg_int& near_field_cells = factory.GetObjectStorageVal<int>("PARTICLE_NEAR_FIELD_CELLS");
     121  const vmg_int& interpolation_degree = factory.GetObjectStorageVal<int>("PARTICLE_INTERPOLATION_DEGREE");
    122122  vmg_float* p = factory.GetObjectStorageArray<vmg_float>("PARTICLE_POTENTIAL_ARRAY");
    123123  vmg_float* f = factory.GetObjectStorageArray<vmg_float>("PARTICLE_FIELD_ARRAY");
     124
     125  InterpolatePolynomial ip(interpolation_degree);
    124126
    125127  const vmg_float r_cut = (near_field_cells+0.5) * grid.Extent().MeshWidth().Max();
Note: See TracChangeset for help on using the changeset viewer.