PSCF v1.4.0
Pscf Namespace Reference

PSCF package top-level namespace. More...

Namespaces

namespace  Correlation
 Intramolecular correlations in homogeneous systems.
namespace  Cp
 Complex-valued periodic fields (class templates).
namespace  Cpc
 Complex periodic fields, CL-FTS (CPU).
namespace  Cpg
 Complex periodic fields, CL-FTS (GPU).
namespace  PolymerModel
 Enumeration and functions to specify a model for polymer chains.
namespace  Prdc
 Periodic fields and crystallography.
namespace  R1d
 SCFT with real 1D fields.
namespace  Reduce
 Reduction operations performed on a CPU or GPU.
namespace  Rp
 Class templates for real-valued periodic fields.
namespace  Rpc
 Real periodic fields, SCFT and PS-FTS (CPU).
namespace  Rpg
 SCFT and PS-FTS with real periodic fields (GPU)
namespace  ThreadArray
 Global functions and variables to control GPU thread and block counts.
namespace  ThreadMesh
 Management of multidimensional GPU thread execution configurations.
namespace  VecOp
 Vector operations on GPU or CPU.

Classes

class  AmbdInteraction
 Modified interaction to compute residual defn. More...
class  AmIteratorTmpl
 Template for Anderson mixing iterator algorithm. More...
class  BlockTmpl
 Class template for a block solver in a block copolymer. More...
class  CpuVecRandom
 Random number generator for arrays of random numbers on CPU. More...
class  CudaVecRandom
 Random number generator on GPU. More...
class  DeviceArray
 Dynamic array on the GPU device with aligned data. More...
class  DeviceMemory
 Block of bare memory allocated on the GPU device. More...
class  Edge
 Descriptor for a block within a block polymer. More...
class  EdgeIterator
 Edge iterator for graph associated with a polymer. More...
class  EnvironmentBase
 Base class mask and external field generator. More...
class  FhClump
 Sub-unit of a molecule in Flory-Huggins theory. More...
class  FhInteraction
 Flory-Huggins interaction model. More...
class  FhMixture
 A spatially homogeneous mixture. More...
class  FhMolecule
 Molecular species in a homogeneous Flory-Huggins mixture. More...
class  FieldComparison
 Comparison of element-by-element differences between field arrays. More...
class  FieldGeneratorBase
 Base class for objects that generate fields for a MixAndMatchEnv. More...
class  HostDArray
 Template for dynamic array stored in host CPU memory. More...
class  Interaction
 Interaction model for complex Langevin FTS. More...
class  IntVec
 An IntVec<D, T> is a D-component vector of elements of integer type T. More...
class  LuSolver
 Solve Ax=b by LU decomposition of A. More...
class  Mesh
 Description of a regular grid of points in a periodic domain. More...
class  MeshIterator
 Iterator over points in a Mesh<D>. More...
class  MeshIteratorFortran
 Iterator over points in a mesh in "Fortran" order. More...
class  MixAndMatchEnvTmpl
 Template class for Environments that mix and match field generators. More...
class  MixtureBase
 Abstract descriptor for a mixture of polymer and solvent species. More...
class  MixtureTmpl
 Solvers for a mixture of polymer and solvent species. More...
class  Monomer
 Descriptor for a monomer type. More...
class  NanException
 Exception thrown when not-a-number (NaN) is encountered. More...
class  ParameterModifier
 Base class allowing subclasses to define sweepable parameters. More...
struct  ParameterType
 Declaration of a specialized sweep parameter type. More...
class  PolymerSpecies
 Descriptor for a linear or acyclic branched block polymer. More...
class  PolymerTmpl
 Descriptor and MDE solver for a block polymer. More...
struct  PolymerType
 Struct containing an enumeration of polymer structure types. More...
class  PropagatorTmpl
 Template for propagator classes. More...
class  RealVec
 A RealVec<D, T> is D-component vector with elements of floating type T. More...
class  SolventSpecies
 Descriptor for a solvent species. More...
class  Species
 Base class for a molecular species (polymer or solvent). More...
class  SweepTmpl
 Solve a sequence of problems along a path through parameter space. More...
