1#ifndef PRDC_SCFT_REAL_H
2#define PRDC_SCFT_REAL_H
11#include "SystemConstRefReal.h"
23 template <
int D,
class ST>
142 using MixtureT =
typename Base::MixtureT;
143 using InteractionT =
typename Base::InteractionT;
144 using DomainT =
typename Base::DomainT;
145 using WFieldContainerT =
typename Base::WFieldContainerT;
146 using CFieldContainerT =
typename Base::CFieldContainerT;
147 using MaskT =
typename Base::MaskT;
148 using FieldT =
typename Base::FieldT;
218 template <
int D,
class ST>
226 template <
int D,
class ST>
234 template <
int D,
class ST>
242 template <
int D,
class ST>
250 template <
int D,
class ST>
258 template <
int D,
class ST>
virtual ~ScftReal()
Destructor.
typename Base::SystemT SystemT
Parent System type name alias.
virtual double innerProduct(FieldT const &A, FieldT const &B) const
Inner product of two fields.
double fHelmholtz() const
Get total Helmholtz free energy per monomer / kT.
double fIdeal() const
Get the ideal gas contribution to fHelmholtz.
SystemT const & system() const
void clear()
Clear all thermodynamic data.
bool hasData() const
Have free energies and pressure been computed?
SystemConstRefReal< ST > Base
Base class type name alias.
ScftReal(SystemT const &system)
Constructor.
void write(std::ostream &out)
Write SCFT thermodynamic properties to a file.
double fInter() const
Get the interaction contribution to fHelmholtz.
double pressure() const
Get the precomputed pressure times monomer volume / kT.
double fExt() const
Get the external field contribution to fHelmholtz.
void compute()
Compute SCFT free energy density and pressure for current fields.
FileMaster const & fileMaster() const
DomainT const & domain() const
SystemT const & system() const
MaskT const & mask() const
WFieldContainerT const & w() const
MixtureT const & mixture() const
WFieldContainerT const & h() const
SystemConstRefReal()
Default constructor.
CFieldContainerT const & c() const
InteractionT const & interaction() const
File containing preprocessor macros for error handling.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
Periodic fields and crystallography.
PSCF package top-level namespace.