1#ifndef RP_SCFT_THERMO_H
2#define RP_SCFT_THERMO_H
11#include <rp/system/SystemConstRef.h>
36 template <
int D,
class T>
128 void write(std::ostream& out);
141 using MixtureT =
typename T::Mixture;
142 using InteractionT =
typename T::Interaction;
143 using DomainT =
typename T::Domain;
144 using WFieldsT =
typename T::WFields;
145 using CFieldsT =
typename T::CFields;
146 using MaskT =
typename T::Mask;
147 using RFieldT =
typename T::RField;
162 using SystemConstRefT::system;
163 using SystemConstRefT::mixture;
164 using SystemConstRefT::interaction;
165 using SystemConstRefT::domain;
166 using SystemConstRefT::c;
167 using SystemConstRefT::w;
168 using SystemConstRefT::h;
169 using SystemConstRefT::mask;
170 using SystemConstRefT::fileMaster;
218 template <
int D,
class T>
226 template <
int D,
class T>
234 template <
int D,
class T>
242 template <
int D,
class T>
250 template <
int D,
class T>
258 template <
int D,
class T>
double fInter() const
Get the interaction contribution to fHelmholtz.
bool hasData() const
Have free energies and pressure been computed?
void clear()
Clear all thermodynamic data.
void write(std::ostream &out)
Write SCFT thermodynamic properties to a file.
void compute()
Compute SCFT free energy density and pressure for current fields.
typename T::System SystemT
Parent System type name alias.
double fIdeal() const
Get the ideal gas contribution to fHelmholtz.
double fHelmholtz() const
Get total Helmholtz free energy per monomer / kT.
double fExt() const
Get the external field contribution to fHelmholtz.
typename T::SystemConstRef SystemConstRefT
Base class type name alias.
double pressure() const
Get the precomputed pressure times monomer volume / kT.
ScftThermo(SystemT const &system)
Constructor.
File containing preprocessor macros for error handling.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
Class templates for real-valued periodic fields.
PSCF package top-level namespace.