class  TridiagonalSolver
 Solver for Ax=b with tridiagonal matrix A. More...
class  Vec
 A Vec<D, T><D,T> is a D-component vector with elements of type T. More...
class  Vertex
 A junction or chain end in a block polymer. More...
class  VertexIterator
 Vertex iterator for graph associated with a polymer. More...

Typedefs

using cudaComplex = cufftDoubleComplex
 Complex number type used in CPU code that uses FFTW.
using cudaReal = cufftDoubleReal
 Real number type used in CPU code that uses FFTW.

Enumerations

enum class  Ensemble
 Statistical ensemble type for the number of molecules of one species. More...

Functions

std::istream & operator>> (std::istream &in, Edge &block)
 Input stream extractor (>>) for a Edge.
std::ostream & operator<< (std::ostream &out, Edge const &block)
 Output stream inserter (<<) for a Edge.
std::istream & operator>> (std::istream &in, Ensemble &policy)
 istream extractor for an Ensemble enumeration.
std::ostream & operator<< (std::ostream &out, Ensemble policy)
 ostream inserter for an Ensemble enumeration.
template<class Archive>
void serialize (Archive &ar, Ensemble &policy, const unsigned int version)
 Serialize an Ensemble.
std::istream & operator>> (std::istream &in, Monomer &monomer)
 Stream extractor (>>) for a Monomer.
std::ostream & operator<< (std::ostream &out, const Monomer &monomer)
 Stream inserter (<<) for a Monomer.
std::istream & operator>> (std::istream &in, PolymerType::Enum &type)
 Input stream extractor for a PolymerType::Enum enumeration.
std::ostream & operator<< (std::ostream &out, PolymerType::Enum const &type)
 Output stream extractor for a PolymerType::Enum enumeration.
template<class Archive>
void serialize (Archive &ar, PolymerType::Enum &data, const unsigned int version)
 Serialize a PolymerType::Enum enumeration.
double real (fftw_complex const &a)
 Return the real part of an fftw_complex number.
double imag (fftw_complex const &a)
 Return the imaginary part of an fftw_complex number.
double abs (fftw_complex const &a)
 Return absolute magnitude of an fftw_complex number.
double absSq (fftw_complex const &a)
 Return square of absolute magnitude of an fftw_complex number.
void conj (fftw_complex &z, fftw_complex const &a)
 Complex conjugate of an fftw_complex, z = a^*.
void conj (fftw_complex &a)
 In-place complex conjugation of an fftw_complex number, a = a^* .
void assign (fftw_complex &z, double const &a, double const &b)
 Create an fftw_complex from real and imaginary parts, z = a + ib.
void assign (fftw_complex &z, double const &a)
 Assign a real input to an fftw_complex variable.
void assign (fftw_complex &z, fftw_complex const &a)
 Assign an fftw_complex input to an fftw_complex variable.
void assign (fftw_complex &z, std::complex< double > const &a)
 Assign a std::complex input to an fftw_complex variable.
void assign (std::complex< double > &z, fftw_complex const &a)
 Assign an fftw_complex input to a std::complex variable.
void add (fftw_complex &z, fftw_complex const &a, fftw_complex const &b)
 Addition of fftw_complex numbers, z = a + b.
void add (fftw_complex &z, fftw_complex const &a, double const &b)
 Addition of a complex and real number, z = a + b.
void addEq (fftw_complex &a, fftw_complex const &b)
 In-place addition of fftw_complex numbers, a += b.
void addEq (fftw_complex &a, double const &b)
 In-place addition of a complex and real number, a += b.
void sub (fftw_complex &z, fftw_complex const &a, fftw_complex const &b)
 Subtraction of fftw_complex numbers, z = a - b.
void sub (fftw_complex &z, fftw_complex const &a, double const &b)
 Subtraction of a real number from an fftw_complex number, z = a - b.
void subEq (fftw_complex &a, fftw_complex const &b)
 In-place subtraction of fftw_complex numbers, a -= b.
void subEq (fftw_complex &a, double const &b)
 In-place subtraction of real from an fftw_complex number, a -= b.
double absSqDiff (fftw_complex const &a, fftw_complex const &b)
 Return square of the absolute magnitude of a complex difference.
