1#ifndef PSPC_C_FIELD_CONTAINER_TPP
2#define PSPC_C_FIELD_CONTAINER_TPP
11#include "CFieldContainer.h"
27 isAllocatedRGrid_(false),
28 isAllocatedBasis_(false)
59 if (isAllocatedRGrid_) {
64 rgrid_.allocate(nMonomer_);
65 for (
int i = 0; i < nMonomer_; ++i) {
66 rgrid_[i].allocate(meshDimensions);
68 isAllocatedRGrid_ =
true;
79 for (
int i = 0; i < nMonomer_ ; ++i) {
80 rgrid_[i].deallocate();
83 isAllocatedRGrid_ =
false;
95 if (isAllocatedBasis_) {
100 basis_.allocate(nMonomer_);
101 for (
int i = 0; i < nMonomer_; ++i) {
102 basis_[i].allocate(nBasis);
104 isAllocatedBasis_ =
true;
115 for (
int i = 0; i < nMonomer_; ++i) {
116 basis_[i].deallocate();
119 isAllocatedBasis_ =
false;
129 setNMonomer(nMonomer);
130 allocateRGrid(meshDimensions);
131 allocateBasis(nBasis);
An IntVec<D, T> is a D-component vector of elements of integer type T.
void deallocateBasis()
De-allocate fields in basis format.
void setNMonomer(int nMonomer)
Set stored value of nMonomer.
~CFieldContainer()
Destructor.
CFieldContainer()
Constructor.
void allocate(int nMonomer, int nBasis, IntVec< D > const &dimensions)
Allocate memory for both r-grid and basis field formats.
void allocateRGrid(IntVec< D > const &dimensions)
Allocate or re-allocate memory for fields in rgrid format.
void deallocateRGrid()
De-allocate fields in rgrid format.
void allocateBasis(int nBasis)
Allocate or re-allocate memory for fields in basis format.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
C++ namespace for polymer self-consistent field theory (PSCF).
Utility classes for scientific computation.