PSCF v1.3
Pscf::Rpc::CFieldContainer< D > Class Template Reference

A list of c fields stored in both basis and r-grid format. More...

#include <CFieldContainer.h>

Inheritance diagram for Pscf::Rpc::CFieldContainer< D >:
Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >

Public Types

typedef CFieldsReal< D, RField< D >, FieldIo< D > > Base
 Alias for base class.

Public Member Functions

void setFieldIo (FieldIo< D > const &fieldIo)
 Create association with FIT (store pointer).
void setNMonomer (int nMonomer)
 Set stored value of nMonomer.
void setWriteUnitCell (UnitCell< D > const &cell)
 Set unit cell used when writing field files.
void allocateRGrid (IntVec< D > const &dimensions)
 Allocate memory for fields in rgrid format.
void allocateBasis (int nBasis)
 Allocate or re-allocate memory for fields in basis format.
void allocate (int nMonomer, int nBasis, IntVec< D > const &dimensions)
 Allocate memory for both r-grid and basis field formats.
DArray< DArray< double > > & basis ()
 Get array of all fields in basis format (non-const).
DArray< DArray< double > > const & basis () const
 Get array of all fields in basis format (const)
DArray< double > & basis (int monomerId)
 Get the field for one monomer type in basis format (non-const).
DArray< double > const & basis (int monomerId) const
 Get the field for one monomer type in basis format (const)
DArray< RField< D > > & rgrid ()
 Get array of all fields in r-grid format (non-const).
DArray< RField< D > > const & rgrid () const
 Get array of all fields in r-grid format (const).
RField< D > & rgrid (int monomerId)
 Get field for one monomer type in r-grid format (non-const)
RField< D > const & rgrid (int monomerId) const
 Get field for one monomer type in r-grid format (const).
bool isAllocatedRGrid () const
 Has memory been allocated for fields in r-grid format?
bool isAllocatedBasis () const
 Has memory been allocated for fields in basis format?
bool hasData () const
 Does this container have up-to-date fields?
bool isSymmetric () const
 Are the fields invariant under elements of the space group?
void setHasData (bool hasData)
 Set the hasData flag.
void setIsSymmetric (bool isSymmetric)
 Set the isSymmetric flag.
Public Member Functions inherited from Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >
 CFieldsReal ()
 Constructor.
 ~CFieldsReal ()
 Destructor.
void setFieldIo (FieldIo< D > const &fieldIo)
 Create association with FIT (store pointer).
void setWriteUnitCell (UnitCell< D > const &cell)
 Set unit cell used when writing field files.
void setNMonomer (int nMonomer)
 Set stored value of nMonomer.
void allocateRGrid (IntVec< D > const &dimensions)
 Allocate memory for fields in rgrid format.
void allocateBasis (int nBasis)
 Allocate or re-allocate memory for fields in basis format.
void allocate (int nMonomer, int nBasis, IntVec< D > const &dimensions)
 Allocate memory for both r-grid and basis field formats.
DArray< DArray< double > > & basis ()
 Get array of all fields in basis format (non-const).
DArray< DArray< double > > const & basis () const
 Get array of all fields in basis format (const)
DArray< double > & basis (int monomerId)
 Get the field for one monomer type in basis format (non-const).
DArray< double > const & basis (int monomerId) const
 Get the field for one monomer type in basis format (const)
DArray< RField< D > > & rgrid ()
 Get array of all fields in r-grid format (non-const).
DArray< RField< D > > const & rgrid () const
 Get array of all fields in r-grid format (const).
RField< D > & rgrid (int monomerId)
 Get field for one monomer type in r-grid format (non-const)
RField< D > const & rgrid (int monomerId) const
 Get field for one monomer type in r-grid format (const).
void writeBasis (std::ostream &out) const
 Write fields to an input stream in symmetrized basis format.
void writeBasis (std::string filename) const
 Write fields to a named file, in symmetrized basis format.
void writeRGrid (std::ostream &out) const
 Writes fields to an input stream in real-space (r-grid) format.
void writeRGrid (std::string filename) const
 Writes fields to a named file in real-space (r-grid) format.
bool isAllocatedRGrid () const
 Has memory been allocated for fields in r-grid format?
bool isAllocatedBasis () const
 Has memory been allocated for fields in basis format?
bool hasData () const
 Does this container have up-to-date fields?
bool isSymmetric () const
 Are the fields invariant under elements of the space group?
void setHasData (bool hasData)
 Set the hasData flag.
void setIsSymmetric (bool isSymmetric)
 Set the isSymmetric flag.

Protected Member Functions

FieldIo< D > const & fieldIo () const
 Get associated FieldIo object (const reference).
Protected Member Functions inherited from Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >
FieldIo< D > const & fieldIo () const
 Get associated FieldIo object (const reference).

Detailed Description

template<int D>
class Pscf::Rpc::CFieldContainer< D >

A list of c fields stored in both basis and r-grid format.

This class is simply a named partial specialization of the base class template Pscf::Prdc::CFieldsReal, designed for use on CPU hardware. Please see documentation of the base class for API documentation.

Definition at line 33 of file rpc/field/CFieldContainer.h.

Member Typedef Documentation

◆ Base

template<int D>
typedef CFieldsReal<D, RField<D>, FieldIo<D> > Pscf::Rpc::CFieldContainer< D >::Base

Alias for base class.

Definition at line 39 of file rpc/field/CFieldContainer.h.

Member Function Documentation

◆ setFieldIo()

template<int D>
void Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::setFieldIo ( FieldIo< D > const & fieldIo)

Create association with FIT (store pointer).

Parameters
fieldIoassociated FIT (FieldIo) object

◆ setNMonomer()

template<int D>
void Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::setNMonomer ( int nMonomer)

Set stored value of nMonomer.

This function may only be called once. The value of nMonomer must be positive.

Parameters
nMonomernumber of monomer types.

◆ setWriteUnitCell()

template<int D>
void Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::setWriteUnitCell ( UnitCell< D > const & cell)

Set unit cell used when writing field files.

This function creates a stored pointer to a UnitCell<D> that is is used by the writeBasis and writeRGrid functions, which each write the unit cell parameters from in this object to a field file header. This function may only be called once.

Parameters
cellunit cell that is used by writeBasis and writeRGrid.

◆ allocateRGrid()

template<int D>
void Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::allocateRGrid ( IntVec< D > const & dimensions)

Allocate memory for fields in rgrid format.

This function may only be called once.

Parameters
dimensionsdimensions of spatial mesh

◆ allocateBasis()

template<int D>
void Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::allocateBasis ( int nBasis)

Allocate or re-allocate memory for fields in basis format.

This function may only be called once.

Parameters
nBasisnumber of basis functions

◆ allocate()

template<int D>
void Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::allocate ( int nMonomer,
int nBasis,
IntVec< D > const & dimensions )

Allocate memory for both r-grid and basis field formats.

This function may only be called once.

Parameters
nMonomernumber of monomer types
nBasisnumber of basis functions
dimensionsdimensions of spatial mesh

◆ basis() [1/4]

template<int D>
DArray< DArray< double > > & Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::basis ( )

Get array of all fields in basis format (non-const).

◆ basis() [2/4]

template<int D>
DArray< DArray< double > > const & Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::basis ( ) const

Get array of all fields in basis format (const)

The array capacity is equal to the number of monomer types.

◆ basis() [3/4]

template<int D>
DArray< double > & Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::basis ( int monomerId)

Get the field for one monomer type in basis format (non-const).

Parameters
monomerIdinteger monomer type index (0, ... ,nMonomer-1)

◆ basis() [4/4]

template<int D>
DArray< double > const & Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::basis ( int monomerId) const

Get the field for one monomer type in basis format (const)

Parameters
monomerIdinteger monomer type index (0, ... ,nMonomer-1)

◆ rgrid() [1/4]

template<int D>
DArray< RField< D > > & Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::rgrid ( )

Get array of all fields in r-grid format (non-const).

◆ rgrid() [2/4]

template<int D>
DArray< RField< D > > const & Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::rgrid ( ) const

Get array of all fields in r-grid format (const).

◆ rgrid() [3/4]

template<int D>
RField< D > & Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::rgrid ( int monomerId)

Get field for one monomer type in r-grid format (non-const)

Parameters
monomerIdinteger monomer type index (0,..,nMonomer-1)

◆ rgrid() [4/4]

template<int D>
RField< D > const & Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::rgrid ( int monomerId) const

Get field for one monomer type in r-grid format (const).

Parameters
monomerIdinteger monomer type index (0,..,nMonomer-1)

◆ isAllocatedRGrid()

template<int D>
bool Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::isAllocatedRGrid ( ) const

Has memory been allocated for fields in r-grid format?

◆ isAllocatedBasis()

template<int D>
bool Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::isAllocatedBasis ( ) const

Has memory been allocated for fields in basis format?

◆ hasData()

template<int D>
bool Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::hasData ( ) const

Does this container have up-to-date fields?

◆ isSymmetric()

template<int D>
bool Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::isSymmetric ( ) const

Are the fields invariant under elements of the space group?

◆ setHasData()

template<int D>
void Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::setHasData ( bool hasData)

Set the hasData flag.

This should be set true when fields are set to those computed from the current w fields, and false when any input to that calculation changes.

◆ setIsSymmetric()

template<int D>
void Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::setIsSymmetric ( bool isSymmetric)

Set the isSymmetric flag.

This should be set true if and only if the fields are known to have been computed from symmetric w fields, and the basis representation exists.

◆ fieldIo()

template<int D>
FieldIo< D > const & Pscf::Prdc::CFieldsReal< D, RField< D >, FieldIo< D > >::fieldIo ( ) const
protected

Get associated FieldIo object (const reference).


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