void mul (fftw_complex &z, fftw_complex const &a, fftw_complex const &b)
 Multiplication of fftw_complex numbers, z = a * b.
void mul (fftw_complex &z, fftw_complex const &a, double const &b)
 Multiplication of an fftw_complex and real number, z = a * b.
void mulEq (fftw_complex &a, fftw_complex const &b)
 In-place multiplication of two complex number, a *= b.
void mulEq (fftw_complex &a, double const &b)
 In-place multiplication of a complex and real number, a *= b.
void square (fftw_complex &z, fftw_complex const &a)
 Complex square of an fftw_complex number, z = a * a.
void div (fftw_complex &z, fftw_complex const &a, fftw_complex const &b)
 Division of fftw_complex numbers, z = a / b .
void div (fftw_complex &z, fftw_complex const &a, double const &b)
 Division of an fftw_complex number by a real number, z = a / b .
void divEq (fftw_complex &a, fftw_complex const &b)
 In-place division of fftw_complex numbers, a /= b.
void divEq (fftw_complex &a, double const &b)
 In-place division of an fftw_complex number by a real number, a /= b.
void inverse (fftw_complex &z, fftw_complex const &a)
 Inversion of an fftw_complex number, z = 1 / a .
void assignExp (fftw_complex &z, fftw_complex const &a)
 Exponentation of a ffts_complex variable, z = exp(a).
void assignLog (fftw_complex &z, fftw_complex const &a)
 Logarithm of an fftw_complex variable, z = log(a).
std::istream & operator>> (std::istream &is, fftw_complex &z)
 Stream extraction operator for fftw_complex.
std::ostream & operator<< (std::ostream &os, fftw_complex const &z)
 Stream insertion operator for fftw_complex.
cudaReal real (cudaComplex const &a)
 Return the real part of a complex number.
cudaReal imag (cudaComplex const &a)
 Return the imaginary part of a complex number.
cudaReal abs (cudaComplex const &a)
 Return absolute magnitude of a complex number.
cudaReal absSq (cudaComplex const &a)
 Return square of absolute magnitude of a complex number.
void conj (cudaComplex &z, cudaComplex const &a)
 Compute complex conjugate, z = a^*.
void conj (cudaComplex &a)
 In-place complex conjugation of a complex number, a = a^* .
void assign (cudaComplex &z, cudaReal const &a, cudaReal const &b)
 Create a complex number from real and imaginary parts, z = a + ib.
void assign (cudaComplex &z, cudaReal const &a)
 Assign a real input to a complex variable.
void assign (cudaComplex &z, cudaComplex const &a)
 Assign a complex input to a complex variable.
void assign (cudaComplex &z, std::complex< cudaReal > const &a)
 Assign a std::complex input to a complex variable.
void assign (std::complex< cudaReal > &z, cudaComplex const &a)
 Assign a complex input to a std::complex variable.
void add (cudaComplex &z, cudaComplex const &a, cudaComplex const &b)
 Addition of two complex numbers, z = a + b.
void add (cudaComplex &z, cudaComplex const &a, cudaReal const &b)
 Addition of a complex and real number, z = a + b.
void addEq (cudaComplex &a, cudaComplex const &b)
 In place addition of complex numbers, a += b.
void addEq (cudaComplex &a, cudaReal const &b)
 In place addition of a complex and real number, a += b.
void sub (cudaComplex &z, cudaComplex const &a, cudaComplex const &b)
 Subtraction of two complex numbers, z = a - b.
void sub (cudaComplex &z, cudaComplex const &a, cudaReal const &b)
 Subtraction of a real number from a complex number, z = a - b.
void subEq (cudaComplex &a, cudaComplex const &b)
 In place subtraction of two complex numbers, a -= b.
void subEq (cudaComplex &a, cudaReal const &b)
 In place subtraction of real number from a complex number, a -= b.
cudaReal absSqDiff (cudaComplex const &a, cudaComplex const &b)
 Return square of the absolute magnitude of a complex difference.
void mul (cudaComplex &z, cudaComplex const &a, cudaComplex const &b)
 Multiplication of two complex numbers, z = a * b.
