1#ifndef RPC_BINARY_STRUCTURE_FACTOR_GRID_H
2#define RPC_BINARY_STRUCTURE_FACTOR_GRID_H
13#include <util/containers/DArray.h>
14#include <util/accumulators/Average.h>
15#include <prdc/cpu/RField.h>
16#include <prdc/cpu/RFieldDft.h>
26 template <
int D>
class System;
170 int nSamplePerBlock_;
191 std::vector<double> qList_;
194 std::map<double, double> averageSMap_;
208 #ifndef RPC_BINARY_STRUCTURE_FACTOR_GRID_TPP
An IntVec<D, T> is a D-component vector of elements of integer type T.
Fourier transform of a real field on an FFT mesh.
Field of real double precision values on an FFT mesh.
bool isAtInterval(long counter) const
Return true iff counter is a multiple of the interval.
void readInterval(std::istream &in)
Optionally read interval from file, with error checking.
const std::string & outputFileName() const
Return outputFileName string.
int interval() const
Get interval value.
void readOutputFileName(std::istream &in)
Read outputFileName from file.
Analyzer()
Default constructor.
BinaryStructureFactorGrid evaluates AB copolymer structure factors.
void setup()
Clear accumulators.
void setClassName(const char *className)
Set class name string.
System< D > & system()
Return reference to parent system.
void readParameters(std::istream &in)
Read parameters from file.
BinaryStructureFactorGrid(Simulator< D > &simulator, System< D > &system)
Constructor.
DArray< double > structureFactors_
Structure factor.
std::string filename_
Output filename.
Simulator< D > & simulator()
Return reference to parent Simulator.
System< D > * systemPtr_
Pointer to the parent system.
const Average & accumulator(int i) const
Get Average accumulator for a specific value.
std::ofstream outputFile_
Output file stream.
void sample(long iStep)
Add particles to BinaryStructureFactor accumulators.
void averageStructureFactor()
Compute average S(k) over k of equal magnitude.
int nWave_
Number of wavevectors.
~BinaryStructureFactorGrid()
Destructor.
void computeStructureFactor()
Compute structure factor.
Simulator< D > * simulatorPtr_
Pointer to parent Simulator.
void output()
Output results to predefined output file.
Field theoretic simulator (base class).
Main class, representing one complete system.
Calculates the average and variance of a sampled property.
Dynamically allocatable contiguous array template.
DArrayParam< Type > & readDArray(std::istream &in, const char *label, DArray< Type > &array, int n)
Add and read a required DArray < Type > 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.
Fields and FFTs for periodic boundary conditions (CPU)
Real periodic fields, SCFT and PS-FTS (CPU).
PSCF package top-level namespace.