Constant Chemical Potential Minimizers

class pfc_util.pfc6.ConstantMuMinimizer(field: RealField2D, dt: floating | float64 | float, eps: floating | float64 | float, alpha: floating | float64 | float, beta: floating | float64 | float, mu: floating | float64 | float)

Bases: SplitStep[RealField2D], MinimizerMixin, MuMinimizerMixin

PFC6 constant chemical potential minimizer with split-step FFT

Evolution equation:

\[\dot\psi = -\frac{\delta\Omega}{\delta\psi} = \mu - \frac{\delta F}{\delta t}\]
__init__(field: RealField2D, dt: floating | float64 | float, eps: floating | float64 | float, alpha: floating | float64 | float, beta: floating | float64 | float, mu: floating | float64 | float)
Parameters:
  • field – the PFC field to be minimized

  • dt – time step

  • eps – PFC \(\epsilon\)

  • alpha – PFC6 \(\alpha\)

  • beta – PFC6 \(\beta\)

  • mu – chemical potential \(\mu\)

start() None

A hook method that is called before evolution When overriden, super().start() should be invoked

property field: T_field

An alias for .subject

property grid: T_grid

An alias for .subject

property info

using .info is deprecated, use .data directly instead

init_pfc_variables(eps: floating | float64 | float)

Setup variables related to PFC

initialize_fft(*, reinit: bool = True, threads: int = 1, planning_timelimit: float | None = None, effort: Literal['FFTW_ESTIMATE', 'FFTW_MEASURE', 'FFTW_PATIENT', 'FFTW_EXHAUSTIVE'] | None = None, wisdom_only: bool = False, destroy_input: bool = False, unaligned: bool = False)

Call .grid.initialize_fft() with the same arguments

resolve_hooks(hooks: EvolverHooks | None) EvolverHooks

Each Evolver instance is also an instance of EvolverHooks. By default none of the hook methods are implemented.

run(n_steps: int, hooks: EvolverHooks | None = None)

Run evolution loop. hooks.on_nonstop_step() will be called every [n_steps] steps. The minimization will be run on a separate thread.

run_multisteps(n_steps: int, n_epochs: int, hooks: EvolverHooks | None = None)

Run evolution loop

run_steps(n_steps: int)

Run [n_steps] minimization steps.

step()

Run a single minimization step.

wait()

Wait till the evolution thread ends

data: Dict[str, Any]

Used to store fields used by hooks, will be cleared everytime start() is called. I.e., before every evolution.