void mul (cudaComplex &z, cudaComplex const &a, cudaReal const &b)
 Multiplication of complex and real numbers, z = a * b.
void mulEq (cudaComplex &a, cudaComplex const &b)
 In place multiplication of two complex number, a *= b.
void mulEq (cudaComplex &a, cudaReal const &b)
 In place multiplication of a complex and real number, a *= b.
void square (cudaComplex &z, cudaComplex const &a)
 Compute complex square of a complex number, z = a * a.
void div (cudaComplex &z, cudaComplex const &a, cudaComplex const &b)
 Division of two complex numbers, z = a / b .
void div (cudaComplex &z, cudaComplex const &a, cudaReal const &b)
 Division of a complex number by a real number, z = a / b .
void divEq (cudaComplex &a, cudaComplex const &b)
 In place division of two complex number, a /= b.
void divEq (cudaComplex &a, cudaReal const &b)
 In place division of a complex number by a real number, a /= b.
void inverse (cudaComplex &z, cudaComplex const &a)
 Inversion of a complex number, z = 1 / a .
void assignExp (cudaComplex &z, cudaComplex const &a)
 Exponentation of a ffts_complex variable, z = exp(a).
void assignLog (cudaComplex &z, cudaComplex const &a)
 Logarithm of a cudaComplex variable, z = log(a).
void gpuAssert (cudaError_t err, const char *file, int line)
 Check if CUDA API function returns cudaSuccess (used by cudaErrorCheck macro).
std::istream & operator>> (std::istream &in, FhClump &block)
 istream extractor for a FhClump.
std::ostream & operator<< (std::ostream &out, const FhClump &block)
 ostream inserter for a FhClump.
void assign (double &z, double const &a)
 Assign a double value.
void assign (float &z, float const &a)
 Assign a real float value.
template<typename RT>
void assign (std::complex< RT > &z, std::complex< RT > const &a)
 Assign one std::complex<RT> variable to another.
template<typename RT>
void assign (std::complex< RT > &z, RT const &a, RT const &b)
 Create std::complex<RT> from real and imaginary parts, z = a + ib.
template<typename RT>
void assign (std::complex< RT > &z, RT const &a)
 Assign a real input to a std::complex variable.
void add (double &z, double const &a, double const &b)
 Addition of two double precision numbers, z = a + b.
void add (float &z, float const &a, float const &b)
 Addition of two real float numbers, z = a + b.
template<typename RT>
void add (std::complex< RT > &z, std::complex< RT > const &a, std::complex< RT > const &b)
 Addition of two std::complex variables, z = a + b.
template<typename RT>
void add (std::complex< RT > &z, std::complex< RT > const &a, RT const &b)
 Addition of a std::complex and real number, z = a + b.
void addEq (double &a, double const &b)
 In place addition a += b (double).
void addEq (float &a, float const &b)
 In place addition a += b (double).
template<typename RT>
void addEq (std::complex< RT > &a, std::complex< RT > const &b)
 In place addition a += b (std::complex<RT>)
template<typename RT>
void addEq (std::complex< RT > &a, RT const &b)
 In place addition of std::complex and real numbers, a += b.
void sub (double &z, double const &a, double const &b)
 Subtraction of double precision numbers, z = a - b.
void sub (float &z, float const &a, float const &b)
 Subtraction z = a - b (real float).
template<typename RT>
void sub (std::complex< RT > &z, std::complex< RT > const &a, std::complex< RT > const &b)
 Subtraction z = a - b (std::complex<RT>)
template<typename RT>
void sub (std::complex< RT > &z, std::complex< RT > const &a, RT const &b)
 Subtraction of real from complex, z = a - b.
void subEq (double &a, double const &b)
 In place subtraction a -= b (double).
void subEq (float &a, float const &b)
 In place subtraction, a -= b (float).
template<typename RT>
void subEq (std::complex< RT > &a, std::complex< RT > const &b)
 In place subtraction a -= b (std::complex<RT>).
template<typename RT>
void subEq (std::complex< RT > &a, RT const &b)
 In place subtraction of real from std::complex, a -= b.
