Ignore:
Timestamp:
Apr 27, 2012, 11:34:57 PM (14 years ago)
Author:
Julian Iseringhausen <isering@…>
Children:
1a92cf
Parents:
b2154a3
Message:

vmg: Implement fourth-order discretization of the Poisson equation.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/interface/interface_fcs.cpp

    rb2154a3 r4571da  
    3535#include "samples/stencils.hpp"
    3636#include "samples/techniques.hpp"
    37 #include "smoother/gsrb.cpp"
     37#include "smoother/gsrb.hpp"
    3838#ifdef HAVE_LAPACK
    3939#include "solver/dgesv.hpp"
     
    5959  static vmg_int near_field_cells = -1;
    6060  static vmg_int interpolation_degree = -1;
     61  static vmg_int discretization_order = -1;
    6162  static MPI_Comm mpi_comm;
    6263}
     
    6667                         vmg_float* box_offset, vmg_float box_size,
    6768                         vmg_int near_field_cells, vmg_int interpolation_degree,
    68                          MPI_Comm mpi_comm)
     69                         vmg_int discretization_order, MPI_Comm mpi_comm)
    6970{
    7071  VMGBackupSettings::level = level;
     
    7879  VMGBackupSettings::near_field_cells = near_field_cells;
    7980  VMGBackupSettings::interpolation_degree = interpolation_degree;
     81  VMGBackupSettings::discretization_order = discretization_order;
    8082  VMGBackupSettings::mpi_comm = mpi_comm;
    8183
     
    113115  Discretization* discretization;
    114116  if (singular)
    115     discretization = new DiscretizationPoissonFD();
    116   else
    117     discretization = new DiscretizationPoissonFV();
     117    discretization = new DiscretizationPoissonFD(discretization_order);
     118  else
     119    discretization = new DiscretizationPoissonFV(discretization_order);
    118120  discretization->Register("DISCRETIZATION");
    119121
     
    154156   */
    155157  if (singular)
    156     Techniques::SetCorrectionSchemePeriodicParticle(interface->MinLevel(), interface->MaxLevel(), gamma);
     158    Techniques::SetCorrectionSchemePeriodic(interface->MinLevel(), interface->MaxLevel(), gamma);
    157159  else
    158160    Techniques::SetFullApproximationSchemeDirichlet(interface->MinLevel(), interface->MaxLevel(), gamma);
     
    183185                   vmg_float* box_offset, vmg_float box_size,
    184186                   vmg_int near_field_cells, vmg_int interpolation_degree,
    185                    MPI_Comm mpi_comm)
     187                   vmg_int discretization_order, MPI_Comm mpi_comm)
    186188{
    187189  if (VMGBackupSettings::level != level ||
     
    199201      VMGBackupSettings::near_field_cells != near_field_cells ||
    200202      VMGBackupSettings::interpolation_degree != interpolation_degree ||
     203      VMGBackupSettings::discretization_order != discretization_order ||
    201204      VMGBackupSettings::mpi_comm != mpi_comm) {
    202205
     
    205208                 smoothing_steps, gamma, precision,
    206209                 box_offset, box_size, near_field_cells,
    207                  interpolation_degree, mpi_comm);
     210                 interpolation_degree, discretization_order,
     211                 mpi_comm);
    208212
    209213  }
Note: See TracChangeset for help on using the changeset viewer.