Internals
Minimization
ClassicalDFT.update!
— Methodupdate!(ρ::Array, solver::AbstractSolver, ρEL::Array)
Update the density profile ρ
according to the solve method solver
with given difference Δρ
of right and left hand side of the DFT Euler-Lagrange equation.
See also solve
.
Geometries
ClassicalDFT.applyboundary!
— Functionapplyboundary!(a::Array, geom::AbstractGeometry, mask=boundarymask(geom))
Apply boundary conditions of geometry geom
to a
.
ClassicalDFT.boundarymask
— Methodboundarymask(geom::AbstractGeometry)
Return bool array which is true
in regions that are controlled by the boundary conditions.
ClassicalDFT.conv_func
— Methodintegrate_func(geom::AbstractGeometry)
Return the convolution function of the geometry geom
.
ClassicalDFT.ensurepadding!
— Methodensurepadding!(geom::AbstractGeometry, pad::Number)
Ensure that the geometry geom
has at least a padding pad
at the boundaries.
ClassicalDFT.integrate_func
— Methodintegrate_func(geom::AbstractGeometry)
Return the integration function of the geometry geom
.
ClassicalDFT.plot_profile
— Methodplot_profile(geom::AbstractGeometry, a::Array)
Plot the one-body quantity a
in the given geometry geom
.
Functionals
ClassicalDFT.Fexc_func
— MethodFexc_func(functional::AbstractFunctional)
Return the excess free energy $F_\mathrm{exc}[\rho]$ for a given functional
.
ClassicalDFT.c₁_func
— Methodc₁_func(functional::AbstractFunctional)
Return the direct correlation function $c_1(\vec{r}; [\rho])$ for a given functional
.
ClassicalDFT.Ω_func
— MethodΩ_func(functional::AbstractFunctional)
Return the grand potential $\Omega[\rho]$ for a given functional
.
ClassicalDFT.AbstractFMTFunctional
— TypeAbstract base class for functionals that describe hard core systems with fundamental measure theory (FMT).
The excess free energy possesses the general form
$\beta F_\mathrm{exc}[\rho] = \int \mathrm{d}\vec{r} \Phi(\{n_\alpha(\vec{r})\})$
with (scalar and vectorial) weighted densities $n_\alpha(\vec{r}) = (\omega_\alpha * \rho)(\vec{r})$ that are obtained from convolutions of the density profile $\rho(\vec{r})$ with appropriate weight functions $\{\omega_\alpha(\vec{r})\}$.
Subclasses can differ in the form of $\Phi(\{n_\alpha(\vec{r})\})$ and in the choice of $\{\omega_\alpha\}$.
ClassicalDFT.AbstractMeanFieldFunctional
— TypeAbstract base class for mean-field functionals.
The excess free energy is given by
$F_\mathrm{exc}[\rho] = \frac{1}{2} \int \mathrm{d}\vec{r} \int \mathrm{d}\vec{r}' \rho(\vec{r}) \rho(\vec{r}') \phi(\vert\vec{r} - \vec{r}'\vert)$
where $\phi(\vert\vec{r} - \vec{r}'\vert)$ is the contribution of the pair potential that is treated via the mean-field approximation.
Subclasses can differ in the form of $\phi(\vert\vec{r} - \vec{r}'\vert)$.
Callbacks
Types
ClassicalDFT.AbstractCallback
— TypeAbstract base class of callbacks
ClassicalDFT.AbstractFunctional
— TypeAbstract base class of functionals
ClassicalDFT.AbstractGeometry
— TypeAbstract base class of geometries
ClassicalDFT.AbstractSolver
— TypeAbstract base class of solve methods
Utils
ClassicalDFT.conv1d
— Functionconv1d(f::Vector, g::Vector, dx::Number=1; fft::Bool=true, kwargs...)
Wrapper for evaluating one-dimensional convolutions in real or Fourier space (depending on the value of fft
).
Elements of f
and g
can be scalar or SVector
s. kwargs
are forwarded to the low-level convolution methods.
See also conv1d_direct
, conv1d_fft
.
ClassicalDFT.conv1d_direct
— Functionconv1d_direct(f::AbstractVector{<:AbstractFloat}, g::AbstractVector{<:AbstractFloat}, dx::Number=1)
Evaluate a one-dimensional convolution via explicit integration in real space.
f
and g
are assumed to be given on a grid of discretization dx
and to be periodic, so suitable padding has to be applied before calling this function.
ClassicalDFT.conv1d_fft
— Functionconv1d_fft(f::AbstractVector{<:AbstractFloat}, g::AbstractVector{<:AbstractFloat}, dx::Number=1; convplan=plan_conv1d_fft(f))
Evaluate a one-dimensional convolution via the convolution theorem in Fourier space.
f
and g
are assumed to be given on a grid of discretization dx
and to be periodic, so suitable padding has to be applied before calling this function. A convplan
can be provided for performance to plan the real FFT and preallocate buffers.
See also plan_conv1d_fft
.
ClassicalDFT.convradial
— Methodconvradial(f::Vector, g::Vector, rs::Vector; kwargs...)
Wrapper for evaluating convolutions of radial functions that were integrated out over the solid angle $\Omega$ and that are given on the radial grid rs
.
Elements of f
and g
can be scalar (for scalar functions $a(r)$) or SVector
s (for vectorial functions $\vec{a}(r) = a(r) \hat{e}_r$). When integrating out vectorial functions of the latter form over $\Omega$, two contributions arise, which are defined to be the components of the SVector
. kwargs
are forwarded to the one-dimensional convolution method.
See also SphericalGeometry
, conv1d
.
ClassicalDFT.plan_conv1d_fft
— Methodplan_conv1d_fft(f::AbstractVector{<:AbstractFloat})
Plan a one-dimensional FFT convolution, i.e. plan the real FFT and preallocate buffers.
See also conv1d_fft
.