void mul (double &z, double const &a, double const &b)
 Multiplication of double real numbers, z = a * b.
void mul (float &z, float const &a, float const &b)
 Multiplication z = a * b (float).
template<typename RT>
void mul (std::complex< RT > &z, std::complex< RT > const &a, std::complex< RT > const &b)
 Multiplication z = a * b (std::complex).
template<typename RT>
void mul (std::complex< RT > &z, std::complex< RT > const &a, RT const &b)
 Multiplication of std::complex and real, z = a * b.
void mulEq (double &a, double const &b)
 In place multiplication a *= b (double).
void mulEq (float &a, float const &b)
 In place multiplication a *= b (float).
template<typename RT>
void square (std::complex< RT > &z, std::complex< RT > const &a)
 Compute complex square of a std::complex, z = a * a.
void div (double &z, double const &a, double const &b)
 Division z = a / b (double).
void div (float &z, float const &a, float const &b)
 Division z = a / b (float).
template<typename RT>
void div (std::complex< RT > &z, std::complex< RT > const &a, std::complex< RT > const &b)
 Division z = a / b (std::complex)
template<typename RT>
void div (std::complex< RT > &z, std::complex< RT > const &a, RT const &b)
 Division of a std::complex number by real, z = a / b .
void divEq (double &a, double const &b)
 In place division a /= b (double).
void divEq (float &a, float const &b)
 In place division a /= b (float).
template<typename RT>
void divEq (std::complex< RT > &a, std::complex< RT > const &b)
 In place division a /= b (std::complex).
template<typename RT>
void divEq (std::complex< RT > &a, RT const &b)
 In place division of std::complex number by real, a /= b.
void inverse (double &z, double const &a)
 Inverse, z = 1/a (double).
void inverse (float &z, float const &a)
 Inverse, z = 1 / a (float).
void assignExp (double &z, double const &a)
 Exponentiation, z = exp(a) (double).
void assignExp (float &z, float const &a)
 Exponent, z = exp(a) (float).
void assignLog (double &z, double const &a)
 Logarithm, z = exp(a) (double).
void assignLog (float &z, float const &a)
 Logarithm, z = exp(a) (float).
template<int D, typename T>
std::istream & operator>> (std::istream &in, IntVec< D, T > &vector)
 istream extractor for a IntVec<D, T>.
template<int D, typename T>
std::ostream & operator<< (std::ostream &out, const IntVec< D, T > &vector)
 ostream inserter for a IntVec<D, T>.
template<int D, typename T>
bool operator== (const IntVec< D, T > &v1, const IntVec< D, T > &v2)
 Equality of two IntVec<D> objects.
template<int D, typename T>
bool operator== (const IntVec< D, T > &v1, const Vec< D, T > &v2)
 Equality of an IntVec<D> and a Vec<D, T>
template<int D, typename T>
bool operator== (const Vec< D, T > &v1, const IntVec< D, T > &v2)
 Equality of an Vec<D, T> and an IntVec<D, T>
template<int D, typename T>
bool operator!= (const IntVec< D, T > &v1, const IntVec< D, T > &v2)
 Inequality of two IntVec<D, T> objects.
template<int D, typename T>
bool operator!= (const IntVec< D, T > &v1, const Vec< D, T > &v2)
 Inequality of an IntVec<D> and a Vec<D, T>
template<int D, typename T>
bool operator!= (const Vec< D, T > &v1, const IntVec< D, T > &v2)
 Inequality of a Vec<D, T> and an IntVec<D, T>
template<int D, typename T>
bool operator< (const IntVec< D, T > &v1, const IntVec< D, T > &v2)
 Less than comparison for two IntVec<D, T>s.
template<int D, typename T>
bool operator<= (const IntVec< D, T > &v1, const IntVec< D, T > &v2)
 Less than or equal to comparison for two IntVec<D, T>s.
template<int D, typename T>
bool operator> (const IntVec< D, T > &v1, const IntVec< D, T > &v2)
 Greater than comparison for two IntVec<D, T>s.
template<int D, typename T>
bool operator>= (const IntVec< D, T > &v1, const IntVec< D, T > &v2)
 Greater than or equal to comparison for two IntVec<D, T>s.
