Summary of Plugin Files

This page contains a summary list of the files contained in the FSD plugin. A description of each of the functions contained within these files is given in List of Functions by File. The plugin files can be grouped in the following 7 categories:
  1. Deterministic hydrodynamic calculations
  2. Stochastic hydrodynamic calculations (Brownian sampling)
  3. Preconditioners for hydrodynamic sole and Brownian sampling
  4. Helper functions for simple operations, e.g. dot product and vector addition
  5. Files to define the C++ module for the integrator
  6. Functions to enable linear shear
  7. Files for integration of C++ with python

All the .cuh files that are not listed here are simply the header files defining the functions contained in the associated .cu file, e.g. Mobility.cuh is the header file containing the definition of the functions in Mobility.cu.

Deterministic Hydrodynamics

  • Lubrication.cu - Near-field (lubrication) resistance functions
  • Mobility.cu - Far-field mobility calculations
  • Saddle.cu - Saddle point multiplication and solution
  • Solvers.cu - Methods to perform required matrix inversions
  • Wrappers.cuh - C++ wrapper definitions for CUSP operations

Brownian Sampling

  • Brownian_FarField.cu - Methods to compute the far-field Brownian displacements
  • Brownian_NearField.cu - Methods to compute the near-field Brownian forces
  • Integrator.cu - Integrator wrappers, explicit Euler, RFD, etc.

Preconditioning

  • Precondition.cu - Build the saddle point and near-field Brownian preconditioners
  • rcm.cpp - Reverse Cuthill-Mckee reordering for sparse matrices

Helper Functions

  • DataStruct.h - Defines data structures to hold array points for various components of the calculation.
  • Helper_Brownian.cu - Helper functions used in Brownian_FarField.cu and Brownian_NearField.cu
  • Helper_Debug.cu - Functions for debugging and code checking, printing output, etc.
  • Helper_Integrator.cu - Helper functions to simplify code in Integrator.cu
  • Helper_Mobility.cu - Helper functions for mobility calculations in Mobility.cu
  • Helper_Precondition.cu - Helper functions for preconditioning calcualtions
  • Helper_Saddle.cu - Helper functions for saddle point matrix calculations
  • Helper_Stokes.cu - Helper functions for two-step Stokes integrator

C++ Module Definition

  • Stokes.cc - C++ module to set up the method and run the integrator
  • Stokes.cu - Driver function for integration
  • Stokes_ResistanceTable.cc - Values for pre-computed tabulation of lubrication functions
  • Stokes_SparseMath.cc - Initialization and setup of variables required for sparse operations

Linear Shear

  • ShearFunction.cc - C++ module for functions to apply linear shear to the simulation box
  • ShearFunction.h - Header file defining the abstract class for time-dependent shearing functions in ShearFunction.h
  • ShearFunctionWrap.cc - Wrapper files for the definitions in ShearFunction.cc
  • ShearFunctionWrap.h - Header file for ShearFunction.cc
  • SpecificShearFunction.cc - C++ module with specific forms of the shearing functions (linear, sinusoidal, chirp) defined generically in ShearFunction.cc
  • SpecificShearFunction.h - Header file for each of the shearing forms specified in SpecificShearFunction.cc
  • VariantShearFunction.cc - Abstract definition for C++ module for time-dependent shearing functions
  • VariantShearFunction.h - Header fo;e for the time-dependent shear class in VariantShearFunction.cc

Class Definitions for Python

  • integrate.py - Python module definition for the FSD integrator
  • shear_function.py - Python module for specifying the shear functions.
  • variant.py - Python class to change size of simulation box as given by a specific shear function.
  • __init__.py - Marks the directory as a python module, and imports the integrate, shear_function, and variant modules defined in integrate.py, shear_function.py, and variant.py, respectively.
  • module.cc - Specifies the python module and exports C++ classes for use by python.