PSCF v1.2
Pscf::Rpg Namespace Reference

SCFT and PS-FTS with real periodic fields (GPU) More...

Namespaces

namespace  VecOpFts
 Element-wise vector operations performed on the GPU for FTS classes.
 

Classes

class  AmCompressor
 Rpg implementation of the Anderson Mixing compressor. More...
 
class  AmIteratorBasis
 Rpg implementation of the Anderson Mixing iterator. More...
 
class  AmIteratorGrid
 Rpg implementation of the Anderson Mixing iterator. More...
 
class  Analyzer
 Abstract base for periodic output and/or analysis actions. More...
 
class  AnalyzerFactory
 Factory for subclasses of Analyzer. More...
 
class  AnalyzerManager
 Manager for a list of Analyzer objects. More...
 
class  AverageAnalyzer
 Analyze averages and block averages of several real variables. More...
 
class  AverageListAnalyzer
 Analyze averages and block averages of several real variables. More...
 
class  BasisFieldState
 FieldState for fields in symmetry-adapted basis format. More...
 
class  BdSimulator
 Brownian dynamics simulator. More...
 
class  BdStep
 BdStep is an abstract base class for Brownian dynamics steps. More...
 
class  BdStepFactory
 Factory for subclasses of BdStep. More...
 
class  BinaryStructureFactorGrid
 BinaryStructureFactorGrid evaluates AB diblock structure factors in Fourier space. More...
 
class  Block
 Block within a branched polymer. More...
 
class  CFieldContainer
 A list of c fields stored in both basis and r-grid format. More...
 
class  ChiDerivative
 Evaluate the derivative of H with respect to chi. More...
 
class  Compressor
 Base class for iterators that impose incompressibility. More...
 
class  CompressorFactory
 Factory for subclasses of Compressor. More...
 
class  ConcentrationDerivative
 Evaluate the derivative of H with respect to concentration. More...
 
class  ConcentrationWriter
 Periodically write snapshots to a trajectory file. More...
 
class  Domain
 Spatial domain and spatial discretization for a periodic structure. More...
 
class  EinsteinCrystalPerturbation
 Perturbation for Einstein crystal thermodynamic integration method. More...
 
class  ExplicitBdStep
 BdStep is an abstract base class for Brownian dynamics steps. More...
 
class  ExtGenFilm
 External field generator for a thin film geometry. More...
 
class  FieldIo
 File input/output operations and format conversions for fields. More...
 
class  FieldState
 Record of a state of a System (fields + unit cell). More...
 
class  ForceBiasMove
 ForceBiasMove attempts a Brownian dynamics move. More...
 
class  FourierMove
 FourierMove is a Monte Carlo move in fourier space. More...
 
class  FourthOrderParameter
 FourthOrderParameter is used to detect an order-disorder transition. More...
 
class  HamiltonianAnalyzer
 Compute averages and output block averages of Hamiltonian components. More...
 
class  HostDArrayComplex
 HostDArray containing cudaComplex elements. More...
 
class  ImposedFieldsGenerator
 Class defining mask & external fields to impose on the calculation. More...
 
class  IntraCorrelation
 Base class for iterators that impose incompressibility. More...
 
class  Iterator
 Base class for iterative solvers for SCF equations. More...
 
class  IteratorFactory
 Factory for subclasses of Iterator. More...
 
class  LinearRamp
 Linear ramp - parameters vary linearly with step index. More...
 
class  LinearSweep
 Base class for a sweep in parameter space where parameters change linearly with the sweep variable. More...
 
class  LMBdStep
 Leimkuhler-Matthews Brownian dynamics stepper. More...
 
class  LrAmCompressor
 Anderson Mixing compressor with linear-response mixing step. More...
 
class  LrAmPreCompressor
 Anderson Mixing compressor with linear-response preconditioning. More...
 
class  LrCompressor
 Linear response compressor. More...
 
class  Mask
 A field to which the total monomer concentration is constrained. More...
 
