/* -*- c++ -*- ----------------------------------------------------------
   LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
   http://lammps.sandia.gov, Sandia National Laboratories
   Steve Plimpton, sjplimp@sandia.gov

   Copyright (2003) Sandia Corporation.  Under the terms of Contract
   DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
   certain rights in this software.  This software is distributed under
   the GNU General Public License.

   See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */

#ifdef KSPACE_CLASS

KSpaceStyle(pppm/dplr,PPPMDPLR)

#else

#ifndef LMP_PPPM_DPLR_H
#define LMP_PPPM_DPLR_H

#ifdef HIGH_PREC
#define FLOAT_PREC double
#else
#define FLOAT_PREC float
#endif

#include "pppm.h"
#include <iostream>
#include <vector>
using namespace std;

namespace LAMMPS_NS {

  class PPPMDPLR : public PPPM {
public:
#ifdef OLD_LMP_PPPM
    PPPMDPLR(class LAMMPS *, int, char **);
#else
    PPPMDPLR(class LAMMPS *);
#endif
    virtual ~PPPMDPLR () {};
    void init();
    const vector<double > & get_fele() const {return fele;};
protected:
    virtual void compute(int, int);
    virtual void fieldforce_ik();
    virtual void fieldforce_ad();    
private:
    vector<double > fele;
  };

}

#endif
#endif

