1#ifndef RPG_PERTURBATION_H
2#define RPG_PERTURBATION_H
4#include <util/param/ParamComposite.h>
8 template <
typename T>
class DArray;
13 template <
int D>
class RField;
23 using namespace Prdc::Cuda;
25 template <
int D>
class System;
77 virtual double hamiltonian(
double unperturbedHamiltonian);
170 assert(simulatorPtr_);
171 return *simulatorPtr_;
178 assert(simulatorPtr_);
179 return *simulatorPtr_;
Field of real double precision values on an FFT mesh.
Base class for additive perturbations of standard FTS Hamiltonian.
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).
Main class, representing a complete physical system.
Dynamically allocatable contiguous array template.
ParamComposite()
Constructor.
Fields, FFTs, and utilities for periodic boundary conditions (CUDA)
Periodic fields and crystallography.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.
Utility classes for scientific computation.