template<int D, typename T>
std::istream & operator>> (std::istream &in, RealVec< D, T > &vector)
 istream extractor for a RealVec<D, T>.
template<int D, typename T>
std::ostream & operator<< (std::ostream &out, const RealVec< D, T > &vector)
 ostream inserter for a RealVec<D, T>.
template<int D, typename T>
dot (Vec< D, T > const &v1, Vec< D, T > const &v2)
 Return dot product of two vectors.
template<int D, typename T>
Vec< D, T > operator+ (Vec< D, T > const &v1, Vec< D, T > const &v2)
 Return the sum of two vectors.
template<int D>
std::istream & operator>> (std::istream &in, Mesh< D > &mesh)
 Input stream extractor for reading a Mesh<D> object.
template<int D>
std::ostream & operator<< (std::ostream &out, Mesh< D > const &mesh)
 Output stream inserter for writing a Mesh<D> object.

Detailed Description

PSCF package top-level namespace.

Typedef Documentation

◆ cudaComplex

using Pscf::cudaComplex = cufftDoubleComplex

Complex number type used in CPU code that uses FFTW.

Definition at line 22 of file cudaTypes.h.

◆ cudaReal

using Pscf::cudaReal = cufftDoubleReal

Real number type used in CPU code that uses FFTW.

Definition at line 35 of file cudaTypes.h.

Function Documentation

◆ operator>>() [1/7]

std::istream & Pscf::operator>> ( std::istream & in,
Edge & block )

Input stream extractor (>>) for a Edge.

The polymerType must be set before an Edge can be read from a stream. The block id must be set explicitly by calling setId, and are not read from an istream. Vertex id values for blocks in a linear polymer must be set explicitly by calling setVertexIds with consecutive values, as done in the function Pscf::PolymerTmpl::readParameters.

Different text representations are used for bead and thread models, and for linear and branched polymers:

Thread model:

In the thread model, if PolymerModel::isThread(), the text representation of an Edge for a branched polymer is:

monomerId length vertexId(0) vertexid(1)

Here, length is a floating point number. For a linear polymer in the thread model, the vertex ids are omitted, because the vertex ids for block id of linear polymer must be equal to id and id + 1.

Bead model:

In the bead model, if PolymerModel::isBead(), the text representation for a branched polymer is:

monomerId nBead vertexId(0) vertexid(1)

where nBead is the integer number of beads in the chain. The corresponding text representation for a bead-spring linear chain omits the vertex ids, as for the thread model.

Parameters
ininput stream
blockEdge to be read from stream
Returns
modified input stream

Definition at line 77 of file Edge.cpp.

◆ operator<<() [1/7]

std::ostream & Pscf::operator<< ( std::ostream & out,
Edge const & block )

Output stream inserter (<<) for a Edge.

Different text representations are used for linear and branched polymers, as discussed in documentation for the stream extractor (>>) operator. Vertex ids are output only for blocks of branched polymers.

Parameters
outoutput stream
blockEdge to be written to stream
Returns
modified output stream

Definition at line 102 of file Edge.cpp.

◆ operator>>() [2/7]

std::istream & Pscf::operator>> ( std::istream & in,
Ensemble & policy )

istream extractor for an Ensemble enumeration.

Parameters
ininput stream
policyEnsemble to be read
Returns
modified input stream

Definition at line 17 of file Ensemble.cpp.

References UTIL_THROW.

◆ operator<<() [2/7]

std::ostream & Pscf::operator<< ( std::ostream & out,
Ensemble policy )

ostream inserter for an Ensemble enumeration.

Text representations of allowed values are "Open" and "Closed".

Parameters
outoutput stream
policyEnsemble to be written
Returns
modified output stream

Definition at line 35 of file Ensemble.cpp.

References UTIL_THROW.

◆ serialize()

template<class Archive>
void Pscf::serialize ( Archive & ar,
Ensemble & policy,
const unsigned int version )

Serialize an Ensemble.

Parameters
ararchive object
policyobject to be serialized
versionarchive version id

Definition at line 53 of file Ensemble.h.

References Util::serializeEnum().

◆ operator>>() [3/7]

