1#ifndef RPG_AM_ITERATOR_GRID_H
2#define RPG_AM_ITERATOR_GRID_H
12#include <pscf/iterator/AmIteratorTmpl.h>
13#include <pscf/iterator/AmbdInteraction.h>
14#include <util/containers/DArray.h>
15#include <util/containers/RingBuffer.h>
68 using Iterator<D>::setFlexibleParams;
91 void setup(
bool isContinuation);
109 void setEqual(FieldCUDA& a, FieldCUDA
const & b);
114 double dotProduct(FieldCUDA
const & a, FieldCUDA
const & b);
121 double maxAbs(FieldCUDA
const & a);
140 void addHistories(FieldCUDA& trial,
151 void addPredictedError(FieldCUDA& fieldTrial,
152 FieldCUDA
const & resTrial,
156 bool hasInitialGuess();
168 void getCurrent(FieldCUDA& curr);
180 void getResidual(FieldCUDA& resid);
187 void update(FieldCUDA& newGuess);
201 cudaReal findAverage(FieldCUDA
const &
field);
205 #ifndef RPG_AM_ITERATOR_GRID_TPP
FieldCUDA const & residual() const
int solve(bool isContinuation=false)
FieldCUDA const & field() const
Modified interaction to compute residual defn.
Rpg implementation of the Anderson Mixing iterator.
AmIteratorGrid(System< D > &system)
Constructor.
void readParameters(std::istream &in)
Read all parameters and initialize.
void setup(bool isContinuation)
Setup iterator just before entering iteration loop.
void outputTimers(std::ostream &out) const
Output timing results to log file.
~AmIteratorGrid()
Destructor.
Base class for iterative solvers for SCF equations.
Main class, representing one complete system.
Dynamically allocatable contiguous array template.
FSArrayParam< Type, N > & readOptionalFSArray(std::istream &in, const char *label, FSArray< Type, N > &array, int size)
Add and read an optional FSArray < Type, N > array parameter.
void setClassName(const char *className)
Set class name string.
ScalarParam< Type > & readOptional(std::istream &in, const char *label, Type &value)
Add and read a new optional ScalarParam < Type > object.
void readParamCompositeOptional(std::istream &in, ParamComposite &child, bool next=true)
Add and attempt to read an optional child ParamComposite.
Class for storing history of previous values in an array.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.