1#ifndef PRDC_FIELD_STATE_H
2#define PRDC_FIELD_STATE_H
11#include <prdc/crystal/UnitCell.h>
12#include <util/containers/DArray.h>
45 template <
int D,
class FT,
class ST>
103 const FT&
field(
int monomerId)
const;
158 template <
int D,
class FT,
class ST>
inline
163 template <
int D,
class FT,
class ST>
inline
168 template <
int D,
class FT,
class ST>
inline
170 {
return fields_[id]; }
173 template <
int D,
class FT,
class ST>
inline
175 {
return fields_[id]; }
178 template <
int D,
class FT,
class ST>
inline
180 {
return unitCell_; }
183 template <
int D,
class FT,
class ST>
inline
185 {
return unitCell_; }
190 template <
int D,
class FT,
class ST>
inline
192 {
return (systemPtr_ != 0); }
195 template <
int D,
class FT,
class ST>
inline
207 template <
int D,
class FT,
class ST>
217 template <
int D,
class FT,
class ST>
227 template <
int D,
class FT,
class ST>
234 template <
int D,
class FT,
class ST>
typename T::System & system()
FT & field(int monomerId)
Get field for a specific monomer type (non-const reference).
const UnitCell< D > & unitCell() const
Get UnitCell (i.e., lattice type and parameters) by const reference.
UnitCell< D > & unitCell()
Get the UnitCell by non-const reference.
const DArray< FT > & fields() const
Get array of all fields by const reference.
DArray< FT > & fields()
Get array of all chemical potential fields (non-const reference).
FieldState()
Default constructor.
void setSystem(ST &system)
Set association with System, after default construction.
bool hasSystem()
Has a system been set?
const FT & field(int monomerId) const
Get a field for a single monomer type by const reference.
FieldState(ST &system)
Constructor, creates association with a System.
Base template for UnitCell<D> classes, D=1, 2 or 3.
Dynamically allocatable contiguous array template.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
Periodic fields and crystallography.
PSCF package top-level namespace.