class  MaskGenFilm
 Mask generator for a thin film geometry. More...
 
class  MaxOrderParameter
 MaxOrderParameter is used to detect an order-disorder transition. More...
 
class  McMove
 McMove is an abstract base class for Monte Carlo moves. More...
 
class  McMoveFactory
 Factory for subclasses of McMove. More...
 
class  McMoveManager
 Manager for a set of McMove objects. More...
 
class  McSimulator
 Monte-Carlo simulation coordinator. More...
 
class  Mixture
 Solver for a mixture of polymers and solvents. More...
 
class  Perturbation
 Base class for additive perturbations of standard FTS Hamiltonian. More...
 
class  PerturbationDerivative
 Evaluate the derivative of H w/ respect to perturbation parameter lambda. More...
 
class  PerturbationFactory
 Factory for subclasses of Perturbation. More...
 
class  Polymer
 Descriptor and solver for a branched polymer species. More...
 
class  PredCorrBdStep
 Predictor-corrector Brownian dynamics stepper. More...
 
class  Propagator
 MDE solver for one-direction of one block. More...
 
class  Ramp
 Class that varies parameters during a simulation (abstract). More...
 
class  RampFactory
 Factory for subclasses of Ramp. More...
 
class  RampParameter
 Class for storing data about an individual ramp parameter. More...
 
class  RealMove
 RealMove is a Monte Carlo move in real space. More...
 
class  RGridTrajectoryReader
 Trajectory file reader. More...
 
struct  SimState
 SimState stores the state used by an fts simulation. More...
 
class  Simulator
 Field theoretic simulator (base class). More...
 
class  SimulatorFactory
 Factory for subclasses of Simulator. More...
 
class  Solvent
 Solver and descriptor for a solvent species. More...
 
class  StepLogger
 Periodically write snapshots to a trajectory file. More...
 
class  Sweep
 Solve a sequence of problems along a line in parameter space. More...
 
class  SweepFactory
 Default Factory for subclasses of Sweep. More...
 
class  SweepParameter
 Class for storing data about an individual sweep parameter. More...
 
class  System
 Main class for calculations that represent one system. More...
 
class  TrajectoryReader
 Trajectory file reader. More...
 
class  TrajectoryReaderFactory
 Factory for subclasses of TrajectoryReader. More...
 
class  TrajectoryWriter
 Periodically write snapshots to a trajectory file. More...
 
class  WaveList
 Class to calculate and store properties of wavevectors. More...
 
class  WFieldContainer
 A list of fields stored in both basis and r-grid format. More...
 

Functions

template<int D>
std::istream & operator>> (std::istream &in, RampParameter< D > &param)
 Inserter for reading a RampParameter from an istream.
 
template<int D>
std::ostream & operator<< (std::ostream &out, RampParameter< D > const &param)
 Extractor for writing a RampParameter to ostream.
 
template<int D>
void run (int argc, char **argv)
 Function template for main pscf_pg program.
 
template<int D>
std::istream & operator>> (std::istream &in, SweepParameter< D > &param)
 Inserter for reading a SweepParameter from an istream.
 
template<int D>
std::ostream & operator<< (std::ostream &out, SweepParameter< D > const &param)
 Extractor for writing a SweepParameter to ostream.
 
void realMulVConjVV (DeviceArray< cudaReal > &a, DeviceArray< cudaComplex > const &b, DeviceArray< cudaComplex > const &c, DeviceArray< cudaReal > const &d)
 Element-wise calculation of a = real(b * conj(c) * d), kernel wrapper.
 
void richardsonEx (DeviceArray< cudaReal > &qNew, DeviceArray< cudaReal > const &qr, DeviceArray< cudaReal > const &qr2, DeviceArray< cudaReal > const &expW2)
 Performs qNew = (4 * (qr2 * expW2) - qr) / 3 elementwise, kernel wrapper.
 
