1#ifndef PRDC_EXT_GEN_FILM_BASE_H
2#define PRDC_EXT_GEN_FILM_BASE_H
11#include <pscf/sweep/ParameterType.h>
12#include <pscf/iterator/FieldGenerator.h>
13#include <pscf/math/RealVec.h>
14#include <util/containers/DArray.h>
154 double chiTop(
int s)
const;
266 double interfaceThickness_;
269 double excludedThickness_;
292 {
return chiBottom_; }
302 {
return chiBottom_[s]; }
307 {
return chiTop_[s]; }
312 {
return normalVecId_; }
317 {
return interfaceThickness_; }
322 {
return excludedThickness_; }
327#include "ExtGenFilmBase.tpp"
Abstract base class for objects that generate fields for ImposedFields.
bool isDependent_
Is this object dependent on the parameters of another FieldGenerator?
Type type_
Type of field (Mask, External, Both, or None)
virtual void setParameter(std::string name, DArray< int > ids, double value, bool &success)
Set the value of a specialized sweep parameter.
virtual double getParameter(std::string name, DArray< int > ids, bool &success) const
Get the value of a specialized sweep parameter.
Base class defining external fields for thin film systems.
double excludedThickness() const
Get value of excludedThickness.
~ExtGenFilmBase()
Destructor.
bool isAthermal() const
Are the walls athermal?
int normalVecId() const
Get value of normalVecId.
GArray< ParameterType > getParameterTypes()
Return specialized sweep parameter types to add to the Sweep object.
bool updateNeeded() const
Check whether system has changed such that the fields needs updating.
bool isGenerated() const =0
Check whether the fields have been generated.
virtual RealVec< D > systemLatticeVector(int id) const =0
Get one of the lattice vectors for this system.
virtual double stressTerm(int paramId) const =0
Get contribution to the stress from these external fields.
virtual void generate()=0
Generate the fields and store where the Iterator can access.
virtual int systemNMonomer() const =0
Get the number of monomer species for this system.
ExtGenFilmBase()
Constructor.
DArray< double > chiBottomCurrent_
The chiBottom array used to generate the current external fields.
void checkCompatibility()
Check that the system is compatible with these fields.
virtual void allocate()=0
Allocate container necessary to generate and store fields.
RealVec< D > normalVecCurrent_
The lattice vector normal to the film used to generate these fields.
DArray< double > const & chiTop() const
Get const chiTop array by reference.
bool hasSymmetricWalls() const
Are the walls chemically identical?
void setParameter(std::string name, DArray< int > ids, double value, bool &success)
Set the value of a specialized sweep parameter.
DArray< double > chiTopCurrent_
The chiTop array used to generate the current external fields.
virtual std::string systemSpaceGroup() const =0
Get the space group name for this system.
double interfaceThickness() const
Get value of interfaceThickness.
void readParameters(std::istream &in)
Read and initialize.
double getParameter(std::string name, DArray< int > ids, bool &success) const
Get the value of a specialized sweep parameter.
DArray< double > const & chiBottom() const
Get const chiBottom matrix by reference.
A RealVec<D, T> is D-component vector with elements of floating type T.
Dynamically allocatable contiguous array template.
An automatically growable array, analogous to a std::vector.
PSCF package top-level namespace.
Utility classes for scientific computation.