Force Field X 1.0.0 API
Packages
Package
Description
The HTTP package provides a lightweight HTTP/1.0 server.
The IO package provides the DataOutputStream and DataInputStream classes to read/write primitive data
types and strings in binary form.
The MP package provides low-level support for Message Passing.
The BUF package provides data buffers for Message Passing.
The PJ package (Parallel Java) support shared memory, message passing and
hybrid shared memory/message passing parallelization in pure Java.
The Cluster package contains the Parallel Java cluster middleware and the main program
for the PJ Job Scheduler Daemon process for a parallel computer.
The IO package represents a file that resides in the user's account in the
job frontend process of a PJ cluster parallel program.
The Job package encapsulates a job and its attributes.
The Reduction package provides a variety of reduction variables.
The Replica package provides replicated, shared reduction variables.
The Util package contains utilities that support the PJ API.
Force Field X implements fixed charge and polarizable atomic multipole molecular mechanics
potentials, local and global optimization, molecular dynamics, free energy differences, etc, with
special support for crystal space groups.
The Algorithms package has support for local and global optimization, molecular dynamics
simulations, and calculation of free energy differences.
The Algorithms CLI package defines options for PicoCLI command line scripts.
The Dynamics package implements molecular and stochastic dynamics using a pure Java code path and
via OpenMM.
The Integrators package implements integrators for molecular dynamics simulations.
The Thermostats package implements thermostats for molecular dynamics simulations.
The MC package implements a variety of Monte Carlo moves for optimization and simulation
algorithms.
The Misc package contains a few miscellaneous algorithms.
The Optimize package contains local and global optimization algorithms using pure Java and OpenMM
code paths.
The anneal package implements simulated annealing-based optimization,
including an interface for annealing schedules and several concrete schedule
implementations (linear, exponential, and flat-end) used to control temperature
during optimization runs.
The manybody package implements many-body rotamer optimization infrastructure,
including distance matrices, an energy expansion (self, two-body, three-body,
and four-body), Dead-end elimination criteria, Goldstein elimination criteria,
and supporting data structures for efficient optimization.
The Thermodynamics package computes free energy differences using Orthogonal Space Tempering
(OST) sampling via pure Java or OpenMM (via Monte Carlo OST).
The Crystal package implements space group symmetry and periodic boundary condition support.
The Numerics package has support for atomic double arrays, FFTs (1D and 3D), numerical
integration (1D), complex numbers, vector operations, multipole tensors, multi-dimensional
optimization, special functions, splines and switching functions.
The Atomic package has implementations of a double array that can be safely operated on by
multiple threads.
The clustering package provides hierarchical agglomerative clustering utilities,
including linkage strategies (single, complete, average, weighted), distance map
management, and supporting data structures and algorithms.
Visualization components for clustering results, including Swing-based classes
to render dendrograms and related views of hierarchical clusters.
The Estimator package implements free energy estimators (e.g., Zwanzig, BAR/MBAR)
and related bootstrapping and reporting utilities.
The FFT package implements 1D and 3D FFTs of real or complex valued data, including SMP
parallelization of 3D transforms and convolution using the Parallel Java library.
The func1d package defines one-dimensional differentiable functions and utilities,
including an interface for univariate functions and specific mappings (e.g.,
QuasiLinearThetaMap) used in lambda/theta transformations.
The Integrate package implements 1D numerical integration.
The Math package implements complex numbers, a software square root, and vector operations.
The Multipole package computes derivatives of 1/|r| via recursion to arbitrary order using
Cartesian multipoles in either a global frame or a quasi-internal frame.
The Optimization package implements the limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS)
algorithm for large-scale multidimensional unconstrained optimization problems.
The Quickhull package provides a 3D convex hull implementation and supporting
data structures (faces, half-edges, vertices, points and vectors).
The Special package implements special functions including the complex error function (Erf) and
the modified Bessel functions.
The Spline package implements implements B-splines and Tricubic splines.
The Switching package implements univariate switching functions.
The OpenMM package includes Java classes that are analogues of the OpenMM C++ API.
The AMOEBA package includes Java classes that are analogues of the OpenMM C++ API
for the AMOEBA model.
The Drude package includes Java classes that are analogues of the OpenMM C++ API
for the Charmm Drude model.
The Potential package implements molecular mechanics force fields with shared memory Parallel
Java and via OpenMM.
The Bonded package implements bonded molecular mechanics terms such as bonds, angles, torsions,
etc.
The Potential CLI package defines reusable options for PicoCLI command line scripts.
The constraint package implements holonomic constraint algorithms used during
molecular dynamics and minimization, including CCMA, SETTLE, and SHAKE-style
constraints (as well as charge constraints).
The Extended package is progress toward support for constant pH molecular dynamics using extended
system variables (i.e. lambda dynamics on protonation).
The Nonbonded package implements nonbonded molecular mechanics terms such as van der Waals and
Particle Mesh Ewald electrostastics.
The implicit package implements implicit solvent models and related terms,
including Generalized Kirkwood (GK) electrostatics, surface area terms,
dispersion/cavitation contributions, and supporting parallel regions for
Born radii and field evaluation.
The octree package provides spatial data structures used to accelerate
nonbonded interactions, neighbor list construction, and related queries.
The pme package implements polarization and permanent electrostatics using
Particle Mesh Ewald (PME).
The openmm package contains utilities to construct and run Force Field X
potentials on the OpenMM platform, including system builders, custom forces,
alchemical fixed-charge forces, and integrators tailored to FFX simulations.
The Parameters package stores force field atom types, bond types, etc, and keywords that define
the potential.
The Parsers package handles reading/writing files to/from the internal data structure.
The terms package contains analytical potential energy terms and their
gradients for bonded interactions (bond, angle, stretch-bend, torsions,
impropers, Urey-Bradley) and restraint terms used by Force Field X.
The Utils package implements core functionality needed for using the Potential package, such as
opening and closing structure files, basic force field energy evaluations, etc.
The Real Space package implements real space structure refinement.
The Real Space CLI package defines options for PicoCLI command line scripts.
The Parsers package reads and writes CCP4 map files.
The UI package provides views and controllers for manipulating molecular systems.
The Behaviors package contains Java3D Behaviors that turn user actions into scenegraph changes.
The Commands package implements a Client/Server interface between Force Field X and simulations.
The Properties package will eventually encapsulate internationalization features.
The Utilities package implements a variety of useful Directory, File, Port, String, etc
functionality.
The X-ray package implements support for X-ray and Neutron refinement.
The X-ray CLI package defines options for PicoCLI command line scripts.
The Parsers package reads CNS files and reads/writes MTZ files.