std::istream & Pscf::operator>> ( std::istream & in,
Monomer & monomer )

Stream extractor (>>) for a Monomer.

The text representation is given by the value of the kuhn data member (i.e., the monomer statistical segment length). The type id is thus not read from a stream, and so must be set explicitly with setId.

Parameters
ininput stream
monomerMonomer to be read from stream
Returns
modified input stream

Definition at line 24 of file Monomer.cpp.

◆ operator<<() [3/7]

std::ostream & Pscf::operator<< ( std::ostream & out,
const Monomer & monomer )

Stream inserter (<<) for a Monomer.

Parameters
outoutput stream
monomerMonomer to be written to stream
Returns
modified output stream

Definition at line 34 of file Monomer.cpp.

◆ gpuAssert()

void Pscf::gpuAssert ( cudaError_t err,
const char * file,
int line )
inline

Check if CUDA API function returns cudaSuccess (used by cudaErrorCheck macro).

Parameters
errcudaError_t object returned from CUDA API function
filefilename where cudaErrorCheck was called
lineline number where cudaErrorCheck was called

Definition at line 54 of file cudaErrorCheck.h.

◆ operator>>() [4/7]

std::istream & Pscf::operator>> ( std::istream & in,
FhClump & block )

istream extractor for a FhClump.

Parameters
ininput stream
blockFhClump to be read from stream
Returns
modified input stream

Definition at line 35 of file FhClump.cpp.

◆ operator<<() [4/7]

std::ostream & Pscf::operator<< ( std::ostream & out,
const FhClump & block )

ostream inserter for a FhClump.

Parameters
outoutput stream
blockFhClump to be written to stream
Returns
modified output stream

Definition at line 45 of file FhClump.cpp.

◆ operator>>() [5/7]

template<int D, typename T>
std::istream & Pscf::operator>> ( std::istream & in,
IntVec< D, T > & vector )

istream extractor for a IntVec<D, T>.

Input elements of a vector from stream, without line breaks.

Parameters
ininput stream
vectorIntVec<D, T> to be read from stream
Returns
modified input stream

Definition at line 85 of file IntVec.h.

◆ operator<<() [5/7]

template<int D, typename T>
std::ostream & Pscf::operator<< ( std::ostream & out,
const IntVec< D, T > & vector )

ostream inserter for a IntVec<D, T>.

Output a IntVec<D, T> to an ostream, without line breaks.

Output elements of a vector to stream, without line breaks.

Parameters
outoutput stream
vectorIntVec<D, T> to be written to stream
Returns
modified output stream

Definition at line 104 of file IntVec.h.

References Pscf::IntVec< D, T >::Width.

◆ operator==() [1/3]

template<int D, typename T>
bool Pscf::operator== ( const IntVec< D, T > & v1,
const IntVec< D, T > & v2 )
inline

Equality of two IntVec<D> objects.

Returns
true if v1 == v2, false otherwise.

Definition at line 120 of file IntVec.h.

◆ operator==() [2/3]

template<int D, typename T>
bool Pscf::operator== ( const IntVec< D, T > & v1,
const Vec< D, T > & v2 )
inline

Equality of an IntVec<D> and a Vec<D, T>

Returns
true if v1 == v2, false otherwise.

Definition at line 137 of file IntVec.h.

◆ operator==() [3/3]

template<int D, typename T>
bool Pscf::operator== ( const Vec< D, T > & v1,
const IntVec< D, T > & v2 )
inline

Equality of an Vec<D, T> and an IntVec<D, T>

Returns
true if v1 == v2, false otherwise.

Definition at line 154 of file IntVec.h.

◆ operator!=() [1/3]

template<int D, typename T>
bool Pscf::operator!= ( const IntVec< D, T > & v1,
const IntVec< D, T > & v2 )
inline

Inequality of two IntVec<D, T> objects.

Returns
true if v1 != v2, false if v1 == v2.

Definition at line 164 of file IntVec.h.

◆ operator!=() [2/3]

template<int D, typename T>
bool Pscf::operator!= ( const IntVec< D, T > & v1,
const Vec< D, T > & v2 )
inline

Inequality of an IntVec<D> and a Vec<D, T>

