1#ifndef RPG_PERTURBATION_TPP
2#define RPG_PERTURBATION_TPP
4#include "Perturbation.h"
5#include <rpg/fts/simulator/Simulator.h>
6#include <prdc/cuda/RField.h>
8#include <util/containers/DArray.h>
Field of real double precision values on an FFT mesh.
virtual void incrementDc(DArray< RField< D > > &dc)
Modify the generalized forces to include perturbation.
void setLambda(double lambda)
Set the perturbation parameter value.
System< D > const & system() const
Get parent System<D> by const reference.
double lambda_
Strength of the perturbation.
double lambda() const
Get the perturbation parameter.
virtual double df()
Compute and return derivative of H w/ respect to parameter lambda.
Simulator< D > const & simulator() const
Get parent Simulator<D> by const reference.
virtual ~Perturbation()
Destructor.
virtual void saveState()
Save any required internal state variables.
virtual void readParameters(std::istream &in)
Read parameters from archive.
virtual double hamiltonian(double unperturbedHamiltonian)
Compute and return the perturbation to the Hamiltonian.
Perturbation(Simulator< D > &simulator)
Constructor.
virtual void setup()
Complete any required initialization.
virtual void restoreState()
Restore any required internal state variables.
Field theoretic simulator (base class).
Dynamically allocatable contiguous array template.
ParamComposite()
Constructor.
File containing preprocessor macros for error handling.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.