1#ifndef RPG_FIELD_STATE_H
2#define RPG_FIELD_STATE_H
11#include <prdc/crystal/UnitCell.h>
12#include <rpg/field/FieldIo.h>
13#include <util/containers/DArray.h>
23 template <
int D>
class System;
41 template <
int D,
class FT>
99 const FT&
field(
int monomerId)
const;
106 FT&
field(
int monomerId);
154 template <
int D,
class FT>
160 template <
int D,
class FT>
166 template <
int D,
class FT>
169 {
return fields_[id]; }
172 template <
int D,
class FT>
174 {
return fields_[id]; }
177 template <
int D,
class FT>
180 {
return unitCell_; }
183 template <
int D,
class FT>
186 {
return unitCell_; }
191 template <
int D,
class FT>
194 {
return (systemPtr_ != 0); }
197 template <
int D,
class FT>
201 assert(systemPtr_ != 0);
Base template for UnitCell<D> classes, D=1, 2 or 3.
Record of a state of a System (fields + unit cell).
bool hasSystem()
Has a system been set?
FieldState()
Default constructor.
const UnitCell< D > & unitCell() const
Get UnitCell (i.e., lattice type and parameters) by const reference.
System< D > & system()
Get associated System by reference.
const DArray< FT > & fields() const
Get array of all fields by const reference.
void setSystem(System< D > &system)
Set association with System, after default construction.
const FT & field(int monomerId) const
Get a field for a single monomer type by const reference.
Main class, representing a complete physical system.
Dynamically allocatable contiguous array template.
Fields, FFTs, and utilities for periodic boundary conditions (CUDA)
Periodic fields and crystallography.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.