Returns
true if v1 == v2, false otherwise.

Definition at line 174 of file IntVec.h.

◆ operator!=() [3/3]

template<int D, typename T>
bool Pscf::operator!= ( const Vec< D, T > & v1,
const IntVec< D, T > & v2 )
inline

Inequality of a Vec<D, T> and an IntVec<D, T>

Returns
true if v1 == v2, false otherwise.

Definition at line 184 of file IntVec.h.

◆ operator<()

template<int D, typename T>
bool Pscf::operator< ( const IntVec< D, T > & v1,
const IntVec< D, T > & v2 )
inline

Less than comparison for two IntVec<D, T>s.

Elements with lower array indices are treated as more signficant.

Returns
true if v1 < v2, false otherwise.

Definition at line 196 of file IntVec.h.

◆ operator<=()

template<int D, typename T>
bool Pscf::operator<= ( const IntVec< D, T > & v1,
const IntVec< D, T > & v2 )
inline

Less than or equal to comparison for two IntVec<D, T>s.

Elements with lower array indices are more signficant digits.

Returns
true if v1 < v2, false otherwise.

Definition at line 220 of file IntVec.h.

◆ operator>()

template<int D, typename T>
bool Pscf::operator> ( const IntVec< D, T > & v1,
const IntVec< D, T > & v2 )
inline

Greater than comparison for two IntVec<D, T>s.

Returns
true if v1 > v2, false otherwise.

Definition at line 242 of file IntVec.h.

◆ operator>=()

template<int D, typename T>
bool Pscf::operator>= ( const IntVec< D, T > & v1,
const IntVec< D, T > & v2 )
inline

Greater than or equal to comparison for two IntVec<D, T>s.

Returns
true if v1 >= v2, false otherwise.

Definition at line 252 of file IntVec.h.

◆ operator>>() [6/7]

template<int D, typename T>
std::istream & Pscf::operator>> ( std::istream & in,
RealVec< D, T > & vector )

istream extractor for a RealVec<D, T>.

Input elements of a vector from stream, without line breaks.

Parameters
ininput stream
vectorRealVec<D, T> to be read from stream
Returns
modified input stream

Definition at line 89 of file RealVec.h.

◆ operator<<() [6/7]

template<int D, typename T>
std::ostream & Pscf::operator<< ( std::ostream & out,
const RealVec< D, T > & vector )

ostream inserter for a RealVec<D, T>.

Output a RealVec<D, T> to an ostream, without line breaks.

Output elements of a vector to stream, without line breaks.

Parameters
outoutput stream
vectorRealVec<D, T> to be written to stream
Returns
modified output stream

Definition at line 108 of file RealVec.h.

References Pscf::RealVec< D, T >::Precision, and Pscf::RealVec< D, T >::Width.

◆ dot()

template<int D, typename T>
T Pscf::dot ( Vec< D, T > const & v1,
Vec< D, T > const & v2 )
inline

Return dot product of two vectors.

Parameters
v1first input vector
v2second input vector
Returns
dot product v1.v2

Definition at line 285 of file Vec.h.

References Util::setToZero().

◆ operator+()

template<int D, typename T>
Vec< D, T > Pscf::operator+ ( Vec< D, T > const & v1,
Vec< D, T > const & v2 )
inline

Return the sum of two vectors.

Parameters
v1first input vector
v2second input vector
Returns
sum v1 + v2

Definition at line 304 of file Vec.h.

References Pscf::Vec< D, T >::add().

◆ operator>>() [7/7]

template<int D>
std::istream & Pscf::operator>> ( std::istream & in,
Mesh< D > & mesh )

Input stream extractor for reading a Mesh<D> object.

Parameters
ininput stream
meshMesh<D> object to be read
Returns
modified input stream

Definition at line 245 of file Mesh.h.

◆ operator<<() [7/7]

template<int D>
std::ostream & Pscf::operator<< ( std::ostream & out,
Mesh< D > const & mesh )

Output stream inserter for writing a Mesh<D> object.

Parameters
outoutput stream
meshMesh<D> to be written
Returns
modified output stream

Definition at line 257 of file Mesh.h.