PSCF v1.4.0
Pscf::Rp::BinaryStructureFactor< D, T > Class Template Reference

Spherically averaged structure factor for a two-monomer system. More...

#include <BinaryStructureFactor.h>

Inheritance diagram for Pscf::Rp::BinaryStructureFactor< D, T >:

Public Member Functions

 BinaryStructureFactor (typename T::Simulator &simulator, typename T::System &system)
 Constructor.
void readParameters (std::istream &in) override
 Read parameters from file.
void output () override
 Output results to predefined output file.

Protected Member Functions

void allocate ()
 Allocate member arrays with dimensions that depend only on mesh.
void findWaveBunches (Array< double > const &kSq, Array< bool > const &implicit)
 Allocate and initialize data structures involving wave bunches.
void computeW ()
 Compute member variables wm_ and wk_.
void computeS (Array< typename T::Complex > const &wk)
 Complete calculation of current structure factors.

Protected Attributes

T::RFieldDft wk_
 Discrete Fourier transform (DFT) of wm_ .

Detailed Description

template<int D, class T>
class Pscf::Rp::BinaryStructureFactor< D, T >

Spherically averaged structure factor for a two-monomer system.

This class evaluates the structures factors for all wavevectors within the Fourier space grid, while grouping averages for wavevectors of equal norm. Sets of wavevectors of equal norm are referred to here as "bunches".

A structure factor for a wavevector k for a system with two types monomer is given by an expectation value

\[ S(k) = 1/(v \chi )^2 <W_(k)W_(-k)>/V - 1/(2 \chi v) \]

where, V is system volume, v is monomer volume, and \(W_(k)\) is a Fourier transform of the fluctuating exchange field \( W_{-} = (w_{A} - w_{B})/2 \). This analyzer outputs the average value of this quantity for each bunch (or wavenumber value), averaged over waves in a "bunch".

See also
Manual Page

Definition at line 50 of file fts/analyzer/BinaryStructureFactor.h.

Constructor & Destructor Documentation

◆ BinaryStructureFactor()

template<int D, class T>
Pscf::Rp::BinaryStructureFactor< D, T >::BinaryStructureFactor ( typename T::Simulator & simulator,
typename T::System & system )

Constructor.

Parameters
simulatorparent simulator object
systemparent system object

Definition at line 31 of file BinaryStructureFactor.tpp.

References Util::ParamComposite::setClassName().

Member Function Documentation

◆ readParameters()

template<int D, class T>
void Pscf::Rp::BinaryStructureFactor< D, T >::readParameters ( std::istream & in)
override

Read parameters from file.

For parameter file format see Manual Page

Parameters
ininput parameter stream

Definition at line 49 of file BinaryStructureFactor.tpp.

References Util::ParamComposite::readOptional(), and UTIL_CHECK.

◆ output()

template<int D, class T>
void Pscf::Rp::BinaryStructureFactor< D, T >::output ( )
override

Output results to predefined output file.

For output files and file format, see Manual Page

Definition at line 294 of file BinaryStructureFactor.tpp.

References Pscf::MeshIterator< D >::atEnd(), Pscf::MeshIterator< D >::begin(), Pscf::MeshIterator< D >::position(), and Pscf::MeshIterator< D >::rank().

◆ allocate()

template<int D, class T>
void Pscf::Rp::BinaryStructureFactor< D, T >::allocate ( )
protected

Allocate member arrays with dimensions that depend only on mesh.

Definition at line 65 of file BinaryStructureFactor.tpp.

References Pscf::Mesh< D >::dimensions(), and UTIL_CHECK.

◆ findWaveBunches()

template<int D, class T>
void Pscf::Rp::BinaryStructureFactor< D, T >::findWaveBunches ( Array< double > const & kSq,
Array< bool > const & implicit )
protected

Allocate and initialize data structures involving wave bunches.

Parameters
kSqvalues of square wavenumbers
implicitbools indicating existence of implicit inverse

Definition at line 101 of file BinaryStructureFactor.tpp.

◆ computeW()

template<int D, class T>
void Pscf::Rp::BinaryStructureFactor< D, T >::computeW ( )
protected

Compute member variables wm_ and wk_.

Definition at line 222 of file BinaryStructureFactor.tpp.

References Pscf::VecOp::mulEqS(), Pscf::VecOp::subVV(), UTIL_CHECK, and wk_.

◆ computeS()

template<int D, class T>
void Pscf::Rp::BinaryStructureFactor< D, T >::computeS ( Array< typename T::Complex > const & wk)
protected

Complete calculation of current structure factors.

Definition at line 243 of file BinaryStructureFactor.tpp.

References Pscf::absSq(), Util::Array< Data >::capacity(), and UTIL_CHECK.

Member Data Documentation

◆ wk_

template<int D, class T>
T::RFieldDft Pscf::Rp::BinaryStructureFactor< D, T >::wk_
protected

Discrete Fourier transform (DFT) of wm_ .

Definition at line 113 of file fts/analyzer/BinaryStructureFactor.h.

Referenced by computeW().


The documentation for this class was generated from the following files: