1#ifndef PRDC_CPU_FIELD_BASIS_CONVERTER_H
2#define PRDC_CPU_FIELD_BASIS_CONVERTER_H
11#include <util/containers/DMatrix.h>
14 template <
typename T>
class DArray;
21 template <
int D>
class RField;
115 double prefactor = 1.0)
const;
132 double prefactor = 1.0)
const;
138 {
return nMonomer_; }
144 {
return (nMonomer_ > 0); }
165 #ifndef PRDC_CPU_FIELD_BASIS_CONVERTER_TPP
Tool for conversion of fields to a basis in composition space.
bool hasBasis() const
Has a basis been initialized?
FieldBasisConverter()
Default constructor.
void convertToBasis(DArray< RField< D > > const &in, DArray< RField< D > > &out, double prefactor=1.0) const
Convert a set of monomer fields to field basis components.
int nMonomer() const
Return the number of monomer types (dimension of basis).
void setBasis(DMatrix< double > basis)
Set or reset the basis after construction.
double maxBasisError(double normSq=1.0) const
Check validity (orthogonality and normalization) of the basis.
virtual ~FieldBasisConverter()
Destructor.
void convertFromBasis(DArray< RField< D > > const &in, DArray< RField< D > > &out, double prefactor=1.0) const
Convert a set of field basis components to monomer fields.
Fourier transform of a real field on an FFT mesh.
Field of real double precision values on an FFT mesh.
Dynamically allocatable contiguous array template.
Dynamically allocated Matrix.
Fields and FFTs for periodic boundary conditions (CPU)
Periodic fields and crystallography.
PSCF package top-level namespace.
Utility classes for scientific computation.