void addEqMulVVc (DeviceArray< cudaReal > &a, DeviceArray< cudaReal > const &b, DeviceArray< cudaReal > const &c, cudaReal const d)
 Performs a[i] += b[i] * c[i] * d, kernel wrapper.
 

Detailed Description

SCFT and PS-FTS with real periodic fields (GPU)

Function Documentation

◆ operator>>() [1/2]

template<int D>
std::istream & Pscf::Rpg::operator>> ( std::istream & in,
RampParameter< D > & param )

Inserter for reading a RampParameter from an istream.

Parameters
ininput stream
paramRampParameter<D> object to read

Definition at line 263 of file rpg/fts/ramp/RampParameter.tpp.

◆ operator<<() [1/2]

template<int D>
std::ostream & Pscf::Rpg::operator<< ( std::ostream & out,
RampParameter< D > const & param )

Extractor for writing a RampParameter to ostream.

Parameters
outoutput stream
paramRampParameter<D> object to write

Definition at line 286 of file rpg/fts/ramp/RampParameter.tpp.

References Pscf::Rpg::RampParameter< D >::id(), and Pscf::Rpg::RampParameter< D >::writeParamType().

◆ operator>>() [2/2]

template<int D>
std::istream & Pscf::Rpg::operator>> ( std::istream & in,
SweepParameter< D > & param )

Inserter for reading a SweepParameter from an istream.

Parameters
ininput stream
paramSweepParameter<D> object to read

Definition at line 277 of file rpg/scft/sweep/SweepParameter.tpp.

◆ operator<<() [2/2]

template<int D>
std::ostream & Pscf::Rpg::operator<< ( std::ostream & out,
SweepParameter< D > const & param )

Extractor for writing a SweepParameter to ostream.

Parameters
outoutput stream
paramSweepParameter<D> object to write

Definition at line 299 of file rpg/scft/sweep/SweepParameter.tpp.

References Pscf::Rpg::SweepParameter< D >::id(), and Pscf::Rpg::SweepParameter< D >::writeParamType().

◆ realMulVConjVV()

void Pscf::Rpg::realMulVConjVV ( DeviceArray< cudaReal > & a,
DeviceArray< cudaComplex > const & b,
DeviceArray< cudaComplex > const & c,
DeviceArray< cudaReal > const & d )

Element-wise calculation of a = real(b * conj(c) * d), kernel wrapper.

Parameters
aoutput array (real)
binput array 1 (complex)
cinput array 2 (complex)
dinput array 3 (real)

Definition at line 87 of file rpg/solvers/Block.tpp.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::Block< D >::computeStress().

◆ richardsonEx()

void Pscf::Rpg::richardsonEx ( DeviceArray< cudaReal > & qNew,
DeviceArray< cudaReal > const & qr,
DeviceArray< cudaReal > const & qr2,
DeviceArray< cudaReal > const & expW2 )

Performs qNew = (4 * (qr2 * expW2) - qr) / 3 elementwise, kernel wrapper.

Parameters
qNewoutput array (a propagator slice)
qrinput array 1 (a propagator slice)
qr2input array 2 (a propagator slice)
expW2input array 3 (exp(-W[i]*ds/4) array)

Definition at line 109 of file rpg/solvers/Block.tpp.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::Block< D >::step().

◆ addEqMulVVc()

void Pscf::Rpg::addEqMulVVc ( DeviceArray< cudaReal > & a,
DeviceArray< cudaReal > const & b,
DeviceArray< cudaReal > const & c,
cudaReal const d )

Performs a[i] += b[i] * c[i] * d, kernel wrapper.

Parameters
aoutput array
binput array 1
cinput array 2
dinput scalar

Definition at line 131 of file rpg/solvers/Block.tpp.

References Pscf::DeviceArray< Data >::capacity(), Pscf::DeviceArray< Data >::cArray(), Pscf::ThreadArray::setThreadsLogical(), and UTIL_CHECK.

Referenced by Pscf::Rpg::Block< D >::computeConcentration().